[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 160

 
wolf05632:

Как остановить выполнение индикатора ...если proc_zahlest>100


int start()
{if(proc_zahlest>100)return(0);
...
return(0);}
 
wolf05632:

... И еще вопрос: как должна выглядеть временная координата OBJ_TEXT, чтобы текст был ПРАВЕЕ нулевой свечи?

datetime t=Time[0]+Shift*Period()*60;//Shift -- положительное целое число.
 
granit77:
Перенесено:

eurodollar1981 09.09.2011 10:37
Здравствуйте! подскажите как прописать в мт4, чтобы нажатием одной клавиши покупать ордер с заранее прописанным стоплоссом и тейк профитом?


Две клавиши -- много? Если -- нет, то пишется соответствующий скрипт, исполнение которого устанавливается на "горячую клавишу".

Терминал --> Навигатор --> Скрипты --> Ваш скрипт --> Нажатие правой клавиши мышки --> Установить горячую клавишу.

 

Roger:

Xaoss1990:

Roger:
Это не та часть кода, где может быть ошибка.
Эм.... а остальной код - это вычисление значений ( POINT_BUY_M15, POINT_BUY_H, POINT_BUY_H4, POINT_SELL_M15, POINT_SELL_H, POINT_SELL_H4 ) для заключения сделок, она правильно работает.. я проверял... там все просто....
Если бы ошибка была здесь, в логах бы прописало "Стоп не установлен", а этого нет.

Ошибка кроется именно в том коде. Закрывается BUY, а потом выбирается ордер, которого уже нет и закрывается задуманный SELL, которого и не было вообще. Вроде указал на ошибку. Разобраться не сложно будет.

Я начинал изучение MQL с учебника. Там есть достаточное количество примеров, которые грамотно построены. Некоторые конструкции, используемые в этих примерах, Я использую и до сих пор в своих наработках.

 
MaxZ:

Ошибка кроется именно в том коде. Закрывается BUY, а потом выбирается ордер, которого уже нет и закрывается задуманный SELL, которого и не было вообще. Вроде указал на ошибку. Разобраться не сложно будет.

Я начинал изучение MQL с учебника. Там есть достаточное количество примеров, которые грамотно построены. Некоторые конструкции, используемые в этих примерах, Я использую и до сих пор в своих наработках.


Согласен. Рекомендую:
datetime OrderCloseTime( )
Возвращает время закрытия для выбранного ордера. Только закрытые ордера имеют время закрытия, не равное 0. Открытые или отложенные ордера имеют время закрытия, равное 0.
Ордер должен быть предварительно выбран с помощью функции OrderSelect().
 
Roll:


тьфу еп... Спасибо!
 

Ребят, помогите, туплю. Делаю индикатор, которым хочу выводить в виде текстовых обьектов инфу с разных других индикаторов c разных таймфреймов. Например ADX. Делаю три iADX:

 f0 = iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_MINUSDI,0);
 f1 = iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_MINUSDI,0); 
 f2 = iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_MINUSDI,0); 

Тестирую на H4, изменяется только тот ADX, который на H4, два остальных выдают постоянное значение. Помогите плз.

 
vitali_yv:

Ребят, помогите, туплю. Делаю индикатор, которым хочу выводить в виде текстовых обьектов инфу с разных других индикаторов c разных таймфреймов. Например ADX. Делаю три iADX:

Тестирую на H4, изменяется только тот ADX, который на H4, два остальных выдают постоянное значение. Помогите плз.


Попробуйте на М30 - если явно периоды прописаны в коде то должно все заработать.
 
vitali_yv:

Ребят, помогите, туплю. Делаю индикатор, которым хочу выводить в виде текстовых обьектов инфу с разных других индикаторов c разных таймфреймов. Например ADX. Делаю три iADX:

Тестирую на H4, изменяется только тот ADX, который на H4, два остальных выдают постоянное значение. Помогите плз.

Может котировки по другим ТФ не загружены для данного инструмента?

Или же выводите не правильно, что точно могут знать только господа Телепаты...

 
MaxZ:

Ошибка кроется именно в том коде. Закрывается BUY, а потом выбирается ордер, которого уже нет и закрывается задуманный SELL, которого и не было вообще. Вроде указал на ошибку. Разобраться не сложно будет.

Перед тем как закрывать ордер советник проверяет магическое число ордера, и оно разное для ордеров бай и селл. Так что один и тот же ордер не может закрываться и как Бай и как Селл

Вот код:

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ BUY-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)
{
if (POINT_BUY_M15 < Strgh_UP_M15 || POINT_BUY_H1 < Strgh_UP_H1 || POINT_BUY_H4 < Strgh_UP_H4)
{
close = 1;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Bid, 5, Yellow);
}

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ SELL-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (OrdersTotal() == 1 && Magic == 222 && OrderType( ) == 1)
{
if (POINT_SELL_M15 < Strgh_DOWN_M15 || POINT_SELL_H1 < Strgh_DOWN_H1 || POINT_SELL_H4 < Strgh_DOWN_H4)
{
close = 1;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Ask, 5, Red);
}

Причина обращения: