Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1841

 
Доброго дня, хочу попробовать свои силы и написать "простого" эксперта для набора позиции. Идея работы достаточно простая: по сути ETF-фы, не сильно растут, но и не сильно падают, при этом колебания цены проходят через узкие диапазоны два-три раза в год. Изначально имеем позицию в ETF, хотим получить целевую прибыль от купленной позиции в 12,5%. Суть работы эксперта сводиться к тому чтобы незначительную часть позиции сразу выставить в заявку на продажу, к примеру одну пятидесятую часть на полпроцента-процент больше, следующую часть ещё на полпроцента-процент % и т.д. Разбивая всю позицию на 25% роста цены (таким образом достигнем целевого показателя в 12,5% для позиции в целом). После каждой продажи, сразу заявку на покупку на процент меньше. Со временем после того как вся позиция пройдёт несколько кругов её средняя цена покупки (фактическая) будет меньше, а целевой показатель будет достигнут раньше. Естественно если цена всего актива упадет ниже цены покупки, то позицию набирать по тому же принципу, но в обратном порядке, сначала купить, потом продать. Так как колебания проходят не в течении дня, в течении месяца или двух заявки нужно переносить на следующей торговый день.  
Вопрос к знающим людям как лучше реализовать? Может есть где можно списать часть кода?
 
Кирилл Якимов #:
Доброго дня, хочу попробовать свои силы и написать "простого" эксперта для набора позиции. Идея работы достаточно простая: по сути ETF-фы, не сильно растут, но и не сильно падают, при этом колебания цены проходят через узкие диапазоны два-три раза в год. Изначально имеем позицию в ETF, хотим получить целевую прибыль от купленной позиции в 12,5%. Суть работы эксперта сводиться к тому чтобы незначительную часть позиции сразу выставить в заявку на продажу, к примеру одну пятидесятую часть на полпроцента-процент больше, следующую часть ещё на полпроцента-процент % и т.д. Разбивая всю позицию на 25% роста цены (таким образом достигнем целевого показателя в 12,5% для позиции в целом). После каждой продажи, сразу заявку на покупку на процент меньше. Со временем после того как вся позиция пройдёт несколько кругов её средняя цена покупки (фактическая) будет меньше, а целевой показатель будет достигнут раньше. Естественно если цена всего актива упадет ниже цены покупки, то позицию набирать по тому же принципу, но в обратном порядке, сначала купить, потом продать. Так как колебания проходят не в течении дня, в течении месяца или двух заявки нужно переносить на следующей торговый день.  
Вопрос к знающим людям как лучше реализовать? Может есть где можно списать часть кода?

Много не нужной "воды"...

Сначала напиши "простого эксперта", который просто выставляет ордер, а потом обращайся за помощью в доработке.

А так твой текст выглядит как "напишите мне"!

 
Tretyakov Rostyslav #:

А почему не использовать iLowest?

В данном случае можно и это.

 

Кирилл Якимов #:
Доброго дня, хочу попробовать свои силы и написать "простого" эксперта ...

...

Вопрос к знающим людям как лучше реализовать? Может есть где можно списать часть кода?

Простой эксперт: https://www.mql5.com/ru/code/103

Еще результаты

Simple MA Expert Advisor
Simple MA Expert Advisor
  • www.mql5.com
Простой эксперт для тех, кто хочет попробовать новый тестер стратегий.
 
Tretyakov Rostyslav #:

Много не нужной "воды"...

Сначала напиши "простого эксперта", который просто выставляет ордер, а потом обращайся за помощью в доработке.

А так твой текст выглядит как "напишите мне"!

Просто выставлять ордер, выставлять ордера по определенной схеме отнюдь не доработка. Я не знаю как вести учёт выставленных и закрытых заявок. Цена изменяется, не обязательно, что с открытием нового дня цена не перепрыгнет несколько ордеров. И ещё куча ньюансов. Просто таблица сделок не даёт возможности сопоставить колличество проданных и купленных бумаг по одной цене.
 

Доброго времени суток 

Вот простой код который который устанавливает вертикальную линия отображающую для визуализации  начало торговли

ObjectCreate(0,"Начало торговли",OBJ_VLINE, 0, Time[0] + (StartTime*3600), 0);
ObjectSetInteger(0,"Начало торговли",OBJPROP_COLOR, clrBlue);
extern int                  StartTime                      = 2;         // Начало торговли

Не могу понять  почему вертикальная линия выставляется по принципу - (StartTime - величина одного бара) 


 
Кирилл Якимов #:
Я не знаю как вести учёт выставленных и закрытых заявок.

Ну это долго объяснять https://www.mql5.com/ru/docs/trading

Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
EVGENII SHELIPOV #:

Доброго времени суток 

Вот простой код который который устанавливает вертикальную линия отображающую для визуализации  начало торговли

Не могу понять  почему вертикальная линия выставляется по принципу - (StartTime - величина одного бара) 


Попробуйте сделать так и покажите на скриншоте что получилось
extern int nBars = 10;

...
ObjectCreate(0,"Начало торговли",OBJ_VLINE, 0, Time[0] + PeriodSeconds(PERIOD_CURRENT) * nBars, 0);
 
Кирилл Якимов #:
Просто выставлять ордер, выставлять ордера по определенной схеме отнюдь не доработка. Я не знаю как вести учёт выставленных и закрытых заявок. Цена изменяется, не обязательно, что с открытием нового дня цена не перепрыгнет несколько ордеров. И ещё куча ньюансов. Просто таблица сделок не даёт возможности сопоставить колличество проданных и купленных бумаг по одной цене.

Чтобы выставлять ордра по определенной схеме, в принципе надо уметь выставлять. А потом формируешь условие для выставления ордеров.

Надо поэтапно решать задачу и с ней кучу ньюансов.

 
Mihail Matkovskij #:

Ну это долго объяснять https://www.mql5.com/ru/docs/trading

 Хотите научиться писать роботов, начините с простого:

Mihail Matkovskij #:

Простой эксперт: https://www.mql5.com/ru/code/103

Еще результаты

Причина обращения: