В документации явно написано что ВСЕ цены должны быть нормализованы до Digit для данного инструмента. Видимо причина в этом, проверьте значения Target[0] и Start.
Изучаем содержимое \experts\libraries\stdlib.mq4
По идее есть минимальное допустимое изменение цены, называемое Point. Поэтому логично проверять есть ли между старым значением Stop Loss и новый значением Stop Loss разница более чем в один пункт.
Сам то так и делаю ... не просек ситуацию :-) В Вашем случае так будет вернее :
if (Target[0]-Ask>Point && OrderStopLoss()-Start>Point)
В документации явно написано что ВСЕ цены должны быть нормализованы до Digit для данного инструмента. Видимо причина в этом, проверьте значения Target[0] и Start.
Вообще то для данного инструмента GBPUSD количество знаков (значимых после запятой равно 4)
я специально вывел все 8 символов чтобы показать что посление 4 у всех переменных равны 0
хорошо
...Точность обеспечивается не более, чем 15 значащими цифрами.
взял да и умножил числа на 100000000
получился код
if (Ask<Target[0] && OrderStopLoss()>Start)
{
Print("Ask",DoubleToStr(Ask*100000000,8), " Target[0]",DoubleToStr(Target[0]*100000000,8)," SL=",DoubleToStr(OrderStopLoss()*100000000,8),
" Stop=",DoubleToStr(Start*100000000,8), " OrdersTotal=",OrdersTotal());
OrderModify(OrderTicket(),OrderOpenPrice(),Start,OrderTakeProfit(),0,Gold);
}
ну и лог соответственно
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask195910000.00000000 Target[0]195920000.00000000 SL=196780000.00000000 Stop=196280000.00000000 OrdersTotal=2
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: modify #6 sell 0.10 GBPUSD at 1.9628 sl: 1.9628 tp: 1.9462 ok
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask195910000.00000000 Target[0]195920000.00000000 SL=196780000.00000000 Stop=196280000.00000000 OrdersTotal=2
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: modify #5 sell 0.20 GBPUSD at 1.9628 sl: 1.9628 tp: 1.9542 ok
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask195910000.00000000 Target[0]195920000.00000000 SL=196280000.00000000 Stop=196280000.00000000 OrdersTotal=2
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: OrderModify error 1
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask195910000.00000000 Target[0]195920000.00000000 SL=196280000.00000000 Stop=196280000.00000000 OrdersTotal=2
13:20:47 2007.02.28 08:06 _PR_v01 GBPUSD,H4: OrderModify error 1
так что фактически они нормализованы для данного инструмента (без функции NormalizeDouble)
Изучаем содержимое \experts\libraries\stdlib.mq4
Вообще бы неплохо получить комментарии к моему последнему посту о умножении на 100000000 и о результатах всего этого
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Билд 211
есть такая конструкция в функции тралла
RefreshRates();
if (Ask<Target[0] && OrderStopLoss()>Start)
{Print("Ask",DoubleToStr(Ask,8), " Target[0]",DoubleToStr(Target[0],8)," SL=",DoubleToStr(OrderStopLoss(),8)," Stop=",DoubleToStr(Start,8), " OrdersTotal=",OrdersTotal());
OrderModify(OrderTicket(),OrderOpenPrice(),Start,OrderTakeProfit(),0,Gold);
}
в журналах получаю
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask1.95910000 Target[0]1.95920000 SL=1.96780000 Stop=1.96280000 OrdersTotal=2
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: modify #6 sell 0.10 GBPUSD at 1.9628 sl: 1.9628 tp: 1.9462 ok
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask1.95910000 Target[0]1.95920000 SL=1.96780000 Stop=1.96280000 OrdersTotal=2
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: modify #5 sell 0.20 GBPUSD at 1.9628 sl: 1.9628 tp: 1.9542 ok
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask1.95910000 Target[0]1.95920000 SL=1.96280000 Stop=1.96280000 OrdersTotal=2
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: OrderModify error 1
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: Ask1.95910000 Target[0]1.95920000 SL=1.96280000 Stop=1.96280000 OrdersTotal=2
11:53:53 2007.02.28 08:06 _PR_v01 GBPUSD,H4: OrderModify error 1
.....
тоесть получается что 1.96280000>1.96280000
PS . код как код MQL не получается с новым редактором форума вставить из IE 6.0