Советник с усреднением позиций на стандартных модулях MQL

 

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

Подскажите, каким образом можно написать советник с усреднением позиций (докупкой лотов без закрытия позиций) или частичным закрытием позиций средствами стандартных модулей MQL?

Пробовал использовать предопределенные в стандартных классах методы, но все время как-то через (_|_) получается. Может быть кто-нибудь интересовался ранее этой задачей?

 
SergeyVS:

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

Подскажите, каким образом можно написать советник с усреднением позиций (докупкой лотов без закрытия позиций) или частичным закрытием позиций средствами стандартных модулей MQL?

Пробовал использовать предопределенные в стандартных классах методы, но все время как-то через (_|_) получается. Может быть кто-нибудь интересовался ранее этой задачей?

  1. Сначала определиться при каких условиях (при каких сигналах от модулей сигнала) должна происходить модификация позиции.
  2. Подключить в советник (при его создании) модуль сигналов.
  3. Редактировать полученный советник
 
barabashkakvn:
  1. Сначала определиться при каких условиях (при каких сигналах от модулей сигнала) должна происходить модификация позиции.
  2. Подключить в советник (при его создании) модуль сигналов.
  3. Редактировать полученный советник

С п.1 определился. С п.2 - в советнике используется свой модуль сигналов. Насчет п.3... что именно нужно редактировать в советнике (я так понимаю, подразумевается файл с кодом сгенерированного эксперта) для того, чтобы докупать или частично закрывать позицию.

Я сначала думал, может быть использовать предопределенный метод CheckReverse в классе CExpertMoney, но по логике он предназначен для разворота позиции, а не для частичного закрытия или усреднения. Да и не совсем понятно, как даже его использовать. Найти бы где-нибудь пример. Можно было бы, наверное, по аналогии сделать.

 
SergeyVS:

С п.1 определился. С п.2 - в советнике используется свой модуль сигналов. Насчет п.3... что именно нужно редактировать в советнике (я так понимаю, подразумевается файл с кодом сгенерированного эксперта) для того, чтобы докупать или частично закрывать позицию.

Я сначала думал, может быть использовать предопределенный метод CheckReverse в классе CExpertMoney, но по логике он предназначен для разворота позиции, а не для частичного закрытия или усреднения. Да и не совсем понятно, как даже его использовать. Найти бы где-нибудь пример. Можно было бы, наверное, по аналогии сделать.

Изменять блоки кода ответственные за сигналы "за продажу" и "за покупку"

int xxx::LongCondition(void)
int xxx::ShortCondition(void)
 
barabashkakvn:

Изменять блоки кода ответственные за сигналы "за продажу" и "за покупку"

Насколько я понимаю, эти блоки отсылают эксперту информацию о наличии/отсутствии сигнала. Вы предлагаете прямо в них писать код, который будет отвечать за торговлю?
 
SergeyVS:
Насколько я понимаю, эти блоки отсылают эксперту информацию о наличии/отсутствии сигнала. Вы предлагаете прямо в них писать код, который будет отвечать за торговлю?
Да. В обычной торговле когда идет сигнал на продажу, люди продают. А в Вашей системе, например, будет наоборот - это и будет усреднение - т.е. идти против тренда или терпеть убытки.
 

Вот присмотритесь к похожей идеи по усреднению....

Может поймете смысл и точки входа..... И это даст Вам

новые идеи для реализации Вашего эксперта.

 https://www.mql5.com/ru/forum/21953

Подскажите торговые роботы в открытом доступе с реализацией функций усреднения торговых позиций
Подскажите торговые роботы в открытом доступе с реализацией функций усреднения торговых позиций
  • www.mql5.com
Подскажите торговые роботы в открытом доступе с реализацией функций усреднения торговых позиций.