以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 补充程序 显示未编译 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=166378) |
-- 作者:f三年 -- 发布时间:2018/11/8 9:38:50 -- 补充程序 显示未编译
请老师帮忙 把程序止损1N 补完整 参考 刚刚自己补 金字塔显示未编译 TR=Max(H-L,H-PDC,PDC-L) 其中: TR=真实波幅 H=当日最高价 L=当日最低价 PDC=前一日收盘价 N(即ATR)的计算公式如下(其实就): 前面20天的TR值平均 绝对波动幅度=N*合约每一点所代表的价值 头寸规模单位n=账户的1%/绝对波动幅度 开仓时机:当五日均线>十日均线 且 五日均线>二十日均线 开仓n手做多 当五日均线<十日均线时,平仓 当五日均线<十日均线 且 五日均线<二十日均线 开仓n手做空 当五日均线>十日均线时,平仓 止损为1N PDC:REF(C,1); TR1:MAX(h-l,max(h-PDC,PDC-L)); ATR:MA(TR1,20); 绝对波动幅度:ATR*Multiplier; 手数:TASSET*0.01/绝对波动幅度; ma5:ma(c,5); ma10:ma(c,10); ma20:ma(c,20); buycond1:ma5>ma10 and ma5>ma20;//这种开仓条件可能会持续N个周期都能保持,会导致连续多个周期下单,直到条件不满足为止。 sellcond1:ma5<ma10; buycond2:ma5<ma10 and ma5<ma20; sellcond2:ma5>ma10; if BUYCOND1 and tholding=0 then tbuy(1,手数,MKT); if sellcond1 then tsell(1,tholding,mkt); if BUYCOND2 and tholding=0 then tbuyshort(1,手数,MKT); if sellcond2 then tsellshort(1,tholding,mkt); |
-- 作者:FireScript -- 发布时间:2018/11/8 9:45:59 -- 你编译下看下报错情况。这段代码我本地编译正常。 |
-- 作者:f三年 -- 发布时间:2018/11/8 9:50:00 -- PDC:REF(C,1);
TR1:MAX(h-l,max(h-PDC,PDC-L)); ATR:MA(TR1,20); 绝对波动幅度:ATR*Multiplier; 手数:TASSET*0.01/绝对波动幅度; ma5:ma(c,5); ma10:ma(c,10); ma20:ma(c,20); buycond1:ma5>ma10 and ma5>ma20;//这种开仓条件可能会持续N个周期都能保持,会导致连续多个周期下单,直到条件不满足为止。 sellcond1:ma5<ma10; buycond2:ma5<ma10 and ma5<ma20; sellcond2:ma5>ma10; if BUYCOND1 and TBUYHOLDING(1)=0 then tbuy(1,手数,MKT); if sellcond1 then tsell(1,TBUYHOLDING(1),mkt); if BUYCOND2 and TSELLHOLDING(1)=0 then tbuyshort(1,手数,MKT); if sellcond2 then tsellshort(1,TSELLHOLDING(1),mkt); if TBUYHOLDING(1)>0 and c<DYNAINFO(211)-绝对波幅 then tsell(pd,TBUYHOLDING(1),mkt); if TSELLHOLDING(1)>0 and c>DYNAINFO(211)+绝对波幅 then tsellshort(pk,TSELLHOLDING(1),mkt); |
-- 作者:FireScript -- 发布时间:2018/11/8 9:51:47 -- 名称错了,这种低级错误,直接按照编译提示的错误去排查即可。
|
-- 作者:f三年 -- 发布时间:2018/11/8 9:57:10 -- 这样呢 PDC:REF(C,1);
TR1:MAX(h-l,max(h-PDC,PDC-L)); ATR:MA(TR1,20); 绝对波动幅度:ATR*Multiplier; 手数:TASSET*0.01/绝对波动幅度; ma5:ma(c,5); ma10:ma(c,10); ma20:ma(c,20); buycond1:ma5>ma10 and ma5>ma20;//这种开仓条件可能会持续N个周期都能保持,会导致连续多个周期下单,直到条件不满足为止。 sellcond1:ma5<ma10; buycond2:ma5<ma10 and ma5<ma20; sellcond2:ma5>ma10; if BUYCOND1 and TBUYHOLDING(1)=0 then tbuy(1,手数,MKT); if sellcond1 then tsell(1,TBUYHOLDING(1),mkt); if BUYCOND2 and TSELLHOLDING(1)=0 then tbuyshort(1,手数,MKT); if sellcond2 then tsellshort(1,TSELLHOLDING(1),mkt); if cross(atr,tr1) then tsell(1,TBUYHOLDING(1),mkt); if cross(tr1,atr) then tsellshort(1,TSELLHOLDING(1),mkt); |
-- 作者:FireScript -- 发布时间:2018/11/8 10:01:11 -- 编译通过就可以了。 |
-- 作者:f三年 -- 发布时间:2018/11/8 10:26:20 -- 老师帮我检查下是不是这样表达 止损 1N 的 回撤太大的情况下 正常是控制仓位 还有什么办法吗
|
-- 作者:FireScript -- 发布时间:2018/11/8 10:28:22 -- “ 止损 1N 的”你这里到底是要如何止损呢?这样表述我不是很明白的。 |
-- 作者:f三年 -- 发布时间:2018/11/8 10:45:08 -- 止损为1N N(即ATR)的计算公式如下(其实就): 前面20天的TR值平均 TR=真实波幅 跟今天开盘没有关系 就是开盘前面的20天的TR值平均 |
-- 作者:FireScript -- 发布时间:2018/11/8 11:09:17 -- 提供你的止损逻辑,我不是要你解释N1是什么。我是要知道, 你用这个怎么参与到止损逻辑里的。 |