Kashtan
Игорь

 
Уровень 19

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Доработка советника

Просьба добавить мартин и реверс сделок mql.opentraders.ru/34573.html
Только не в версию из базы в которой был добавлен тралл по просьбе заказчика, а в первоначальный код из 75 строк.
Мартин должен быть задействован как обычно до первой прибыльной сделки, после чего советник возвращается к начальному лоту.
P.S. Если получиться, просьба добавить параметр после какого количества лосей начать задействовать мартин. То есть если стоит 3, удвоение начнётся не после первого же лося а только после третьего подряд. Спасибо
  • +1
  • Просмотров: 4489
  • 7 февраля 2017, 20:34
  • Kashtan
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Переделка совы
Следующая запись в группе  
Исправление советника.
05 февраля 2017
07 февраля 2017

Брокер для ваших роботов, 15 лет на рынке

Комментарии (10)

+
0
Посмотрю на этой неделе.
avatar

  35  AM2 Сообщений: 16254 - Андрей

  • 8 февраля 2017, 02:05
+
0
Это вариант без учета числа лосей:


//+------------------------------------------------------------------+
//|                                                   Perceptron.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict

//---- input parameters
extern double tp = 50;
extern double sl = 50;
extern int p=10;
extern int x1 = 100;
extern int x2 = 100;
extern int x3 = 100;
extern int x4 = 100;
extern int loss = 3;
extern double Lots   = 0.1;    // лот
extern double KLot   = 2;      // умножение лота
extern double MaxLot = 5;      // максимальный лот

datetime tm=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double s=0,t=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(sl>0) s=NormalizeDouble(price+sl*Point,Digits);
      if(tp>0) t=NormalizeDouble(price-tp*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(sl>0) s=NormalizeDouble(price-sl*Point,Digits);
      if(tp>0) t=NormalizeDouble(price+tp*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),33,s,t,"",0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double perceptron()
  {
   double w1 = x1 - 100;
   double w2 = x2 - 100;
   double w3 = x3 - 100;
   double w4 = x4 - 100;
   double a1 = Open[p] - Close[0];
   double a2 = Open[p] - Open[p*2];
   double a3 = Open[p*2] - Open[p * 3];
   double a4 = Open[p*3] - Open[p * 4];
   return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0) break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal()<1 && tm!=Time[0])
     {
      if(perceptron()<0) PutOrder(0,Ask);
      if(perceptron()>0) PutOrder(1,Bid);
      tm=Time[0];
     }
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16254 - Андрей

  • 8 февраля 2017, 20:34
+
0
avatar

  35  AM2 Сообщений: 16254 - Андрей

  • 8 февраля 2017, 20:57
+
0
Вариант с учётом лосей работает не корректно, ну да не важно) Просьба в код без учёта лосей добавить реверс, а то забыли скорее всего:) 
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 9 февраля 2017, 04:39
+
0
Или с таким советником реверс не совместим?*think* 
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 9 февраля 2017, 18:30
+
0
Или с таким советником реверс не совместим?


Любой каприз! :D 


//+------------------------------------------------------------------+
//|                                                   Perceptron.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link "http://www.forexsystems.biz"
#property version "1.00"
#property strict

//---- input parameters
extern double tp = 50;
extern double sl = 50;
extern int p=10;
extern int x1 = 100;
extern int x2 = 100;
extern int x3 = 100;
extern int x4 = 100;
extern int loss=3;
extern int Reverce = 0;        // 1-реверс
extern double Lots   = 0.1;    // лот
extern double KLot   = 2;      // умножение лота
extern double MaxLot = 5;      // максимальный лот

datetime tm=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double s=0,t=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(sl>0) s=NormalizeDouble(price+sl*Point,Digits);
      if(tp>0) t=NormalizeDouble(price-tp*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(sl>0) s=NormalizeDouble(price-sl*Point,Digits);
      if(tp>0) t=NormalizeDouble(price+tp*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),33,s,t,"",0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double perceptron()
  {
   double w1 = x1 - 100;
   double w2 = x2 - 100;
   double w3 = x3 - 100;
   double w4 = x4 - 100;
   double a1 = Open[p] - Close[0];
   double a2 = Open[p] - Open[p*2];
   double a3 = Open[p*2] - Open[p * 3];
   double a4 = Open[p*3] - Open[p * 4];
   return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0) break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal()<1 && tm!=Time[0])
     {
      if(Reverce==0)
        {
         if(perceptron()<0) PutOrder(0,Ask);
         if(perceptron()>0) PutOrder(1,Bid);
        }

      if(Reverce==1)
        {
         if(perceptron()>0) PutOrder(0,Ask);
         if(perceptron()<0) PutOrder(1,Bid);
        }
        
      tm=Time[0];
     }
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16254 - Андрей

  • 9 февраля 2017, 19:54
+
+1
Все каштану хватит мне пора *crazy* 
avatar

  7  Vitalik5675 Сообщений: 282

  • 9 февраля 2017, 20:15
+
0
Андрей*lalala* 
:D 
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 9 февраля 2017, 21:08
+
0
Ничего не понял наверно алкоголь помешал, давай тесты чот замутил с попыткой уменьшения убытков через мартин изначально дико, ну все же хочется: «не ради научного эксперента, а так позырить».
avatar

  13  Buff Сообщений: 401 - Артем

  • 11 февраля 2017, 21:22
+
0
Пока руки до тестов не дошли как ни странно)) До следующего заказа время много, успею потестить
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 12 февраля 2017, 19:10

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий