//+------------------------------------------------------------------+//| Ozero.mq4 |//| Copyright 2014, Vinin |//| http://vinin.ucoz.ru |//+------------------------------------------------------------------+#property copyright"Copyright 2014, Vinin"#property link"http://vinin.ucoz.ru"#property version"1.00"#property strict// -------- переменные --- Н -----externdouble gLot=0.1; // размер лота для покупки externdouble gPoint=0.001;
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+// -------- переменные --- К ----- int init()
{
return(0);
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start()
{
// Открытие позицииif(OrdersTotal()==0)
{
Print(" Открытие первой позиции ");
double _Ask=MarketInfo("GBPUSD",MODE_ASK);
int ticket=OrderSend("GBPUSD",OP_BUY,gLot,_Ask,15,0,0);
if(ticket>0)
{
Print(" ОРДЕР ОТКРЫТ ",ticket);
}
}
double _Bid=MarketInfo("GBPUSD",MODE_BID); //для ценыfor(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos,SELECT_BY_POS))
{
if(OrderOpenPrice()+gPoint<_Bid)
{
OrderClose(OrderTicket(),OrderLots(),_Bid,15);
ResetLastError();
if(!OrderClose(OrderTicket(),OrderLots(),_Bid,15)) Print("Чё-та не закрылася позиция. Фигня вот такая происходит: "+GetLastError());
}
}
}
return(0);
}
Доброе утро.
Программа имеет такой вид.
При компиляции выдает:
'Ozero.mq4' Ozero.mq4 1 1 return value of 'OrderClose' should be checked Ozero.mq4 46 13 implicit conversion from 'number' to 'string' Ozero.mq4 49 117 0 error(s), 2 warning(s) 1 3
Во вкладке "результаты" видно, что ордера открываются и закрываются.
2014.10.31 07:46:44.837 GBPUSD,M15: 4453 tick events (5608 bars, 340128 bar states) processed within 312876 ms (total time 324436 ms) 2014.10.31 07:46:44.837 2014.08.26 13:13 Tester: order #4 is closed 2014.10.31 07:46:44.798 2014.08.26 13:13 Visual tester stopped 2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 4 2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: open #4 buy 0.10 GBPUSD at 1.6590 ok 2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: Открытие первой позиции 2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: Чё-та не закрылася позиция. Фигня вот такая происходит: 4108 2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: OrderClose error 4108 2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: unknown ticket 3 for OrderClose function 2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: close #3 buy 0.10 GBPUSD at 1.6576 at price 1.6586 2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 3 2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: open #3 buy 0.10 GBPUSD at 1.6576 ok 2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: Открытие первой позиции 2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: Чё-та не закрылася позиция. Фигня вот такая происходит: 4108 2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: OrderClose error 4108 2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: unknown ticket 2 for OrderClose function 2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: close #2 buy 0.10 GBPUSD at 1.6564 at price 1.6574 2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 2 2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: open #2 buy 0.10 GBPUSD at 1.6564 ok 2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: Открытие первой позиции 2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: Чё-та не закрылася позиция. Фигня вот такая происходит: 4108 2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: OrderClose error 4108 2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: unknown ticket 1 for OrderClose function 2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: close #1 buy 0.10 GBPUSD at 1.6550 at price 1.6562 2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 1 2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: open #1 buy 0.10 GBPUSD at 1.6550 ok 2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: Открытие первой позиции 2014.10.31 07:41:31.958 Ozero inputs: gLot=0.1; gPoint=0.001;
Теперь я вообще в растерянности. С одной стороны ордера закрываются, это видно по графику и "результатам", с другой стороны судя по журналу код исполняется с ошибками :(((((((((((
Всем привет !
Только сейчас заметил странную работу NormalizeDouble.
То есть советник то работает хорошо и ошибок не выдает а вот логи в тестере очень странные.
Поясню.
Вычисляю функцией профит. Делаю как и положено NormalizeDouble(Profit,Digits);
Далее Print(" profit=",DoubleToStrMorePrecision(Profit,8));
В результате я вижу в логах такое : "profit=0.88881912". По идее должно быть 0.88881000 верно ?
Или я туплю и делаю что то не так ?
Всем привет !
Только сейчас заметил странную работу NormalizeDouble.
То есть советник то работает хорошо и ошибок не выдает а вот логи в тестере очень странные.
Поясню.
Вычисляю функцией профит. Делаю как и положено NormalizeDouble(Profit,Digits);
Далее Print(" profit=",DoubleToStrMorePrecision(Profit,8));
В результате я вижу в логах такое : "profit=0.88881912". По идее должно быть 0.88881000 верно ?
Или я туплю и делаю что то не так ?
У вас значение Profit участвует в торговых приказах?
Да конечно. Причем без ошибок :-). Я поэтому и удивился.
У меня Build 735
Торговля идет на демке.
Аааааааа всё понял ! Я забыл операцию присваивания :-). "Profit=NormalizeDouble(Profit,Digits)".
Правда все равно не понятно почему советник не выдает ошибок ))
Может на сервере автоматом скругляют.....
Мне почему то казалось что NormalizeDouble это процедура а не функция :-).
Перес ";" за скобку.
Программа работает, НО периодически ругается на ошибку 4108.
Ozero.
Вообще, удалить надо!
Вообще, удалить надо!
Борис, лучше б ты ему прямо кодом показал, а то я с недосыпу забыл... ;)
Борис, лучше б ты ему прямо кодом показал, а то я с недосыпу забыл... ;)
Не хотел злоупотреблять твоим авторским правом! ;)
А серьёзно, что-то не вставлялось! Но сейчас попробую!
А сейчас получилось! Странно!
Здравствуйте! Подскажите пожалуйста, почему у меня иногда не срабатывает оператор if esle.
Вот пример:
Где:
H3 - это ценовое значение уровня
price - текущая цена
В итоге выходит, что цена доходит до этого уровня (иногда даже останавливается на нем), а Алерт не срабатывает.
Подскажите в чем ошибка?
Здравствуйте! Подскажите пожалуйста, почему у меня иногда не срабатывает оператор if esle.
Вот пример:
Где:
H3 - это ценовое значение уровня
price - текущая цена
В итоге выходит, что цена доходит до этого уровня (иногда даже останавливается на нем), а Алерт не срабатывает.
Подскажите в чем ошибка?
Доброе утро.
Программа имеет такой вид.
При компиляции выдает:
'Ozero.mq4' Ozero.mq4 1 1
return value of 'OrderClose' should be checked Ozero.mq4 46 13
implicit conversion from 'number' to 'string' Ozero.mq4 49 117
0 error(s), 2 warning(s) 1 3
Во вкладке "результаты" видно, что ордера открываются и закрываются.
1 2014.08.25 00:00 buy 1 0.10 1.6550 0.0000 0.0000 0.00 10000.00
2 2014.08.25 06:30 close 1 0.10 1.6562 0.0000 0.0000 0.12 10000.12
3 2014.08.25 06:31 buy 2 0.10 1.6564 0.0000 0.0000 0.00 10000.12
4 2014.08.25 10:00 close 2 0.10 1.6574 0.0000 0.0000 0.10 10000.22
5 2014.08.25 10:00 buy 3 0.10 1.6576 0.0000 0.0000 0.00 10000.22
6 2014.08.25 12:58 close 3 0.10 1.6586 0.0000 0.0000 0.10 10000.32
7 2014.08.25 12:58 buy 4 0.10 1.6590 0.0000 0.0000 0.00 10000.32
8 2014.08.26 13:13 close at stop 4 0.10 1.6576 0.0000 0.0000 -0.14 10000.18
8 - это я прервал работу закрыв тестер.
Далее, смотрим "Журнал":
2014.10.31 07:46:44.837 GBPUSD,M15: 4453 tick events (5608 bars, 340128 bar states) processed within 312876 ms (total time 324436 ms)
2014.10.31 07:46:44.837 2014.08.26 13:13 Tester: order #4 is closed
2014.10.31 07:46:44.798 2014.08.26 13:13 Visual tester stopped
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 4
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: open #4 buy 0.10 GBPUSD at 1.6590 ok
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: Открытие первой позиции
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: Чё-та не закрылася позиция. Фигня вот такая происходит: 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: OrderClose error 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: unknown ticket 3 for OrderClose function
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: close #3 buy 0.10 GBPUSD at 1.6576 at price 1.6586
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 3
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: open #3 buy 0.10 GBPUSD at 1.6576 ok
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: Открытие первой позиции
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: Чё-та не закрылася позиция. Фигня вот такая происходит: 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: OrderClose error 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: unknown ticket 2 for OrderClose function
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: close #2 buy 0.10 GBPUSD at 1.6564 at price 1.6574
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 2
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: open #2 buy 0.10 GBPUSD at 1.6564 ok
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: Открытие первой позиции
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: Чё-та не закрылася позиция. Фигня вот такая происходит: 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: OrderClose error 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: unknown ticket 1 for OrderClose function
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: close #1 buy 0.10 GBPUSD at 1.6550 at price 1.6562
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: ОРДЕР ОТКРЫТ 1
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: open #1 buy 0.10 GBPUSD at 1.6550 ok
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: Открытие первой позиции
2014.10.31 07:41:31.958 Ozero inputs: gLot=0.1; gPoint=0.001;
Теперь я вообще в растерянности. С одной стороны ордера закрываются, это видно по графику и "результатам", с другой стороны судя по журналу код исполняется с ошибками :(((((((((((
Ozero.