Требуется помощь знающих mql 4

 

Здравствуйте, посетители данного форума.

Сейчас я пытаюсь изучить mql и прошу одного из вас написать советника в целях ознакомления. Смысл вот в чём: нужно проверить цену одного лота ровно 1 день назад, сравнить с настоящей, и если вчерашняя цена выше, то купить, иначе продать. Закрывать лот при прибыли хотя бы в 1 единицу валюты.

Я думаю сделать это не сложно.

mql 4.

 
wheig:

Здравствуйте, посетители данного форума.

Сейчас я пытаюсь изучить mql и прошу одного из вас написать советника в целях ознакомления. Смысл вот в чём: нужно проверить цену одного лота ровно 1 день назад, сравнить с настоящей, и если вчерашняя цена выше, то купить, иначе продать. Закрывать лот при прибыли хотя бы в 1 единицу валюты.

Я думаю сделать это не сложно.

mql 4.

Есть уже какие-то наработки?
 
Ну я только начинающий:) Так что наработок пока нет. В принципе, я знаю основы, а на таком примере мог бы продвинуться дальше, проанализировав его.
 
wheig:
Ну я только начинающий:) Так что наработок пока нет. В принципе, я знаю основы, а на таком примере мог бы продвинуться дальше, проанализировав его.

Ну тогда нужно начать с алгоритма.

Есть у Вас готовый алгоритм?

Если есть пропишите по пунктам.

Вам самому будет проще

 

хм, ну можно так:

1. Узнать цену, которая была день назад. (Запишем её как YP)

2. Узнать цену, которая актуальна в данный момент. (TP)

3. Сравнить их между собой.

4. Если YP>TP, тогда создаём новый ордер BUY, иначе создаём новый ордер SELL.

5. Если прибыль>1, тогда закрываем этот ордер.

6. Конец.

В принципе мне требуется только узнать, как найти вчерашнюю цену, как узнать сегодняшнюю и как закрыть ордер при прибыли больше 1. Остальное я могу всё сделать сам.

 
wheig:

хм, ну можно так:


В принципе мне требуется только узнать, как найти вчерашнюю цену, как узнать сегодняшнюю и как закрыть ордер при прибыли больше 1. Остальное я могу всё сделать сам.

цену чего?

Цену инструмента?

Или Профит ордера который открыт вчера?

 
sanyooooook:

цену чего?

Цену инструмента?

Или Профит ордера который открыт вчера?



Я неправильно выразился. Под ценой я подразумевал котировки. Короче, пункты.
 
iOpen(NULL,PERIOD_D1,1);

значение цены открытия предыдущего дня

ЗЫ:

double Price_Ask=NormalizeDouble(Ask,Digits);//текущий аск
double Price_Bid=NormalizeDouble(Bid,Digits);//текущий бид
 
sanyooooook:

значение цены открытия предыдущего дня

ЗЫ:





спасибо) не могли бы вы написать, как можно закрыть ордер при прибыли больше 1?
 
wheig:


спасибо) не могли бы вы написать, как можно закрыть ордер при прибыли больше 1?
   double pr=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
      if(OrderSelect(i,SELECT_BY_POS))
      {
         pr=OrderProfit();
         if(pr>1)
         {
            if(OrderType()==0)
            {
               OrderClose(i,OrderLots(),NormalizeDouble(Bid,Digits),3);
            }
            if(OrderType()==1)
            {
               OrderClose(i,OrderLots(),NormalizeDouble(Ask,Digits),3);
            }
         }

      }
   }

около того

 
sanyooooook:

около того





Вы мне очень помогли. Спасибо :).
Причина обращения: