Перейти к содержанию

Напишу советник для МТ4/MT5 по вашему техзаданию


Рекомендуемые сообщения

  • 1 month later...
  • Ответов 341
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Предлагаю качественное написание экспертов для МТ4. От вас нужно Техзадание в txt или doc, желательно с поясняющими скринами. Публиковать заявки c ТЗ можете здесь в ветке или присылать мне в ли

Перейти

ох не знаю. fullATR как по мне это самый бесполезный параметр, да еще и корявый и тёмный по логике с непредсказуемым поведением на всю систему. Изменения 1.14 - добавлен раздела установки общих СЛ/ТП

Перейти

Уважаемые трейдеры. Искренне благодарен всем, кто принимает участие в этой ветке, а особенно тем, кто присылал свои техзадания на советники. |3=3 Эти три месяца, проведенные в активной работе с вам

Перейти
Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано

Ребята, кто может сделать код, начало и конец работы советника (например, начало в 10:00 и конец в 19:00)  

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
1 час назад, drobayura сказал:

Ребята, кто может сделать код, начало и конец работы советника (например, начало в 10:00 и конец в 19:00)  

 

 

// внешние параметры
input string TimeStart="10:00"; // время начала открытия позиций
input string TimeEnd="19:00"; // время окончания открытия позиций

...

//------------------------------------------------------------------ 
bool CheckTime() // функция проверки времени, заданного строками
{
	datetime dt=TimeCurrent();
	datetime dt1=StringToTime(TimeToString(dt, TIME_DATE)+" "+TimeStart);
	datetime dt2=StringToTime(TimeToString(dt, TIME_DATE)+" "+TimeEnd);
	if (dt1==dt2) return true;
	if (dt1<dt2) if (dt>=dt1 && dt<=dt2) return true;
	if (dt1>dt2) if (dt>=dt1 || dt<=dt2) return true;
	return false ;
}

//------------------------------------------------------------------ 
void OnTick() // обработка тика
{
    if (CheckTime()) // если время разрешает работать
    {
      ...
      /* выполняем какие-то действия в это время
         например открытие позиций
      */
      ...
    }
    ...
    /* выполняем остальные действия, которые нужно делать всегда
       например трал стоплоса
    */
}
                                        
                                       

 

 

 

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
18 часов назад, mqloud сказал:

 

 

// внешние параметры
input string TimeStart="10:00"; // время начала открытия позиций
input string TimeEnd="19:00"; // время окончания открытия позиций

...

//------------------------------------------------------------------ 
bool CheckTime() // функция проверки времени, заданного строками
{
	datetime dt=TimeCurrent();
	datetime dt1=StringToTime(TimeToString(dt, TIME_DATE)+" "+TimeStart);
	datetime dt2=StringToTime(TimeToString(dt, TIME_DATE)+" "+TimeEnd);
	if (dt1==dt2) return true;
	if (dt1<dt2) if (dt>=dt1 && dt<=dt2) return true;
	if (dt1>dt2) if (dt>=dt1 || dt<=dt2) return true;
	return false ;
}

//------------------------------------------------------------------ 
void OnTick() // обработка тика
{
    if (CheckTime()) // если время разрешает работать
    {
      ...
      /* выполняем какие-то действия в это время
         например открытие позиций
      */
      ...
    }
    ...
    /* выполняем остальные действия, которые нужно делать всегда
       например трал стоплоса
    */
}
                                        
                                       

 

 

 

Спасибо БОЛЬШОЕ.  Всё работает отлично. Эта функция нужна для теста стратегий. В тестере советник шпарит круглые сутки напролёт, а в реалии так не работаем.

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано

Ребята, а можно вставить компелированный индикатор в советник? Индикатор рисует в чарте синие  и красные уровни.

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
17 часов назад, mqloud сказал:

можно, через  #resource

А если дам исходный код советника и индикатор поможете?

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано

Здравствуйте, возьметесь за написание советника.  Если коротко то: выставляем уровни (бай и селл) на определённом расстоянии от цены. При касании ценой уровни активируются, если цена идёт против нас, то через заданное расстояние открывается новый ордер изменяется тейк и т.д., Если возьметесь подробно опишу Т.З.

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
2 часа назад, mqloud сказал:

