← К каталогу
Исходный код · ID 404

neuro-martingailexpertstochastic_v3.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Торговый советник для платформы MetaTrader 4, который формирует торговые сигналы на основе индикатора стохастик и пользовательского перцептрона. Советник работает на каждом тике, обрабатывая текущие рыночные данные и принимая решения об открытии или закрытии позиций.

Поддерживает мартингейл-подход управления лотами: при необходимости советник открывает дополнительные ордера с увеличенными лотами, используя множитель и настраиваемый шаг между позициями. Доступен режим фиксированного шага и режим с постепенным увеличением шага.

Встроены стоп-лосс и тейк-профит для управления рисками, а также ограничения на максимальный допустимый размер лота. Советник отслеживает прибыль по открытым позициям и при достижении заданных условий закрывает ордера. Позиции разделяются по магическим номерам для покупок и продаж.

Настройки программы

НастройкаОписание
StopLoss Уровень стоп-лосса в пунктах для управления рисками по открытым позициям.
TakeProfit Уровень тейк-профита в пунктах для фиксации прибыли по открытым позициям.
step Размер шага в пунктах между дополнительными ордерами при мартингейл-управлении.
StepMode Режим шага между дополнительными ордерами: фиксированный или постепенно увеличивающийся.
proffactor Фактор прибыли, определяющий условие закрытия прибыльных позиций.
mult Множитель лотов, используемый при открытии дополнительных ордеров.
lotsbuy Начальный размер лота для открытия позиций на покупку.
lotssell Начальный размер лота для открытия позиций на продажу.
MaxLotBuy Максимально допустимый размер лота для позиций на покупку.
MaxLotSell Максимально допустимый размер лота для позиций на продажу.
per_K Числовой параметр, влияющий на расчёт линии K стохастика.
per_D Числовой параметр, влияющий на расчёт линии D стохастика.
slow Параметр замедления индикатора стохастика.
zoneBUY Пороговое значение зоны покупки для индикатора стохастика.
zoneSELL Пороговое значение зоны продажи для индикатора стохастика.
Magicbuy Магический номер для идентификации ордеров на покупку, открытых советником.
Magicsell Магический номер для идентификации ордеров на продажу, открытых советником.
Parameters Строковый параметр, задающий набор настроек для торговой стратегии.
Parameters_Stochastic Строковый параметр, задающий набор настроек для индикатора стохастика.
OrderComment Текстовый комментарий, добавляемый к каждому ордеру, открытому советником.
Kperiod Период K индикатора стохастика, определяющий скорость расчёта линии.
Dperiod Период D индикатора стохастика, определяющий усреднение основной линии.
slowing Параметр замедления стохастика, задаваемый целочисленным значением.
Parameters_Perceptron Строковый параметр, задающий набор настроек для перцептрона.
shag Шаг смещения для считывания значений индикатора перцептроном.
x1 Первый весовой коэффициент перцептрона.
x2 Второй весовой коэффициент перцептрона.
x3 Третий весовой коэффициент перцептрона.
x4 Четвёртый весовой коэффициент перцептрона.
Получить полный код

Поиск по коду файла

extern double StopLoss                 =0;
extern double TakeProfit               =0;
extern double step                     =25;
extern int    StepMode                 =0;

extern double proffactor               =10;
extern double mult                     =1.5;
extern double lotsbuy                  =0.01;
extern double lotssell                 =0.01;  
extern double MaxLotBuy                =0.15;
extern double MaxLotSell               =0.15;
extern double per_K                    =200;
extern double per_D                    =20;
extern double slow                     =20;
extern double zoneBUY                  =50;
extern double zoneSELL                 =50;
extern double Magicbuy                 =555;
extern double Magicsell                =556;
extern string Parameters               = "StochasticPerceptron";
extern string Parameters_Stochastic    = "Stochastic";
extern string OrderComment             = "MartingailExpert_V3";
extern int    Kperiod                  = 5;
extern int    Dperiod                  = 3;	
extern int    slowing                  = 3;
extern string Parameters_Perceptron    = "Perceptron";
extern int    shag                     = 0;
extern int    x1                       = 0;
extern int    x2                       = 0;
extern int    x3                       = 0;
extern int    x4                       = 0;

double  sl = 0;
double  tp = 0;
double openpricebuy,openpricesell,lotsbuy2,lotssell2,lastlotbuy,lastlotsell,tpb,tps,cnt,smbuy,smsell,lotstep,
       ticketbuy,ticketsell,maxLot,free,balance,lotsell,lotbuy,dig,sig_buy,sig_sell,ask,bid;                           

int OrdersTotalMagicbuy(int Magicbuy)
{
    int j=0;
    int r;
    for (r=0;r<OrdersTotal();r++)
    {
        if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES))
        {
            if (OrderMagicNumber() == Magicbuy) j++;
        }
    }   
    return(j); 
}

int OrdersTotalMagicsell(int Magicsell)
{
   int d=0;
   int n;
   for (n=0;n<OrdersTotal();n++)
   {
     if(OrderSelect(n,SELECT_BY_POS,MODE_TRADES))
     {
        if (OrderMagicNumber()==Magicsell) d++;
     }
   }    
 return(d);
}     

int orderclosebuy(int ticketbuy)
{
    string symbol = Symbol();
    int cnt;
    for(cnt = OrdersTotal(); cnt >= 0; cnt--)
       {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);       
       if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) 
         {
         ticketbuy=OrderTicket();OrderSelect(ticketbuy, SELECT_BY_TICKET, MODE_TRADES);lotsbuy2=OrderLots() ;                         
         double bid = MarketInfo(symbol,MODE_BID); 
         RefreshRates();
         OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); 
         }
       }
       lotsbuy2=lotsbuy;return(0);
     } 

int orderclosesell(int ticketsell)
{
    string symbol = Symbol();
    int cnt;   
    for(cnt = OrdersTotal(); cnt >= 0; cnt--)
       {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);       
       if(OrderSymbol() == symbol && OrderMagicNumber()==Magicsell) 
         {
         ticketsell=OrderTicket();OrderSelect(ticketsell, SELECT_BY_TICKET, MODE_TRADES);lotssell2=OrderLots() ;                         
         double ask = MarketInfo(symbol,MODE_ASK); 
         RefreshRates();
         OrderClose(ticketsell,lotssell2,ask,3, Lime); 
         }
       }
       lotssell2=lotssell;return(0); 
     }

int start()
{
      // код доступен только после оплаты
   }
  double profitbuy=0;double profitsell=0;
  string symbol = OrderSymbol();
  double spread = MarketInfo(symbol,MODE_SPREAD);
  double minLot = MarketInfo(symbol,MODE_MINLOT);
  if (minLot==0.01){dig=2;maxLot=MarketInfo(symbol,MODE_MAXLOT);}
  if (minLot==0.1){dig=1;maxLot=((AccountBalance()/2)/1000);}
  if(OrdersTotalMagicbuy(Magicbuy)>0)
  {
  double smbuy;
  for (cnt=0;cnt<OrdersTotal();cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber () == Magicbuy) 
      {
      ticketbuy = OrderTicket();OrderSelect(ticketbuy,SELECT_BY_TICKET, MODE_TRADES);
      smbuy = smbuy+OrderLots();openpricebuy = OrderOpenPrice();lastlotbuy = OrderLots();
      }
    }
    {   
    if (smbuy+(NormalizeDouble((lastlotbuy*mult),dig))<maxLot)
      {     
      if(StepMode==0)
        {
        if(Ask<=openpricebuy-step*Point)
          {
              lotsbuy2=lastlotbuy*mult;
              if( StopLoss ==  0 ) sl = 0 ; else sl = Ask - (StopLoss * Point);
              if( TakeProfit ==  0 ) tp = 0 ; else tp = Ask + (TakeProfit * Point);
              if (lotsbuy2 > MaxLotBuy) lotsbuy2 = MaxLotBuy;
              RefreshRates();ticketbuy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(lotsbuy2,dig),Ask,3,sl,tp,OrderComment,Magicbuy,0,Blue);
          }
        }
      if(StepMode==1)
        {
        if(Ask<=openpricebuy-(step+OrdersTotalMagicbuy(Magicbuy)+OrdersTotalMagicbuy(Magicbuy)-2)*Point)
          {
              lotsbuy2=lastlotbuy*mult;
              if (lotsbuy2 > MaxLotBuy) lotsbuy2 = MaxLotBuy;
              if( StopLoss ==  0 ) sl = 0 ; else sl = Ask - (StopLoss * Point);
              if( TakeProfit ==  0 ) tp = 0 ; else tp = Ask + (TakeProfit * Point);
              if (lotsbuy2 > MaxLotBuy) lotsbuy2 = MaxLotBuy;      
              RefreshRates();ticketbuy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(lotsbuy2,dig),Ask,3,sl,tp,OrderComment,Magicbuy,0,Blue);
          } 
        }
      }
    }
  }
  if(OrdersTotalMagicsell(Magicsell)>0)
  {
  double smsell;
  for (cnt=0;cnt<OrdersTotal();cnt++)
    {
    OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber () == Magicsell)
      {
      ticketsell = OrderTicket();OrderSelect(ticketsell,S

Показано первые 50% кода (символов: 8266)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
826,60₽ ≈ $10.10