Вещественные типы (double, float) - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
voidOnTick()
{
// Получим значение индикатора
dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0. TrailingOrders();// Если нет открытых ордеров, то входим в условиеif(CountOrders()==0)
{
// Если появился сигнал на покупку, то откроем ордер на покупкуif(bSignalBuy() == true)
vOrderOpenBuy();
// Если появился сигнал на продажу, то откроем ордер на продажуif(bSignalSell() == true)
vOrderOpenSell();
}
DrawLABEL("nextlot",1,5,0,Color1(),StringConcatenate("CURRENT LOT: ",DoubleToStr(LOT(),2)));
DrawLABEL("currentlot",1,5,0,Color2(),StringConcatenate("NEXT LOT: ",DoubleToStr(LOT(),2)));
}
如果价格向TP的方向移动,应触发追踪止损,如果价格回撤,则不做任何操作。SL水平应该只向TP的方向发展,而不是回滚。
我知道
我写道。
有无限多的 停止和采取的位置,即时
2021.12.23 21:07:51.634 2021.12.21 21:12:20 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:20 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71288 tp: 0.72038 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:18 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:18 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71268 tp: 0.72018 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:16 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:16 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71248 tp: 0.71998 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:15 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:15 111 AUDUSD,M15: 修改 #2 在0.71028买入0.02 AUDUSD sl: 0.71228 tp: 0.71978 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:13 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:13 111 AUDUSD,M15: 修改 #2 在0.71028买入0.02 AUDUSD sl: 0.71208 tp: 0.71958 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:11 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:11 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71188 tp: 0.71938 ok
2021.12.23 21:07:51.634 2021.12.21 12:12:10 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:10 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71168 tp: 0.71918 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:08 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:08 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71148 tp: 0.71898 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:06 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:06 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71128 tp: 0.71878 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:05 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:05 111 AUDUSD,M15: 修改 #2 在0.71028买入0.02 AUDUSD sl: 0.71108 tp: 0.71858 ok
2021.12.23 21:07:51.634 2021.12.21 21 12:12:00 111 AUDUSD,M15: 修改买入指令成功!
2021.12.23 21:07:51.634 2021.12.21 21:12:00 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71088 tp: 0.71838 ok
2021.12.23 21:07:51.634 2021.12.21 12:11:53 111 AUDUSD,M15: 买单修改成功!
2021.12.23 21:07:51.634 2021.12.21 12:11:53 111 AUDUSD,M15: 修改#2 买入0.02 AUDUSD at 0.71028 sl: 0.71068 tp: 0.71818
2021.12.23 21:07:51.634 2021.12.21 12:11:52 111 AUDUSD,M15: 修改买入指令成功!
我知道。
我写道。
瞬间移动了无数次 的停止和采取
你应该得到被修改的订单的SL,并将其与计算的SL进行比较。如果它们相等,机器人应该什么都不做,直到计算的SL超过正在处理的订单的SL。如何比较两个双倍值:要么比较NodmalizeDouble(value, Digits)(每个值的),要么比较EqualDoubleshttps://www.mql5.com/ru/docs/basis/types/double
我知道。
你的设置是正确的。你在 TrailingOrders()函数 中改变了什么吗 ?
你应该得到被修改的订单的SL,并将其与计算的SL进行比较。
一般来说,规则如下。
你的设置是正确的。你是否在 TrailingOrders()函数 中改变了什么 ?
我改变了它,把它 "按原样",结果还是一样。
我改变了它,把它 "按原样",结果还是一样。
我们需要看到输入参数,因为根据日志,拖网工作正常。
2021.12.24 16:10:14.788 2021.12.17 00:00:00 111 - 副本:Lot=0.01; StopLoss=200; TakeProfit=560; Slippage=3; Magic=1; K_Martin1=0.01; K_Martin2=1.9; K_Martin3=1.4; OrdersClose=3; OrdersClose2=5; DigitsLot=2; PeriodMA=21; MovingShift=1。
2021.12.24 16:10:14.788 2021.12.17 00:00:00 111 - 副本:Lot=0.01; StopLoss=200; TakeProfit=560; Slippage=3; Magic=1; K_Martin1=0.01; K_Martin2=1.9; K_Martin3=1.4; OrdersClose=3; OrdersClose2=5; DigitsLot=2; PeriodMA=21; MovingShift=1。
也许我在代码中放的函数不正确?
并把函数本身分开
我在代码中放的功能不正确吗?
并把函数本身分开
这条线索是正确的。
试试这样的方式
手推车站位正确。
试试这个。
升空
首先停止,然后立即与取款一起飞向太空(在途中关闭订单)。
按我的理解,这不是问题所在。
如果我说错了请纠正我: void OnTick()
如果没有未结订单并且有信号,那么vOrderOpenBuy() / vOrderOpenSell()
然后是 void vOrderModify(int iOTi) - 即他们设置停止和takei,然后检查是否有错误。
也就是说,在订单以止损或止盈收盘之前,是不可能在追踪方面进行修正的。
你需要一个(最多两个)多次的停顿和取舍。
如果你想改变追踪止损并获取利润,那么你应该手动操作。
我还在考虑如何实现它。