Здравствуйте, посетители данного форума.
Сейчас я пытаюсь изучить mql и прошу одного из вас написать советника в целях ознакомления. Смысл вот в чём: нужно проверить цену одного лота ровно 1 день назад, сравнить с настоящей, и если вчерашняя цена выше, то купить, иначе продать. Закрывать лот при прибыли хотя бы в 1 единицу валюты.
Я думаю сделать это не сложно.
mql 4.
Ну я только начинающий:) Так что наработок пока нет. В принципе, я знаю основы, а на таком примере мог бы продвинуться дальше, проанализировав его.
Ну тогда нужно начать с алгоритма.
Есть у Вас готовый алгоритм?
Если есть пропишите по пунктам.
Вам самому будет проще
хм, ну можно так:
1. Узнать цену, которая была день назад. (Запишем её как YP)
2. Узнать цену, которая актуальна в данный момент. (TP)
3. Сравнить их между собой.
4. Если YP>TP, тогда создаём новый ордер BUY, иначе создаём новый ордер SELL.
5. Если прибыль>1, тогда закрываем этот ордер.
6. Конец.
В принципе мне требуется только узнать, как найти вчерашнюю цену, как узнать сегодняшнюю и как закрыть ордер при прибыли больше 1. Остальное я могу всё сделать сам.
хм, ну можно так:
В принципе мне требуется только узнать, как найти вчерашнюю цену, как узнать сегодняшнюю и как закрыть ордер при прибыли больше 1. Остальное я могу всё сделать сам.
цену чего?
Цену инструмента?
Или Профит ордера который открыт вчера?
цену чего?
Цену инструмента?
Или Профит ордера который открыт вчера?
Я неправильно выразился. Под ценой я подразумевал котировки. Короче, пункты.
iOpen(NULL,PERIOD_D1,1);
значение цены открытия предыдущего дня
ЗЫ:
double Price_Ask=NormalizeDouble(Ask,Digits);//текущий аск double Price_Bid=NormalizeDouble(Bid,Digits);//текущий бид
значение цены открытия предыдущего дня
ЗЫ:
спасибо) не могли бы вы написать, как можно закрыть ордер при прибыли больше 1?
спасибо) не могли бы вы написать, как можно закрыть ордер при прибыли больше 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); } } } }
около того
около того
Вы мне очень помогли. Спасибо :).

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, посетители данного форума.
Сейчас я пытаюсь изучить mql и прошу одного из вас написать советника в целях ознакомления. Смысл вот в чём: нужно проверить цену одного лота ровно 1 день назад, сравнить с настоящей, и если вчерашняя цена выше, то купить, иначе продать. Закрывать лот при прибыли хотя бы в 1 единицу валюты.
Я думаю сделать это не сложно.
mql 4.