- 精华
- 0
- 在线时间
- 70 小时
- UID
- 288470
- 积分
- 126
- 帖子
- 63
- 阅读权限
- 40
- 注册时间
- 2020-2-7
- 最后登录
- 2021-3-25
- 精华
- 0
- UID
- 288470
- 积分
- 126
- 帖子
- 63
- 主题
- 33
- 阅读权限
- 40
- 注册时间
- 2020-2-7
- 最后登录
- 2021-3-25
|
本帖最后由 Alex2020 于 2020-2-15 17:50 编辑
找到问题了,平仓标志改为序列变量就可以了。(没看到删帖的地方,那就先说明一下,问题解决了。)
=====
我想达到的目的是:平多仓后,不继续开多。直到开空以后,才能正常开多仓。反之也一样,平空后不再开空,等开多条件满足, 清除不开空的限制。不知道有什么好的办法实现。
我写了一个程序,但是在Tick上运行时没有起作用。 平多仓后马上又开了多仓。不知道哪里不对。
我用变量 MarkPC 记住是否平过仓。平多,设为1,平空设为-1. 如果MarkPC==1,不能开多仓,只能开空仓。
如果,满足开空条件, 开空, 并设置MarkPC=0. 清除限制。
实际在Tick图上运行时,平空后,第2个Tick马上又开了开仓。没达到目的。
Vars
Numeric MarkPC(0); //平仓标志: 1:平多,-1平空
Bool Dzy; // 多仓止盈条件
Bool Kzy; // 空仓止盈条件
Bool Dzs; // 多仓止损条件
Bool Kzs; // 空仓止损条件
Bool Dkc; // 开多条件
Bool Kkc; // 开空条件
Begin
Dzy = High>=MyEntryPrice+Zy*MinPoint && MarketPosition==1; // 多仓止盈条件
Dzs = Low<=MyEntryPrice-Zs*MinPoint && MarketPosition==1; // 多仓止损条件
Kzy = Low<=MyEntryPrice-Zy*MinPoint && MarketPosition==-1; // 空仓止盈条件
Kzs = High>=MyEntryPrice+Zs*MinPoint && MarketPosition==-1; // 空仓止损条件
Dkc=High>=Dkcx && MarkPC<>1 && MarketPosition <>1; // 开多仓条件:
Kkc= Low<=Kkcx && MarkPC<>-1 && MarketPosition <>-1; // 开空仓的条件
// 止盈止损
If(MarketPosition==1) // 有多仓的情况
{
If ( Dzy ) // 如果多仓止赢条件满足
{
MyExitPrice=High; // 委卖价平多仓,止盈
Sell(0,MyExitPrice); // 平掉所有持仓;
MarkPC=1; // 标记多平仓
Commentary("Dzy"+Text(MyExitPrice)); // 标记
}else if( Dzs ) // 如果满足多仓止损条件
{
MyExitPrice=Low; // 委买价平多仓(卖),止损
Sell(0,MyExitPrice); //
MarkPC=1; // 标记多平仓
Commentary("Dzs"+Text(MyExitPrice)); // 标记
}
}else if(MarketPosition==-1) // 有空仓的情况
{
If ( Kzy ) // 如果满足开仓止赢条件
{
MyExitPrice=Low; // 委买价平空仓,止盈
BuyToCover(0,MyExitPrice);
MarkPC=-1; // 标记空平仓
Commentary("Kzy"+Text(MyExitPrice)); // 标记
}else if( Kzs ) // 如果满足空仓止损条件
{
MyExitPrice = High; // 委卖价平空(买),止损
BuyToCover(0,MyExitPrice);
MarkPC=-1; // 标记空平仓
Commentary("Kzs"+Text(MyExitPrice)); // 标记
}
}
// 止盈止损
If ( Dkc ) // 满足开多条件
{
Buy(1,High); // 委卖价开多仓
MarkPC=0; // 清除平仓标志
Commentary("Dkc"+Text(High)); // 标记
}
If ( Kkc ) // 满足开空条件
{
SellShort(1,Low) ; // 委买价开空
MarkPC=0; // 清除平仓标志
Commentary("Kkc"+Text(Low)); // 标记
}
END |
|