Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 704

 
Комментарии, не относящиеся к этой теме, были перенесены в "Где скачать нормальный MT4? Без онлайн установщика.".
 

В советнике вот такой код (лонг после растущей свечи, закрытие позиции после снижающейся свечи):

         if (Close[1]>Open[1])
                 {
                     printf("Сигнал на покупку");
                     trade.Buy(1);
                  }
         if (PositionsTotal()>0 && Close[1]<Open[1]) trade.PositionClose(Symbol());

 trade - объект класса CTrade

Происходит множество сделок (в тестере). Но некоторые сделки выполняются по нереальным ценам.

Например, при текущей цене 131540, максимуме свечи 131630, покупка происходит по цене 134570.

Записи в логе: 

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   Сигнал на покупку

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   exchange buy 1.00 RTS-6.13 at 134570 (131540 / 134570 / 131540)

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   deal #6 buy 1.00 RTS-6.13 at 134570 done (based on order #6)

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   deal performed [#6 buy 1.00 RTS-6.13 at 134570]

2016.12.18 05:27:03.087 Core 1 2013.04.22 10:01:00   order performed buy 1.00 at 134570 [#6 buy 1.00 RTS-6.13 at 134570]

2016.12.18 05:27:03.087 Core 1 2013.04.22 10:01:00   CTrade::OrderSend: exchange buy 1.00 RTS-6.13 [done]


Почему такое происходит? откуда берется левая цена (134570 в данном случае)? Подавляющее большинство сделок происходит по нормальным ценам, но одна из 20-30 сделок - по каким-то левым ценам. На графике такие сделки тоже отображаются сильно выше свечи.

 

 
dimnik:

В советнике вот такой код (лонг после растущей свечи, закрытие позиции после снижающейся свечи):

         if (Close[1]>Open[1])
                 {
                     printf("Сигнал на покупку");
                     trade.Buy(1);
                  }
         if (PositionsTotal()>0 && Close[1]<Open[1]) trade.PositionClose(Symbol());

 trade - объект класса CTrade

Происходит множество сделок (в тестере). Но некоторые сделки выполняются по нереальным ценам.

Например, при текущей цене 131540, максимуме свечи 131630, покупка происходит по цене 134570.

Записи в логе: 

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   Сигнал на покупку

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   exchange buy 1.00 RTS-6.13 at 134570 (131540 / 134570 / 131540)

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   deal #6 buy 1.00 RTS-6.13 at 134570 done (based on order #6)

2016.12.18 05:27:03.086 Core 1 2013.04.22 10:01:00   deal performed [#6 buy 1.00 RTS-6.13 at 134570]

2016.12.18 05:27:03.087 Core 1 2013.04.22 10:01:00   order performed buy 1.00 at 134570 [#6 buy 1.00 RTS-6.13 at 134570]

2016.12.18 05:27:03.087 Core 1 2013.04.22 10:01:00   CTrade::OrderSend: exchange buy 1.00 RTS-6.13 [done]


Почему такое происходит? откуда берется левая цена (134570 в данном случае)? Подавляющее большинство сделок происходит по нормальным ценам, но одна из 20-30 сделок - по каким-то левым ценам. На графике такие сделки тоже отображаются сильно выше свечи.

 

П Включите показ цены ask. Так как покупки открываются по ask, а свечки стояться по цене bid.
 
Sergey Gritsay:
П Включите показ цены ask. Так как покупки открываются по ask, а свечки стояться по цене bid.
Как? И причем здесь ask, если котировок таких на истории даже близко не было?
 
dimnik:
Как? И причем здесь ask, если котировок таких на истории даже близко не было?

Вы уверены? Сервер демо или реал? Распринтовывали тиковую историю с 10:00:30 по 10:01:30?

 

Добавлено:

хотя я сомневаюсь в корректности  истории, которой ТРИ года:

2016.12.18 05:27:03.086 Core 1  2013.04.22 10:01:00   Сигнал на покупку
2016.12.18 05:27:03.086 Core 1  2013.04.22 10:01:00   exchange buy 1.00 RTS-6.13 at 134570 (131540 / 134570 / 131540)
2016.12.18 05:27:03.086 Core 1  2013.04.22 10:01:00   deal #6 buy 1.00 RTS-6.13 at 134570 done (based on order #6)
2016.12.18 05:27:03.086 Core 1  2013.04.22 10:01:00   deal performed [#6 buy 1.00 RTS-6.13 at 134570]
2016.12.18 05:27:03.087 Core 1  2013.04.22 10:01:00   order performed buy 1.00 at 134570 [#6 buy 1.00 RTS-6.13 at 134570]
2016.12.18 05:27:03.087 Core 1  2013.04.22 10:01:00   CTrade::OrderSend: exchange buy 1.00 RTS-6.13 [done]
 

Всем привет. Подскажите пожалуйста что здесь не так?

double RedLine =  iCustom (Symbol(), 0, Forexofftrend3, CountBars, SSP, Kmin, Kmax, 0, 0);

при компиляции пишет Forexofftrend3 - undeclared identifier.

И так при любом вызываемом идикаторе.

Файлы:
RSI.JPG  94 kb
RSI0.JPG  34 kb
 
Сергей:

Всем привет. Подскажите пожалуйста что здесь не так?

double RedLine =  iCustom (Symbol(), 0, Forexofftrend3, CountBars, SSP, Kmin, Kmax, 0, 0);

при компиляции пишет Forexofftrend3 - undeclared identifier.

И так при любом вызываемом идикаторе.

double RedLine =  iCustom (Symbol(), 0, "Forexofftrend3", CountBars, SSP, Kmin, Kmax, 0, 0);
 
@Vitaly Muzichenko, спасибо за быстрый ответ.
 
Sergey Gritsay:
Включите показ цены ask. Так как покупки открываются по ask, а свечки стояться по цене bid.

Вы были правы. 

Сделал распринтовку цены ask - она выше на 3030 пунктов, чем bid/ask.

Причем на большей части истории - 10 пунктов (реальный шаг цены этого инструмента), а на части истории - поднимается до 3030 пунктов (в 18:44 в нижеприведенной распринтовке).

Как это изменить?

 

GE      0       13:13:23.758    Core 1  2013.04.19 18:43:57   Last 128967.000000 Bid 128967.000000 Ask 128997.000000
FJ      0       13:13:23.758    Core 1  2013.04.19 18:43:57   Last 128966.000000 Bid 128966.000000 Ask 128996.000000
CO      0       13:13:23.758    Core 1  2013.04.19 18:43:57   Last 128967.000000 Bid 128967.000000 Ask 128997.000000
CL      0       13:13:23.758    Core 1  2013.04.19 18:43:58   Last 128966.000000 Bid 128966.000000 Ask 128996.000000
OQ      0       13:13:23.758    Core 1  2013.04.19 18:43:58   Last 128968.000000 Bid 128968.000000 Ask 128998.000000
HF      0       13:13:23.758    Core 1  2013.04.19 18:43:58   Last 128967.000000 Bid 128967.000000 Ask 128997.000000
KK      0       13:13:23.758    Core 1  2013.04.19 18:43:58   Last 128968.000000 Bid 128968.000000 Ask 128998.000000
LO      0       13:13:23.758    Core 1  2013.04.19 18:43:58   Last 128967.000000 Bid 128967.000000 Ask 128997.000000
GL      0       13:13:23.758    Core 1  2013.04.19 18:43:58   Last 128968.000000 Bid 128968.000000 Ask 128998.000000
OQ      0       13:13:23.758    Core 1  2013.04.19 18:43:59   Last 128967.000000 Bid 128967.000000 Ask 128997.000000
DF      0       13:13:23.758    Core 1  2013.04.19 18:43:59   Last 128968.000000 Bid 128968.000000 Ask 128998.000000
CK      0       13:13:23.758    Core 1  2013.04.19 18:43:59   Last 128967.000000 Bid 128967.000000 Ask 128997.000000
GH      0       13:13:23.758    Core 1  2013.04.19 18:43:59   Last 128970.000000 Bid 128970.000000 Ask 129000.000000
FM      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128970.000000 Bid 128970.000000 Ask 132000.000000
CR      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128971.000000 Bid 128971.000000 Ask 132001.000000
RF      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128970.000000 Bid 128970.000000 Ask 132000.000000
OK      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128971.000000 Bid 128971.000000 Ask 132001.000000
NH      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128970.000000 Bid 128970.000000 Ask 132000.000000
NM      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128972.000000 Bid 128972.000000 Ask 132002.000000
IR      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128971.000000 Bid 128971.000000 Ask 132001.000000
JG      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128972.000000 Bid 128972.000000 Ask 132002.000000
ED      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128971.000000 Bid 128971.000000 Ask 132001.000000
EI      0       13:13:23.758    Core 1  2013.04.19 18:44:00   Last 128973.000000 Bid 128973.000000 Ask 132003.000000
 
dimnik:

Вы были правы. 

Сделал распринтовку цены ask - она выше на 3030 пунктов, чем bid/ask.

Причем на большей части истории - 10 пунктов (реальный шаг цены этого инструмента), а на части истории - поднимается до 3030 пунктов (в 18:44 в нижеприведенной распринтовке).

Как это изменить?

Никак. Такая торговая история, тем более это котировки 2013 года.
Причина обращения: