Я уже некоторое время торгую с сеточными ордерами, но только что понял, что есть функция WindowPriceOnDropped()
, которую я хотел бы включить.
Мое стандартное размещение ордера написано так. Вот пример кода для 5 ордеров, разнесенных на 5 пипсов, все микролоты, с 50 пипсовыми стопами и тейк-профитом в 100 пипсов. Первый ордер появляется близко к рынку, всего на 1 пункт вниз, а остальные следуют:
int start()
{
int ticket;
double point;
//----
point=MarketInfo(Symbol(),MODE_POINT);
//----
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-100*point,0,Ask-600*point,Ask+900*point,"[5] 1k, 1 pip down");
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-150*point,0,Ask-650*point,Ask+850*point,"[5] 1k, 1 pip down");
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-200*point,0,Ask-700*point,Ask+800*point,"[5] 1k, 1 pip down");
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-250*point,0,Ask-750*point,Ask+750*point,"[5] 1k, 1 pip down");
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-300*point,0,Ask-800*point,Ask+700*point,"[5] 1k, 1 pip down");
//----
return(0);
}
//+------------------------------------------------------------------+
Я тестирую WindowPriceOnDropped()
, вот так:
#include <stdlib.mqh>
#include <WinUser32.mqh>
int start()
{
int ticket;
double point;
double Price = WindowPriceOnDropped();
//----
point=MarketInfo(Symbol(),MODE_POINT);
//----
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.01,Price*point,0,Price-500*point,Price+1000*point, "[5] 1k test");
//----
return(0);
}
//+------------------------------------------------------------------+
Однако,порядок не появляется вообще. Я что-то пропустил? Единственное, что я изменил, - это «Цена», в которой должно сохраняться значение пункта при выпадении из-за функции WindowPriceOnDropped()
, в отличие от значения «Задать минус». Почему я не могу просто заменить переменную на «Ask», если логика остается прежней?
Спасибо.