金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3656|回复: 12

请教老师,图上显示平多,但是实际没有平?是代码那里出问题了吗?

[复制链接]

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
发表于 2023-7-25 15:10 | 显示全部楼层 |阅读模式
请教老师,图上显示平多,但是实际没有平?是代码那里出问题了吗?

//中间变量
INPUT:N(1,1,100,1),K1(7,1,10,1),K2(7,1,10,1),NMIN(10,1,100,1),SS(1,1,10000,1);

CYC:BARSLAST(DATE<>REF(DATE,1))+1;//表示当日的K线根数

昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//跨周期引用该品种日线数据昨最高价
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//跨周期引用该品种日线数据昨最低价
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//跨周期引用该品种日线数据昨收盘价

开盘价:=VALUEWHEN(CYC=1,OPEN);//取当日第一根k的开盘价

HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价


浮动区间:=MAX(HH-LC,HC-LL);//源代码浮动区间:=MAX(HH-LL,HC-LL)有问题,已改

上轨:开盘价+(K1/10)*浮动区间;
下轨:开盘价-(K2/10)*浮动区间;

T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;

//交易条件
开多条件:=C>上轨 AND HOLDING=0;
开空条件:=C<下轨 AND HOLDING=0;
//交易系统
开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET);
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-25 15:29 | 显示全部楼层
走完K下单的还是固定间隔下单的?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-25 15:31 | 显示全部楼层
技术009 发表于 2023-7-25 15:29
走完K下单的还是固定间隔下单的?

是走完一根k线
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-25 15:37 | 显示全部楼层
那如果是最后一个K,就需要等到下次开盘时候,才会执行这个信号。

有多种处理方案,其中一个是这样:


缺陷是会影响到其他信号。这个功能是所有K位置的信号都会这样处理。

另一个方式是 改成固定间隔。但是信号全部用ref做个偏移,即判断上一个K是否满足信号,来模拟走完K的效果。 收盘平仓的部分,不做偏移处理,在固定间隔下满足了就触发。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-25 15:46 | 显示全部楼层
技术009 发表于 2023-7-25 15:37
那如果是最后一个K,就需要等到下次开盘时候,才会执行这个信号。

有多种处理方案,其中一个是这样:

嗯,理解了,原因是信号触发是最后一根k,
问题①:也就是要等到今晚上开盘的时候,会自动以今晚开盘价自动平仓,是不是这样?

问题②:另外如果代码中改成倒数第二个k平仓是不是,就不用更改其他设置了?
问题③:代码中TIME>=CLOSETIME(0)-NMIN*100;
nmin参数是10,也就是CLOSETIME(0)-1000秒,应该是倒数15根k就会出信号呀,但是怎么会成了最后一根k才出信号呢?
(我是一分钟图表)
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-25 16:13 | 显示全部楼层
本帖最后由 技术009 于 2023-7-25 16:16 编辑

1.是的。走完K是这么个机制。
2.改成倒数第二个K 的确就不需要做其他变动了,可以实现。
3.这个代码的范例是以前老的代码,现在已经不这样处理了,它是有点问题的。minn你怎么调整 其实都是没效果的。。
你试下://abb2:timetot0(dynainfo(207))-timetot0(ref(time,1)),NODRAW;//K线已经进行过的时间
M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟
M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盘前15分钟

if (M1<=DYNAINFO(207) and ISLASTBAR) or (time=190000 and not(ISLASTBAR)) then begin //注意:6.23 以后版本,图表上使用islastbar函数,请勿勾选仅刷最后一根K
    sell(1,holding,MARKET);
    sellshort(1,holding,MARKET);
end


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

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-25 17:05 | 显示全部楼层
技术009 发表于 2023-7-25 16:13
1.是的。走完K是这么个机制。
2.改成倒数第二个K 的确就不需要做其他变动了,可以实现。
3.这个代码的范 ...

好的,谢谢老师
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-25 17:08 | 显示全部楼层
技术009 发表于 2023-7-25 16:13
1.是的。走完K是这么个机制。
2.改成倒数第二个K 的确就不需要做其他变动了,可以实现。
3.这个代码的范 ...

老师,那这段代码中用于开仓中的t1条件,是不是用在现在的版本上面也是会有点问题?
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;

补充内容 (2023-7-25 17:08):
t1应该如何修改?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-25 17:20 | 显示全部楼层

M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟
M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盘前15分钟

ccd:(M1<=DYNAINFO(207) and ISLASTBAR) or (time=190000 and not(ISLASTBAR)) ;
....
T1:=TIME>OPENTIME(1) AND not(ccd);
T2:=not(ccd);




if ccd then begin //注意:6.23 以后版本,图表上使用islastbar函数,请勿勾选仅刷最后一根K
    sell(1,holding,MARKET);
    sellshort(1,holding,MARKET);
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-7-25 17:33 | 显示全部楼层
技术009 发表于 2023-7-25 17:20
M1: T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盘前1分钟
M15:T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15) ...

好的,谢谢老师
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 11:20 , Processed in 0.175260 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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