Советники: Triangular Arbitration - страница 3

 

Спасибо большое. Буду тестировать. Отпишусь поздней.

 

Напишу как есть. Советник заслуживает внимание.

Я запустил все 30  вариантов предложенных, и на удивление некоторые позиции сработали с + 1 (Вместо +10).

Не на всех брокерах работает и это правда.

Я заточен на ФорексФорЮ, он у меня на нем заработал. В начале не хотел работать.

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

Буду дальше тестировать и буду больше инфы иметь.

 
Andrew1978 #:

Напишу как есть. Советник заслуживает внимание.

Я запустил все 30  вариантов предложенных, и на удивление некоторые позиции сработали с + 1 (Вместо +10).



Размещу тут ссылку на свой пост, дабы развеять иллюзии.

https://www.mql5.com/ru/forum/366487/page44#comment_21819394

От теории к практике. Часть 2
От теории к практике. Часть 2
  • 2021.04.12
  • www.mql5.com
Да. Все-таки, ветке быть. Приглашаю в нее всех физиков, математиков, да и, вообще, заинтересованных лиц...
 
Andrew1978 #:

Напишу как есть. Советник заслуживает внимание.

Я запустил все 30  вариантов предложенных, и на удивление некоторые позиции сработали с + 1 (Вместо +10).

Не на всех брокерах работает и это правда.

Я заточен на ФорексФорЮ, он у меня на нем заработал. В начале не хотел работать.

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

Буду дальше тестировать и буду больше инфы иметь.

подключайтесь к группе телеграм, там больше народа которому вы можете помочь!
https://t.me/+9PmSKDXuE9wzNTMy

triangular arbitration
triangular arbitration
  • t.me
Чат по советнику triangular arbitration По поводу покупки советника пишите мне в личку @mqlcmillion WhatsApp +79283690333 или на почту ea@cmillion.ru
 
Vladimir Khlystov #:

Вот вариант советника на МТ5 и его работа в тестере. Действительно далеко в профит вся тройка не уходит, но и в минус за счет той же силы не идет!


саунд трек классный
 

В коде ошибки - попытки Бай-ордера открывать по цене Бид. Блок кода:

if (!open1)
   {
      if (OrderSend(SYMBOL1,TYPE1,LOT1,NormalizeDouble(MarketInfo(SYMBOL1,TYPE1==OP_BUY?MODE_BID:MODE_ASK),
      (int)MarketInfo(SYMBOL1,MODE_DIGITS)),1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1) 
         Print("Error open ",LOT1," ", SYMBOL1);
   }
   if (!open2)
   {
      if (OrderSend(SYMBOL2,TYPE2,LOT2,NormalizeDouble(MarketInfo(SYMBOL2,TYPE2==OP_BUY?MODE_BID:MODE_ASK),
      (int)MarketInfo(SYMBOL2,MODE_DIGITS)),1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1) 
         Print("Error open ",LOT2," ", SYMBOL2);
   }
   if (!open3)
   {
      if (OrderSend(SYMBOL3,TYPE3,LOT3,NormalizeDouble(MarketInfo(SYMBOL3,TYPE3==OP_BUY?MODE_BID:MODE_ASK),
      (int)MarketInfo(SYMBOL3,MODE_DIGITS)),1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1) 
         Print("Error open ",LOT3," ", SYMBOL3);
   }

Нужно заменить на 

if (!open1)
   {
      if (OrderSend(SYMBOL1,TYPE1,LOT1,NormalizeDouble(MarketInfo(SYMBOL1,TYPE1==OP_BUY ? MODE_ASK : MODE_BID),
      (int)MarketInfo(SYMBOL1,MODE_DIGITS)),1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1)
         Print("Ошибка № ",GetLastError()," при открытии ордера по паре ",SYMBOL1," с лотом = ",LOT1);
   }
   if (!open2)
   {
      if (OrderSend(SYMBOL2,TYPE2,LOT2,NormalizeDouble(MarketInfo(SYMBOL2,TYPE2==OP_BUY ? MODE_ASK : MODE_BID),
      (int)MarketInfo(SYMBOL2,MODE_DIGITS)),1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1)
         
	Print("Ошибка № ",GetLastError()," при открытии ордера по паре ",SYMBOL2," с лотом = ",LOT2); 
   }
   if (!open3)
   {
      if (OrderSend(SYMBOL3,TYPE3,LOT3,NormalizeDouble(MarketInfo(SYMBOL3,TYPE3==OP_BUY ? MODE_ASK : MODE_BID),
      (int)MarketInfo(SYMBOL3,MODE_DIGITS)),1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1)
         
	Print("Ошибка № ",GetLastError()," при открытии ордера по паре ",SYMBOL3," с лотом = ",LOT3); 
   }

Разработчик, поясните пожалуйста, почему Вы событие OnTimer() решили запускать на каждом тике? Какой в этом смысл?

 
Vitaly Murlenko #:

В коде ошибки - попытки Бай-ордера открывать по цене Бид. Блок кода:

Нужно заменить на 

Разработчик, поясните пожалуйста, почему Вы событие OnTimer() решили запускать на каждом тике? Какой в этом смысл?

Так вы сами ответили на этот вопрос

 

Код

if (IsTesting())
   {
      if (OrdersTotal()==0) if (OrderSend(Symbol(),OP_BUY,SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN),Ask,1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1) 
         Print("Error open ",LOT1," ", SYMBOL1);
      return;
   }

Нужно заменить на:

 if (IsTesting())
   {
      if (OrdersTotal()==0) if (OrderSend(Symbol(),OP_BUY,SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN),Ask,1000,0,0,"Hedge 3",Magic,0,clrNONE)==-1) 
         Print("Error open ",SYMBOL_VOLUME_MIN," ", Symbol());
      return;
   }
 
Vladimir Khlystov #:
Для выбора инструментов треугольника используйте скрипт https://www.mql5.com/ru/code/36666

Ну найдены пары, а куда открываться-то, в какую сторону?

P.S.

Увидел, что ранее была описана конструкция Buy-Buy-Sell - замкнутый круг. Опять же почему именно так, а не Sell-Sell-Buy? Где математика?