Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1475

 
MakarFX:

я же подписал

Макар, прекращай человеку дурить голову. Ему достаточно переменной глобального уровня и текущей цены.

input int      Points = 30;
double LoU;

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Bid-LoU >= Points*_Point)
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"300",0);
     Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
     LoU = Bid; // Здесь вместо Bid можно поставить любую цену
    }
  }

Таким образом на каждом тике будет проверяться разность текущей цены и цены в переменной LoU и если эта разница будет равна или превысит 30 пунктов — условие выполнено, переменная LoU примет новое значение и проверка разности будет вестись уже с другим значением.

 
ANDREY:

Вот твой код

Но он почему то не открыл ни одного ордера.

У меня открывает. Проверь что пишет журнал


 

Доброго времени суток!


Создаю индикатор в отдельном окне. Хочу установить начальную высоту окна, к примеру 100

У нас есть стандартные функции:

#property indicator_height  100
IndicatorSetInteger(INDICATOR_HEIGHT, 100)

Но они блокируют пользовательское изменние высоты, она навсегда остается 100((( А оч нужно чтобы было можно ручками потом изменить


Есть другие варианты?) Пока нашел только варик через WinAPI симулировать, что мы мышкой растягиваем окно (и то не уверен что смогу реализовать)

 

Сделайте так:

IndicatorSetInteger(INDICATOR_HEIGHT, 100);
IndicatorSetInteger(INDICATOR_HEIGHT, 0);
 
alex_xss:

Доброго времени суток!


Просто удали

IndicatorSetInteger(INDICATOR_HEIGHT, 100)
 
Здесь есть тонкость. Сначала устанавливаем размер, а потом сбрасыванием в ноль отпускаем фиксацию, при этом размер не меняется. По-другому никак.
 
Alexey Viktorov:

Макар, прекращай человеку дурить голову. Ему достаточно переменной глобального уровня и текущей цены.

Таким образом на каждом тике будет проверяться разность текущей цены и цены в переменной LoU и если эта разница будет равна или превысит 30 пунктов — условие выполнено, переменная LoU примет новое значение и проверка разности будет вестись уже с другим значением.

Вы не правы радикально....Благодаря Макару я значительно и самое главное очень полезно расширил свой форекс кругозор. Если бы не он неизвестно когда бы я узнал так много полезных для меня вещей. Побольше бы таких "дурильщиков" на этом форуме. Ведь именно он ,а  не кто то другой, подсказал мне что решение моей проблемы лежит в применении   EventSetTimer(60)  Я ему очень признателен за быструю и качественную информационную поддержку. 

А то что Вы советуете , я знал это давно и в моем коде Ваш совет присутствует изначально.
 
Alexey Viktorov:

Макар, прекращай человеку дурить голову. Ему достаточно переменной глобального уровня и текущей цены.

Ты никогда не читаешь тему сначала и советуешь то что уже пройдено

 
MakarFX:

Ты никогда не читаешь тему сначала и советуешь то что уже пройдено

Согласен с тобой на 100 %....не в обиду Алексею.....

 
MakarFX:

У меня открывает. Проверь что пишет журнал


2021.05.20 06:30:45.176 GBPUSD,M1: 52255 tick events (1440 bars, 53255 bar states) processed in 0:00:00.000 (total time 0:00:05.906)
2021.05.20 06:30:45.163 2010.01.04 00:00:00  ×ÈÑÒÛÉ inputs: Points=30; 
2021.05.20 06:30:45.145 TestGenerator: spread set to 2
2021.05.20 06:30:45.145 TestGenerator: no connect to trade server, default environment will be applied
Причина обращения: