Скачать MetaTrader 5

Помогите новичку

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
samfisher01
46
samfisher01  

Всем добрый день!

знакомлюсь с системой, нужна помощь в написании кода для простейшей сделки, в качестве примера чтобы понять как тут всё работает)

 

тз следующее

необходимо купить 0.01 лота XAGUSD если его цена по сравнению с ценой открытия дня (D1 Open) упадёт на 2 пункта(то есть была 16.00, стала 14.00)

 (отложенный ордер поставленный вручную не подходит, потому что в дальнейшем предполагается написание кода для ордеров с более динамичными таймфреймами, это просто как пример)

 другими словами необходим код для постановки простейшего отложенного ордера

 

 

объясните плиз как можно подробнее))) также приветствуется если просто скинете нужный хелп или аналогичный пример

 

заранее спасибо! 

Mikhail Filimonov
5931
Mikhail Filimonov  
samfisher01:

Всем добрый день!

знакомлюсь с системой, нужна помощь в написании кода для простейшей сделки, в качестве примера чтобы понять как тут всё работает)

 

тз следующее

необходимо купить 0.01 лота XAGUSD если его цена по сравнению с ценой открытия дня (D1 Open) упадёт на 2 пункта(то есть была 16.00, стала 14.00)

 (отложенный ордер поставленный вручную не подходит, потому что в дальнейшем предполагается написание кода для ордеров с более динамичными таймфреймами, это просто как пример)

 другими словами необходим код для постановки простейшего отложенного ордера

 

 

объясните плиз как можно подробнее))) также приветствуется если просто скинете нужный хелп или аналогичный пример

 

заранее спасибо! 

Для этого есть раздел "Фриланс"
Andrei Fandeev
19825
Andrei Fandeev  
А также в качестве учебника - любой чужой код советника. С обязательным обращением к Документации по MQL. Смотреть, разбирать и думать думать думать
samfisher01
46
samfisher01  

спасибо, разобрался с тем что мне нужен отложенный ордер по типу такого

 

 

int ticket;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(ticket=OrderGetTicket(i)>0)
        {
         if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY_LIMIT)
            if(OrderGetDouble(ORDER_PRICE_OPEN)<Ask-Delta)
              {
               //--- готовим запрос
               MqlTradeRequest request;
               request.symbol=_Symbol;                      // инструмент
               request.action=TRADE_ACTION_MODIFY;         // установка отложенного ордера
               request.price =(int)(Ask-Delta);                     // цена для открытия
               request.type=ORDER_TYPE_BUY_LIMIT;
               request.type_time=ORDER_TIME_DAY;
               //--- отправим торговый приказ
               MqlTradeResult result={0};
               OrderSend(request,result);
               //--- выведем в лог ответ сервера   

               

только куда это писать в советник, индикатор или expert?

samfisher01
46
samfisher01  
Andrei Fandeev:
А также в качестве учебника - любой чужой код советника. С обязательным обращением к Документации по MQL. Смотреть, разбирать и думать думать думать
хотелось бы найти рабочий код советника, только то что находил на форуме люди просят исправить))) если скинете что-нибудь готовое, желательно про отложенные ордера, то буду благодарен, главное чтобы небольшое по объёму и РАБОЧЕЕ)
xsvp
8
xsvp  

всем привет!

помогите с роботом, не работает, раньше работал без проблем сейчас после изменений в терминале перестал жалуется на OrderModify, работает от SARa просто двигает стоп лос по сару вот код  

#property copyright "xsvp"

#property link      ""

#property show_inputs

extern double Profit  = 0.00;

extern double Step  = 0.02; 

extern double StepMax  = 0.2;

extern int KolichstvoZnakovPosliZapyatoi = 4;//количетво знаков после запятой 


int start()

  {

for(int i=OrdersTotal() - 1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

  if (OrderSymbol() ==  Symbol())

  {

    double SAR = NormalizeDouble(iSAR(NULL, 0, Step, StepMax, 0), KolichstvoZnakovPosliZapyatoi);

    if(OrderStopLoss()!= SAR && SAR > Open[0])

      OrderModify(OrderTicket(), OrderOpenPrice(), SAR, Profit, 0, Red);

      

    if(OrderStopLoss()!= SAR && SAR < Open[0])

      OrderModify(OrderTicket(), OrderOpenPrice(), SAR, Profit, 0, Blue);

  }

}

}

   return(0);

 подскажите что не так?

Vitalie Postolache
12318
Vitalie Postolache  
xsvp:

всем привет!

помогите с роботом, не работает, раньше работал без проблем сейчас после изменений в терминале перестал жалуется на OrderModify, работает от SARa просто двигает стоп лос по сару вот код  


 подскажите что не так?

Это скрипт, а не робот. Скобка фигурная в конце пропущена, скорее всего в процессе копипасты, но надо всё равно внимательнее быть.

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

Функцию OrderModify() надо писать со всеми параметрами, те, что не меняете, пишете старыми значениями, например тейкпрофит - OrderTakeProfit().

И чтобы уж вовсе по фен-шую, надо бы проверку исполнения ввести, минимум с выводом номера ошибки, компилятор на это и намекает обычно:

if(!OrderModify(OrderTicket(),OrderOpenPrice(),SAR,OrderTakeProfit(),0,Blue))
Print("Упс, ошибочка вышла, номер ", GetLastError());
MIR_KAZAN
35
MIR_KAZAN  

Подскажите как перенести индикатор в советник ? А именно вот это:

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_width1 1
#property indicator_color2 Lime
#property indicator_width2 1
#property indicator_color3 Red
#property indicator_width3 1
#property indicator_color4 Lime
#property indicator_width4 1

Vladimir Karputov
Модератор
52971
Vladimir Karputov  
MIR_KAZAN:

Подскажите как перенести индикатор в советник ? А именно вот это:

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_width1 1
#property indicator_color2 Lime
#property indicator_width2 1
#property indicator_color3 Red
#property indicator_width3 1
#property indicator_color4 Lime
#property indicator_width4 1

Нужно просто вызывать индикатор из советника через iCustom.
MIR_KAZAN
35
MIR_KAZAN  
Karputov Vladimir:
Нужно просто вызывать индикатор из советника через iCustom.
Можно подробнее? С какими параметрами и что получу в итоге в коде советника ?
Vladimir Karputov
Модератор
52971
Vladimir Karputov  
MIR_KAZAN:
Можно подробнее? С какими параметрами и что получу в итоге в коде советника ?
iCustom - как получить хендл пользовательского индикатора. В справке и пример есть для индикатора "Custom Moving Average" из стандартной поставки.
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий