MA5:MA(C,5);
MA10:MA(C,10);
A:=CROSS(MA5,MA10);
B:=CROSS(MA10,MA5);
IF A THEN BEGIN
SELLSHORT(1,1,MARKET);
BUY(1,1,MARKET);
END
IF B THEN BEGIN
SELL(1,1,MARKET);
BUY(1,1,MARKET);
END
咨询老师,如何编写:当前资产相比最大资产回撤超过X%,手数加1手,等这手盈利超过Y%后,平掉,继续维持原来的手数。等待下一次回撤继续加仓
当前资产相比最大资产回撤超过X%,手数加1手,等这手盈利超过Y%后,平掉,
这里有点没想明白,是不是回撤产生后,不盈利超过Y%,就算是触发了前面的平仓条件,也不平仓?
不是的!资金回撤达到了X%后,下一个信号在原来1手上加仓1手(现在总共2手),接下来有信号都按照2手开平仓。等待加仓的1手盈利了Y%后,再平掉之前加仓的1手,维持总持仓1手。
等待下次资金回撤超过X%了,继续以上策略
http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=2160
这个例子中,是图表程序化,用全局变量,实现 “当出现盈利后,与最大盈利价格相比,回落到60%幅度后止赢离场”
需要用后台程序化实现这个功能
可以用类似方法,来尝试实现 资金回撤达到了X%后的操作
[此贴子已经被作者于2016/3/7 15:04:31编辑过]
这样的思想基本没有什么实际使用价值。主要的原因是要求参与计算的k线数太多,程序会卡的厉害。而且结果也就那么一回事,比如你做大持仓是10手,结果还没有直接交易10手的结果好,并且回撤也降不了多少。
tn:=1;
ha:=hhv(asset,1000);//1000根据自己的周期来;
if (ha-asset)/ha>0.1 then tn:=2;
if (h-asset)/ha>0.2 then tn:=3;
if holding>1 and (asset-ref(asset,enterbars+1))/asset>0.1 then
begin
tn:=1;
sell(1,holding-tn,limitr,c);
end
大概就这个意思,没有仔细琢磨。