
等级: 新手上路
- 注册:
- 2022-6-15
- 曾用名:
|
我看了策略教学里的止损,移动止赢交易范例,也理解了他的逻辑,但是范例里显示的仓位,只能是单向持仓,多仓是正数,空仓是负数,无法代入到我编写的期货策略里。
因为我在期货中可能存在同时开多仓和开空仓的情况,那是不是不能用Holding来识别持仓量了呢?请问老师怎么识别目前持仓量中的空仓和多仓分别是多少呢?这个范例可以麻烦老师修改一下吗?
以下是那个范例:
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);
variable:maxprofit=0;//有仓位时最大获利幅度
//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
BUY(1,1,limit,c);
maxprofit:=0;
END
//平仓
SELL(CROSS(MA2,MA1),0,limit,c);
//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;
if holding > 0 and enterbars > 0 then
begin
win:=(c-enterprice)/enterprice*100; //记录最大盈利
if win>maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
if holding < 0 and enterbars > 0 then
begin
win:=(enterprice-c)/enterprice*100; //记录最大盈利
if win > maxprofit then
maxprofit:=win;
win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
//出现浮动亏损比如2%平仓
止损:SELL(win < -2,0,limit,c);
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:SELL(win2 >= 60 and openprofit > 0, 0,limit,c); |
|