Ваши вопросы по языку MQL4

Leonup

Новичок форума
Канал из 4-х равноудаленных линий

Добрый день!
В mt4 есть функция вставки параллельного канала, состоящего из 2-х равноудаленных линий.
Можно ли создать такой же регулируемый канал с помощью mql4, но состоящий из 4-х равноудаленных линий?
Конечно, это можно, сделать вручную, поместив в больший канал – канал поменьше. Но это сравнительно долго: глаз – не алмаз. :-). И, кроме того, если ширину большего канала нужно изменить, то все начинай сначала. Хотелось бы автоматизировать. :-)
Если да, подскажите, пожалуйста, с чего начать?
А может, есть такой индикатор?
 

}{ottabch

Интересующийся
Здравствуйте.
Код:
Expand Collapse Copy
if (Tip==0 && Cls_B==true)                
        {                                       
         Alert("Trying to close Buy",Ticket,". Waiting for reply ..");
         RefreshRates();                        
         Ans=OrderClose(Ticket,Lot,Bid,2);      
         if (Ans==true)                         
           {
            Alert ("Closed order Buy ",Ticket);
            break;                              
           }
закрывает один ордер... а как организовать закрыть все ордера типа бай открытые на данный момент
 

gzh

Интересующийся
День добрый!
Я новичок в MQL4,еще много вещей не знаю. Кто знает, подскажите пожалуйста как сделать такое: если ордер в определенном минусе (минус задается во внешней переменной), открыть противоположный ордер.

extern double Profit = 0.5;
extern double Ubytok = 0.5;

for (int i=0; i<=orderstotal(); i++)
{
OrderSelect (i,SELECT_BY_POS);
if (OrderType()==0 && OrderProfit() >= Profit)
{
OrderSend (Symbol(), OP_SELL, lot, Bid, slippage, 0,0);
}
}

Что в этом коде нужно изменить, чтобы если убыток ордера равен Ubytok, тогда открывается противоположный ордер. ??
 

qqmber

Почетный гражданин
Добрый день!
В mt4 есть функция вставки параллельного канала, состоящего из 2-х равноудаленных линий.
Можно ли создать такой же регулируемый канал с помощью mql4, но состоящий из 4-х равноудаленных линий?
Конечно, это можно, сделать вручную, поместив в больший канал – канал поменьше. Но это сравнительно долго: глаз – не алмаз. :-). И, кроме того, если ширину большего канала нужно изменить, то все начинай сначала. Хотелось бы автоматизировать. :-)
Если да, подскажите, пожалуйста, с чего начать?
А может, есть такой индикатор?
Можно. Я бы рисовал руками обычный канал и имел бы скрипт, который следил бы за этим каналом и подрисовывал второй.
 

qqmber

