老师好,麻烦帮我写段程序,以开多为例
一,当均线A大于均线B,价格在这两均线上20点范围内开仓最大限制5手,如果在30点范围内开仓2手,如果价格下跌了,到15点时 加一手,共3手,,,如果没有止损,
二,止损,,开仓后,,当价格下跌突破最小的均线,也就是20点左右,就止损,
三,止盈利,,如果开仓5手,,,以开仓价来算,,每上涨40点,减一手,,再上涨40点,再减一手,并把现有的持仓3手止损提高到均线之上,,,
四,加仓,,如果之前有减仓, 在大于开仓以来最高价之后下跌50点,就加仓一手,加仓后又下跌50点加仓第二手,总持仓不能持过5手,,,
五,加仓后的总持仓,,从加仓价开始算每上涨40点就减一手,
谢谢老师,,麻烦给写一下,,
如果价格下跌了,到15点时 加一手,共3手
价格下跌突破最小的均线,
这里的突破,下跌均线,指的是突破当前的均线,还是开仓时的均线?
开仓后没有减仓就用开仓时的均线,,如果出现过减仓就用现在的均线,谢谢
在5分钟图上用,,均线可以随便用,,100,300,都可以 |
均线A是5日均线吗?
均线B是10日均线吗?
您策略中加减仓的操作比较复杂,图表程序化交易不能实现您的策略。还要继续用后台策略帮您编写吗
variable:n1=0;
maa:=ma(c,100);
mab:=ma(c,300);
kd:=maa>mab;
jc:=c-maa;
//开仓部分
if jc<20 and jc>0 and kd THEN
buy(holding<=5,5,marketr);
if jc>20 and jc<30 and kd then
buy(holding<=2,2,marketr);
if holding=2 and jc<15 and jc>0 and kd then
buy(holding<=3,1,marketr);
//止损
if c<min(maa,mab)-20 THEN
止损:sell(1,holding,marketr);
//当有5手持仓时候,价格大于均价40点平一手
if holding=5 and c>AVGENTERPRICE+40 then
sell(1,1,marketr);
if holding=4 and c>AVGENTERPRICE+80 then
begin
sell(1,1,marketr);
n1:=1;
end
if c<min(maa,mab) and n1=1 then
begin
sell(1,holding,marketr);
end
if n1=1 and c<hhv(c,ENTERBARS)-50 then
begin
buy(holding<=5,1,marketr);
n1:=2;
end
if n1=2 and c<hhv(c,ENTERBARS)-50 then
BEGIN
buy(holding<=5,1,marketr);
n1:=0;
end