MQL4 для начинающих - Страница 3
Страница 3 из 17 ПерваяПервая 1 2 3 4 5 6 7 13 ... ПоследняяПоследняя
Показано с 21 по 30 из 164

Тема: MQL4 для начинающих

  1. #21
    Местный
    Регистрация
    11.06.2013
    Сообщений
    143
    Благодарности
    Получено: 2
    Отправлено: 1
    Кстати более менее все понятно, вот только не понял что значит return(0) и Open[1] и зачем выставляется точка с запятой? Да и еще OrderSend(Symbol(),OP_BUY,0.01,Ask,30,EMA55-50*Point,Bid+100*Point) я так понял что OrderSend это параметр на открытия ордера, а что такое Symbol и значения дальше?

    Вы не можете благодарить!

  2. #22
    Местный
    Регистрация
    08.06.2013
    Адрес
    Украина, Полтава
    Сообщений
    263
    Благодарности
    Получено: 8
    Отправлено: 2
    Open[1] - это значение цены открытия бара. [] - в вот этих скобочках пишется, сколько баров назад был нужный тебе бар. К примеру 2 - это позапрошлый бар.
    А вот return - это сложно объяснить. Определение звучит так: возвращает значение функции. По-сути есть некоторые типы функций, которые свои подсчеты хранят не в переменных, а в себе. Чтобы получить это значение и используется return.

    Вы не можете благодарить!

  3. #23
    Местный
    Регистрация
    11.06.2013
    Сообщений
    143
    Благодарности
    Получено: 2
    Отправлено: 1
    Да, хорошо. Это ясно. А этот момент? OrderSend(Symbol(),OP_BUY,0.01,Ask,30,EMA55-50*Point,Bid+100*Point) Ты забыл объяснит за него. Я тебя еще не достал своими вопросами там случайно?

    Вы не можете благодарить!

  4. #24
    Местный
    Регистрация
    08.06.2013
    Адрес
    Украина, Полтава
    Сообщений
    263
    Благодарности
    Получено: 8
    Отправлено: 2
    Да просто не успеваю все написать
    Для вопросов эта тема и была открыта, как бы.

    Да, OrderSend - функция, которая открывает ордер.
    Symbol - текущая валютная пара.
    OP_BUY - тип открываемого ордера(бай, селл или же отложенные)
    0.01 - лот
    Ask - цена открытия(менять для отложенных)
    3 - если цена с момента срабатывания команды измениться на 3 пункта - не откроет.
    EMA3-50*Point - стоп-лосс. 50*Point - это получается 50 пунктов, приходится писать так из-за несостыковки типов данных.
    Bid+100*Point - тейк-профит. То же самое.

    Вы не можете благодарить!

  5. #25
    Местный
    Регистрация
    11.06.2013
    Сообщений
    143
    Благодарности
    Получено: 2
    Отправлено: 1
    Отлично, пока еще силы есть не светает Вопрос OP_BUY... можно ли выставить подобным образом отложенный ордер и прописать перевод в безубыток? И еще, можно ли выставить тейк-профит и стоп лосс не по конкретному значению, а по количеству пунктов от цены покупки или продажи..?

    Вы не можете благодарить!

  6. #26
    Местный
    Регистрация
    08.06.2013
    Адрес
    Украина, Полтава
    Сообщений
    263
    Благодарности
    Получено: 8
    Отправлено: 2
    Можно. Снова же используется функция OrderSend, только меняется OP_BUY на OP_BUYLIMIT или OP_BUYSTOP и в графе "цена" указывается пометка, при достижении которой сработает этот отложенный ордер.

    Да, можно. просто пишешь вместо моего бреда Ask+n*Point, где n - количество пунктов, которое ты хочешь взять в профит. Ну и стоп-лосс соответственно.

    Продолжим завтра, сейчас уже спать. Спасибо за внимание

    Вы не можете благодарить!

  7. #27
    Местный
    Регистрация
    08.06.2013
    Сообщений
    206
    Благодарности
    Получено: 3
    Отправлено: 2
    ох, я вижу движение пошло. да, согласен с тем что писали в начале, нужно сначала что то по проще. в принципе по на писаному уже все разобрали. давайте напишем закрытие и примитивный советник будет готов.

    Вы не можете благодарить!

  8. #28
    Местный
    Регистрация
    08.06.2013
    Адрес
    Украина, Полтава
    Сообщений
    263
    Благодарности
    Получено: 8
    Отправлено: 2
    koblja, ну еще останется написать условия на продажу, так как сейчас у нас только покупка есть.

    PHP код:
    int start()   
      {  
       
    double EMA3=iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,1);  
       
    double EMA5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);   
        
       if (
    Hour()>=&& Hour()<=17)    
          {    
          if (
    EMA3>EMA5 && Open[1]>EMA3
               { 
               
    OrderSend(Symbol(),OP_BUY,0.01,Ask,3,EMA5-50*Point,Ask+100*Point); 
               }
          if (
    EMA5>EMA3 && Open[1]<EMA3)
               {
               
    OrderSend(Symbol(),OP_SELL,0.01,Ask,3,EMA5+50*Point,Bid-100*Point); 
               }
          }   
       return(
    0);   
      } 
    Здесь было добавлено условие открытия сделок в продажу. Условие обратное от условия входа в покупку.
    Есть вопросы?

    Вы не можете благодарить!
    Последний раз редактировалось Silver; 16.06.2013 в 18:37.

  9. #29
    Местный
    Регистрация
    08.06.2013
    Сообщений
    206
    Благодарности
    Получено: 3
    Отправлено: 2
    Да вот теперь есть условия открытия 2 ордера, но все же нужно еще разобрать закрытия сделок. предлагаю дабы не сильно усложнять ситуацию . сделать так. если открыт сел и поступает сигнал на бай то закрываем сел и открываем бай

    Вы не можете благодарить!

  10. #30
    Местный
    Регистрация
    08.06.2013
    Адрес
    Украина, Полтава
    Сообщений
    263
    Благодарности
    Получено: 8
    Отправлено: 2
    koblja, Хорошо, так и напишем:

    PHP код:
    int start()   
      {  
       
    double EMA3=iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,1);  
       
    double EMA5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);   
        
       if (
    Hour()>=&& Hour()<=17)    
          {    
          if (
    EMA3>EMA5 && Open[1]>EMA3
               { 
               
    OrderSend(Symbol(),OP_BUY,0.01,Ask,3,EMA5-50*Point,Ask+100*Point);
               if (
    OrdersTotal()!=0
                     {
                     
    OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
                     if (
    OrderType()==1OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); 
                     }
               }
          if (
    EMA5>EMA3 && Open[1]<EMA3)
               {
               
    OrderSend(Symbol(),OP_SELL,0.01,Ask,3,EMA5+50*Point,Bid-100*Point); 
               if (
    OrdersTotal()!=0
                     {
                     
    OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
                     if (
    OrderType()==1OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); 
                     }
               }
          }   
       return(
    0);   
      } 
    Проверь, правильно ведь написано?

    Вы не можете благодарить!

Страница 3 из 17 ПерваяПервая 1 2 3 4 5 6 7 13 ... ПоследняяПоследняя

Похожие темы

  1. Литература для начинающих
    от August в разделе Библиотека трейдера
    Ответов: 135
    Последнее сообщение: 23.06.2019, 18:02
  2. Советы для начинающих
    от Larson в разделе Разговоры о трейдинге
    Ответов: 888
    Последнее сообщение: 28.04.2016, 06:51
  3. Вопросы начинающих трейдеров
    от ilezar в разделе Архив. Разговоры
    Ответов: 697
    Последнее сообщение: 21.09.2015, 20:41
  4. Индикаторы. Для начинающих
    от Jrg в разделе Разговоры о трейдинге
    Ответов: 185
    Последнее сообщение: 11.06.2014, 03:49
  5. Forex: информация для начинающих
    от RoboForex Trader в разделе Справочные материалы
    Ответов: 49
    Последнее сообщение: 17.09.2012, 19:55

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •