Почему функция WindowPriceOnDrop () не служит хранилищем цены в моем коде? - PullRequest
0 голосов
/ 24 октября 2019

Я уже некоторое время торгую с сеточными ордерами, но только что понял, что есть функция 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», если логика остается прежней?

Спасибо.

1 Ответ

0 голосов
/ 24 октября 2019

WindowPriceOnDropped() возвращает нормализованное значение цены, вы можете снова нормализовать с помощью NormalizeDouble(double, _Digits). Поэтому вместо Price*point используйте просто Price или его нормализованное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...