попробуйте

Условия выполнения сделок:

закрытие свечи выше синей BUY, ниже красной SELL.

Сопровождение открытых позиций - цена проходит расстояние равное от открытия ордера до S/L переводим в Б/У и далее тралим кратному расстоянию S/L (проходим 1:2 переводим 1:1, проходим 1:3 переводим 1:2 и т,д.) 

Советник:

High_Low_V00.mq4

Индикатор:

 

Trend Magic.ex4

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано (изменено)
16 минут назад, drobayura сказал:

Условия выполнения сделок

не совсем понял, я думал вам требуется скомпилировать советник, с втягиванием внутрь ex4, чтоб советник+индикатор был одним файлом, а не разными. Вот как вы написали

23 часа назад, drobayura сказал:

а можно вставить компелированный индикатор в советник?

 

если же вам нужно использовать индикатор в советнике, ну так это и так и работает, советник не использует mq4 коды. советник использует именно ex4 файл индикатора, когда вызывает iCustom

Изменено пользователем mqloud
Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
2 часа назад, mqloud сказал:

не совсем понял, я думал вам требуется скомпилировать советник, с втягиванием внутрь ex4, чтоб советник+индикатор был одним файлом, а не разными. Вот как вы написали

 

если же вам нужно использовать индикатор в советнике, ну так это и так и работает, советник не использует mq4 коды. советник использует именно ex4 файл индикатора, когда вызывает iCustom

"...когда вызывает iCustom" ну для этого же нужен исходник индикатора

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
2 часа назад, drobayura сказал:

для этого же нужен исходник индикатора

нет

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
В 16.12.2022 в 19:38, mqloud сказал:

нет

А можно реализовать в код трал кратный величине S/L.

Попытался реализовать идею на картинке, не знаю на сколько это будет понятно.

 

TZZ.jpg

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано

в самом простом варианте (пример для Бай)

if (OrderClosePrice()-OrderStopLoss()>2*SL*_Point) OrderModify(...);

 

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано (изменено)
2 часа назад, mqloud сказал:

в самом простом варианте (пример для Бай)

if (OrderClosePrice()-OrderStopLoss()>2*SL*_Point) OrderModify(...);

 

Это прошли два SL, а если пройдём три как будет. " ... )>2*SL*_Point" где двойка какая то переменная наверно должна стоять да? Я здесь не смогу прописать и здесь OrderModify(...) тоже не знаю что писать.

Прошу Вас сделайте пожалуйста на BUY, а SELL по аналогии я попробую сделать сам.

Изменено пользователем drobayura
Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
for (int i=OrdersTotal()-1; i>=0; --i)
{
  if (!OrderSelect(i, SELECT_BY_POS)) continue; // ошибка взяти
  if (OrderSymbol()!=Symbol()) continue; // чужой символ
  //if (OrderMagicNumber()!=Magic) continue; // чужой магик
  if (OrderType()==OP_BUY)
  {
    if (OrderClosePrice()-OrderStopLoss()>2*SL*_Point)
    {
      double sl=NormalizeDouble(OrderStopLoss()+SL*_Point, _Digits); // новый СЛ передвинули на шаг SL
      if (!OrderModify(OrderTicekt(), OrderOpenPrice(), sl, OrderTakeProfit(), 0)) Print(GetLastError()); // подвинули
    }
  }
}

 

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
1 час назад, mqloud сказал:
for (int i=OrdersTotal()-1; i>=0; --i)
{
  if (!OrderSelect(i, SELECT_BY_POS)) continue; // ошибка взяти
  if (OrderSymbol()!=Symbol()) continue; // чужой символ
  //if (OrderMagicNumber()!=Magic) continue; // чужой магик
  if (OrderType()==OP_BUY)
  {
    if (OrderClosePrice()-OrderStopLoss()>2*SL*_Point)
    {
      double sl=NormalizeDouble(OrderStopLoss()+SL*_Point, _Digits); // новый СЛ передвинули на шаг SL
      if (!OrderModify(OrderTicekt(), OrderOpenPrice(), sl, OrderTakeProfit(), 0)) Print(GetLastError()); // подвинули
    }
  }
}

 

