等级: 免费版
- 注册:
- 2024-3-16
- 曾用名:
|
加入我有一个策略,在120个周期的前高H1和前低价格L1,作为一个开仓区间,
用5日和20日均线作为开仓平仓条件,金叉开多平空,死叉开空平多,但是我的问题是而开平仓的价格如下面代码所示,是MA5的价格。
但是如果我是空单持仓,但是价格超过H1,我想止损,此时应该如何设置止损?是在平空条件加入OR C>H1? 但是这样是否会成交在MA5的价格?我想用不同的价格平仓比如用前高H1的价格平仓?是否需要使用IF条件语句?请问怎么写比较能否实现我需用不用的价格平仓的要求?
// 计算MA1
MA5 : MA(CLOSE, 5), linethick2, COLORWHITE;
MA20: MA(CLOSE, 20), linethick2, COLORWHITE;
// Donchian通道指标
H1 : HHV(H, 120), COLORRED, linethick1; // 上轨
L1 : LLV(L, 120), COLORGREEN, LINETHICK1; // 下轨
// --- 开平仓条件 ---
平空条件 := L = L1 and C<H1 and C>L1;
平多条件 := H = H1;
开空条件 := CROSS(ma20,MA5) and C<H1 and C>L1;
开多条件 := CROSS(MA5,ma20) and C<H1 and C>L1;
// --- 交易执行 ---
// 使用指定的开仓格式
开多: buy(开多条件 and holding < 50, ss, LIMIT, MA5);
开空: buyshort(开空条件 and holding > -50, ss, LIMIT, MA5);
// 使用指定的平仓格式
平多: sell(平多条件 and holding>=0, 0, LIMIT, MA5);
平空: sellshort(平空条件 and holding<=0, 0, LIMIT, MA5);
|
|