Почетный гражданин
Здравствуйте.
Код:
Expand Collapse Copy
if (Tip==0 && Cls_B==true)                
        {                                       
         Alert("Trying to close Buy",Ticket,". Waiting for reply ..");
         RefreshRates();                        
         Ans=OrderClose(Ticket,Lot,Bid,2);      
         if (Ans==true)                         
           {
            Alert ("Closed order Buy ",Ticket);
            break;                              
           }
закрывает один ордер... а как организовать закрыть все ордера типа бай открытые на данный момент
Посмотри в кодбазе, там туча вариантов. Например так
_http://codebase.mql4.com/ru/8821
 

qqmber

Почетный гражданин
День добрый!
Я новичок в MQL4,еще много вещей не знаю. Кто знает, подскажите пожалуйста как сделать такое: если ордер в определенном минусе (минус задается во внешней переменной), открыть противоположный ордер.

extern double Profit = 0.5;
extern double Ubytok = 0.5;

for (int i=0; i<=orderstotal(); i++)
{
OrderSelect (i,SELECT_BY_POS);
if (OrderType()==0 && OrderProfit() >= Profit)
{
OrderSend (Symbol(), OP_SELL, lot, Bid, slippage, 0,0);
}
}

Что в этом коде нужно изменить, чтобы если убыток ордера равен Ubytok, тогда открывается противоположный ордер. ??
Поменять OrderProfit() >= Profit на OrderProfit() <= Ubytok
Убыток задавать как отрицательное число во внешнем параметре.
OrdersTotal() правильно написать.
 

Leonup

Новичок форума
Можно. Я бы рисовал руками обычный канал и имел бы скрипт, который следил бы за этим каналом и подрисовывал второй.

Спасибо за идею. Как только вот получить координаты построенного вручную канала? Дальше, думаю, будет легче...
 

qqmber

Почетный гражданин
Спасибо за идею. Как только вот получить координаты построенного вручную канала? Дальше, думаю, будет легче...
ObjectGet() все скажет.
Код:
Expand Collapse Copy
int start() {
int i;
double t1,t2,t3,p1,p2,p3;
string name;
   for(i=0; i<ObjectsTotal(); i++) {
      name=ObjectName(i);
      if(ObjectType(name)!=OBJ_CHANNEL) continue;
//F1:      OBJ_CHANNEL 5 Channel. Uses 3 coordinates. 
      t1=ObjectGet(name,OBJPROP_TIME1);
      p1=ObjectGet(name,OBJPROP_PRICE1);
      t2=ObjectGet(name,OBJPROP_TIME2);
      p2=ObjectGet(name,OBJPROP_PRICE2);
      t3=ObjectGet(name,OBJPROP_TIME3);
      p3=ObjectGet(name,OBJPROP_PRICE3);
      Alert("Channel ","(",TimeToStr(t1)," ",p1,") ","(",TimeToStr(t2)," ",p2,") ","(",TimeToStr(t3)," ",p3,") ");
   }
}
 

qqmber

Почетный гражданин
Можно.
Я бы рисовал руками обычный канал и имел бы скрипт, который следил бы за этим каналом и подрисовывал второй.
Версия 0.2.
Я имел бы скрипт, который рисует два канала и следит за ними, если один канал кто-то изменил руками, то скрипт подстраивает второй.
 

asers1111

Активный участник
int Flet;
Flet = METROMagenta > 50 && METROBlue < 50 && RedLine > sig1_CentrLevel && BlueLine < sig1_CentrLevel && WPRDnLine < sig1_CentrWPRLevel && WPRUpLine > sig1_CentrWPRLevel
|| METROMagenta < 50 && METROBlue > 50 && RedLine > sig1_CentrLevel && BlueLine < sig1_CentrLevel && WPRDnLine < sig1_CentrWPRLevel && WPRUpLine > sig1_CentrWPRLevel;

Добрый день.Помогите,пожалуйста.
Bот условия,взятые из нескольких пользовательских индикаторов,при которых нужно,чтобы сделки НЕ ОТКРЫВАЛИСЬ я назвал их Flet.А как бы записать обратное состояние рынка - ну хоть Trend,когда условия Flet отсутствуют и можно ОТКРЫВАТЬ сделки?
 
Последнее редактирование:

Leonup

Новичок форума
Версия 0.2.
Я имел бы скрипт, который рисует два канала и следит за ними, если один канал кто-то изменил руками, то скрипт подстраивает второй.

Оказывается, в mt4 есть все-таки функция вставки такого канала! Только нужно изменить имеющиеся там уровни. Эти уровни можно удалять, добавлять, сколько нужно.
А урок MQL4, думаю, пригодится в будущем!
Спасибо.
 

qqmber

Почетный гражданин
Оказывается, в mt4 есть все-таки функция вставки такого канала! Только нужно изменить имеющиеся там уровни. Эти уровни можно удалять, добавлять, сколько нужно.
А урок MQL4, думаю, пригодится в будущем!
Спасибо.

Точно! Фибо со произвольными уровнями.
 

asers1111

Активный участник
Помогите советом!
Здравствуйте.Подскажите что делать!Вчера вечером при выключении компа пришлось установить очередные обновления безопасности для Windows.Сегодня включил Метатрейдер,чтобы просмотреть получше в тестере то,что вчера писал в Метаэдиторе ,а советник не открывает свойства и не работает.А ВЧЕРА РАБОТАЛ! Я заглянул в папку терминала и увидел,что там только mq4 файл, а ex4 файла нету.И в тех советниках,где нет ex4 файла дела обстоят также.Попытался написать заново,но Метаэдитор создает только файл mq4 и он не работает в тестере.Обновления - удалил с компа,но все осталось также. Что делать?Подскажите,пожалуйста!
 

qqmber

Почетный гражданин
Помогите советом!
Здравствуйте.Подскажите что делать!Вчера вечером при выключении компа пришлось установить очередные обновления безопасности для Windows.Сегодня включил Метатрейдер,чтобы просмотреть получше в тестере то,что вчера писал в Метаэдиторе ,а советник не открывает свойства и не работает.А ВЧЕРА РАБОТАЛ! Я заглянул в папку терминала и увидел,что там только mq4 файл, а ex4 файла нету.И в тех советниках,где нет ex4 файла дела обстоят также.Попытался написать заново,но Метаэдитор создает только файл mq4 и он не работает в тестере.Обновления - удалил с компа,но все осталось также. Что делать?Подскажите,пожалуйста!
Файл mq4 часом не декомпил? Если открыть его метаедитором и нажать кнопку компилировать - что пишет?
 

asers1111

Активный участник
Файл mq4 часом не декомпил? Если открыть его метаедитором и нажать кнопку компилировать - что пишет?

Я сам вчера писал советник.Он работал в тестере.Сегодня хотел его доработать,но тестер ни настройки его не показывает ни работать ему не дает.При компиляции пишет 0 ошибок.
Я заметил,что работают только те совы,у которых в папке 2 файла ex4 и mq4 ,а у которых только mq4 - не работают.Попробовал перекинуть код советника на другой терминал,а там полная каша получилась,хотя копировал абсолютно нормальный код...
Что можно сделать теперь? Работать никак не могу.......Беда!
 

qqmber

Почетный гражданин
Я сам вчера писал советник.Он работал в тестере.Сегодня хотел его доработать,но тестер ни настройки его не показывает ни работать ему не дает.При компиляции пишет 0 ошибок.
Я заметил,что работают только те совы,у которых в папке 2 файла ex4 и mq4 ,а у которых только mq4 - не работают.Попробовал перекинуть код советника на другой терминал,а там полная каша получилась,хотя копировал абсолютно нормальный код...
Что можно сделать теперь? Работать никак не могу.......Беда!
Одно из двух - или компилятор считает, что это декомпилированный код и поэтому отказывается работать или что-то с размещением по папкам не так стало после обновления.
Что значит каша получилась - не понял. Если копирование файла не работает нормально, то надо железо лечить или винду переустанавливать.
Ну а пока
1. Скачай терминал с сайта брокера.
2. Установи в корень с: (не а в Program Files)
3. Убедись, что терминал 509 билда
Если не поможет, убери символы подчеркивания в именах переменных.
 

asers1111

Активный участник
Одно из двух - или компилятор считает, что это декомпилированный код и поэтому отказывается работать или что-то с размещением по папкам не так стало после обновления.
Что значит каша получилась - не понял. Если копирование файла не работает нормально, то надо железо лечить или винду переустанавливать.
Ну а пока
1. Скачай терминал с сайта брокера.
2. Установи в корень с: (не а в Program Files)
3. Убедись, что терминал 509 билда
Если не поможет, убери символы подчеркивания в именах переменных.

Спасибо. Я сегодня поставил новый терминал - билд 509.Вот на него я перенес файлы сов и индюков с терминала 482 билда,на котором все и писал.Так на этом 509 те совы в которых оба файла сохранились(ex4 и mq4) работают....Но в Метаэдиторе просто каша,а не код.И индикаторы тоже каша в коде,а на графике и в тестере работают.ПАРАДОКС! Однако мне надо бы в коде что-то подправить,а я не могу....И как тут быть???????
 

qqmber

Почетный гражданин
Спасибо. Я сегодня поставил новый терминал - билд 509.Вот на него я перенес файлы сов и индюков с терминала 482 билда,на котором все и писал.Так на этом 509 те совы в которых оба файла сохранились(ex4 и mq4) работают....Но в Метаэдиторе просто каша,а не код.И индикаторы тоже каша в коде,а на графике и в тестере работают.ПАРАДОКС! Однако мне надо бы в коде что-то подправить,а я не могу....И как тут быть???????
Прям заинтриговал. Покажи, что такое каша, скриншотом хоть.
 
Верх