金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 5492|回复: 10

请老师帮忙

[复制链接]

17

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2021-10-30
曾用名:
发表于 2022-10-23 20:21 | 显示全部楼层 |阅读模式
老师你好,我做了个只做空的策略。策略运行后,有赚的阶段,也有亏的阶段。我的策略运行在1分钟周期。

我想请老师帮我写一段统计程序,我试了好几个函数,可能是我对程序不熟没弄出来,也不知道老师能不能做出来,先谢过老师。

统计的目的就是在我策略运行后的历史中,比如一年或者三年,或者几个月。统计出赚钱或亏钱阶段对应的:1、该阶段的成交量数据;2、该阶段15分钟的KDJ指标的k、d值数据(策略运用在1分钟周期,我调用了15分钟KD);

谢谢老师!

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-24 08:56 | 显示全部楼层
你这个需求要说的更清楚点。
赚钱或者亏钱 按照平仓时候算还是浮动时候算?
一个赚钱或者亏钱阶段怎么定义的?一次平仓算一个?还是某一段时间总的盈亏算?

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2021-10-30
曾用名:
 楼主| 发表于 2022-10-24 10:38 | 显示全部楼层
谢谢老师,我仔细思考了下,只需要统计亏损的那些个阶段,比如:pat1分钟周期,我的策略执行开空后,经过了37分钟达到止损条件,止损。那么这段就是亏损的。我想知道这次策略执行:开仓之前  的15分钟K、d值;60分钟的K、d值、5分钟的K、D值。
或许我的策略在10天内,有过20次  “开仓止损” 的阶段。有的阶段经历了5分钟就止损,有的阶段经历了24分钟止损、、、、、经历多少时间不重要,我只是想统计这些止损阶段开仓之前的15,60,5分钟的K/D数值。
谢谢老师!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-24 10:42 | 显示全部楼层
本帖最后由 技术009 于 2022-10-24 10:44 编辑

调用什么值不重要,重要的你是最终要返回一个怎样形式的数值。比如你这个阶段 里对应三个5分钟的kdj的值,你现在要返回什么,最近的一个值?三个的均值,最大值?最小值?另外这个kdj值 只能是从跨指标调用里获取,不可能给你用这个持仓时间的数据再给你算一次。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2021-10-30
曾用名:
 楼主| 发表于 2022-10-24 11:05 | 显示全部楼层
技术009 发表于 2022-10-24 10:42
调用什么值不重要,重要的你是最终要返回一个怎样形式的数值。比如你这个阶段 里对应三个5分钟的kdj的值, ...

谢谢,我的策略就是在一分钟周期运行,策略里已经调用了5,15,60分钟周期的K、D值。例如,这分钟开仓了,开仓条件是5,15,60分钟的前一个k线结束时KD值满足开空条件了才开仓。我想要返回的是开仓时,5,15,60分钟的前一个K线结束时的K.D值。如果能有成交量或者其他技术指标数据最好。请老师教教我。谢谢!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-24 11:09 | 显示全部楼层
本帖最后由 技术009 于 2022-10-24 11:15 编辑

VARIABLE:V1:=0;

if NUMTOSTR(1)<0 and holding=0 then //最近一次平仓盈亏是负数 且当前没有持仓了
begin
V1:=REF(ref(15MIN_KD,1),ENTERBARS+1);        //回溯到开仓位置取值
end

15MIN_KD是你自己调用的KD值。V1始终表示最近一个平仓盈亏是负数时候取到的值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2021-10-30
曾用名:
 楼主| 发表于 2022-10-24 11:14 | 显示全部楼层
非常感谢老师教我。
回复

使用道具 举报

17

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2021-10-30
曾用名:
 楼主| 发表于 2022-10-24 11:59 | 显示全部楼层
技术009 发表于 2022-10-24 11:09
VARIABLE:V1:=0;

if NUMTOSTR(1)

还是有点问题,再请教下老师。我把你给我的这段写入程序了,出现了错误提示。是不是哪里弄错了,我想实现目的是,亏损阶段,屏幕上方显示出对应开仓前的5,15,60,返回值。我截图了,加入你给我的语句出现错误提示。我的程序如下:

15k:STKINDI('','空ptah1条件.K',0,3,-1);//15分钟的k值
60k:STKINDI('','空ptah1条件.K',0,5,-1),coloyellow;//60分钟的k值
MID:  MA(CLOSE,26);//布林中轨
RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:SMA(RSV,3,1);
D:SMA(K,3,1);
J:3*K-2*D;
空1:cross(d,k);
if  空1 and holding=0 then
BEGIN
        buyshort(1,1,MARKETR);     
END
if enterprice-close>=30  or  close-enterprice>=15 and holding<0 then sellshort(1,holding,MARKETR);


或者是不是我用错地方了,是不是你给我这段程序要单独做个策略,然后会统计并 输出个表格?那样就更好了。谢谢老师!因为我想统计长时间段内,开仓平仓出现亏损时的相关5,15,60返回值范围。这样我就能避开那些范围,尽量把策略的盈利概率提高些。谢谢!
无标题.jpg
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-10-24 13:02 | 显示全部楼层
前面打错了 是NUMPROFIT 函数。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

49

帖子

49

积分

Rank: 1

等级: 新手上路

注册:
2021-10-30
曾用名:
 楼主| 发表于 2022-10-24 13:25 | 显示全部楼层
REF 函数在逐K线模式下不能直接在IF控制语句之内引用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-8 19:17 , Processed in 0.157112 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表