Попробую вставить, что получится.

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
1 час назад, drobayura сказал:

Попробую вставить, что получится.

 

2 часа назад, mqloud сказал:
for (int i=OrdersTotal()-1; i>=0; --i)
{
  if (!OrderSelect(i, SELECT_BY_POS)) continue; // ошибка взяти
  if (OrderSymbol()!=Symbol()) continue; // чужой символ
  //if (OrderMagicNumber()!=Magic) continue; // чужой магик
  if (OrderType()==OP_BUY)
  {
    if (OrderClosePrice()-OrderStopLoss()>2*SL*_Point)
    {
      double sl=NormalizeDouble(OrderStopLoss()+SL*_Point, _Digits); // новый СЛ передвинули на шаг SL
      if (!OrderModify(OrderTicekt(), OrderOpenPrice(), sl, OrderTakeProfit(), 0)) Print(GetLastError()); // подвинули
    }
  }
}

 

Получилось вот что:

void _TrailingStop(){
   int i;
   bool m;
    
   if (OrdersTotal()>0){
      for (i=OrdersTotal()-1; i>=0; i--){
         if (OrderSelect(i, SELECT_BY_POS)){
            if (OrderSymbol()==Symbol() /*&& OrderMagicNumber()==-1*/){
             
               if (OrderType()==OP_BUY) 
               {
                 if (OrderClosePrice() - OrderStopLoss() < 2*SL*_Point)
    {
                  while (IsTradeContextBusy()) Sleep(1000);
                  RefreshRates();
                 double sl=NormalizeDouble(OrderStopLoss()+SL*_Point, _Digits); // новый СЛ передвинули на шаг SL
                 m = OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
    }
 }        
               if (OrderType()==OP_SELL) 
               {
                 if (OrderStopLoss() - OrderClosePrice() > 2*SL*_Point)
    {
                  while (IsTradeContextBusy()) Sleep(1000);
                  RefreshRates();
                 double sl=NormalizeDouble(OrderStopLoss()-SL*_Point, _Digits); // новый СЛ передвинули на шаг SL
                 m = OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
               }
            }
         }
      }
   }
 }
return;
}
Не работает как надо. 

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано

Здравствуйте. Вопрос по реализации клика мышкой в mql4

Нужно по сигналу (сигнал есть в советнике) , кликнуть мышкой в определенном месте. 

Необходимо для торговли опционами

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано (изменено)

Хотя бы пример, а дальше я сам. Если вкратце есть фунция которая дает сигнал:

 

 GetSign();  

//

код

//

Функция может быть меньше или больше ноля. Мне бы хотя бы в одном случае (например

int sign = GetSign();  
      if( sign > 0 )

 далее код как кликнуть мышью во вкладке браузера. Можно рандомные координаты. Я потом попытаюсь разобраться как ввести нужные). 

Вообще, кликать нужно будет на странице сайта компании торгующей бинарными опционами, 

    Чтобы упростить код - например, я включаю советник, открываю нужную страницу и мышь просто кликает в определенном месте. Не нужно чтобы она еще и сама туда двигалась.

 

Просто я почему то даже пример не могу найти, да есть функция в mql4, но я плохо знаю код. Если бы простейший пример я бы понял бы. У п\Павла есть урок написания скрипта, который запускает вкладку хрома и перезагружает компьютер, а как раз клика по мыши нет.

Изменено пользователем pasem
Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
14 часов назад, mqloud сказал:

нужна полная задача, что когда и где кликать

ответил выше

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
9 часов назад, pasem сказал:

Можно рандомные координаты

тогда или SendInput https://stackoverflow.com/questions/28386029/how-to-simulate-mouse-click-using-c

или PostMessage https://stackoverflow.com/questions/6688369/simulate-mouse-events-from-c-in-windows

Ссылка на сообщение
Поделиться на другие сайты

Напишу советник для МТ4/MT5 по вашему техзаданию Опубликовано
34 минуты назад, mqloud сказал:

я извиняюсь там написано с++, а мне нужно чтобы это было в советнике на mql4

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...