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

Algo Samurai

algo samurai.mq4
Вы автор или правообладатель?

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

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

О программе

Algo Samurai — советник для платформы MetaTrader 4, предназначенный для автоматического управления торговыми операциями. Программа рассчитывает объём лота на основе баланса счёта или фиксированного значения, открывает отложенные ордера типа Buy Stop и Sell Stop, а также динамически корректирует уровни стоп-лосса и тейк-профита для активных позиций.

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

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

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

НастройкаОписание
Configuration Конфигурация — Текстовый параметр-группа для основных настроек советника.
magicnumber Магический номер — Магический номер, идентифицирующий ордера, открытые данным советником.
AutoLot Авто-лот — Переключатель автоматического расчёта размера лота на основе баланса счёта. При включении используется параметр AutoLotMode для определения пропорции.
AutoLotMode Режим авто-лота — Вариант настройки авто-лота: Expert (10), Moderate (20) или Safe (30). Определяет множитель для расчёта лота при включённом AutoLot.
FixLot Фиксированный лот — Фиксированный размер лота, используемый при выключенном AutoLot.
OrderSetting Настройки ордеров — Текстовый параметр-группа для настроек ордеров.
stoploss Стоп-лосс — Значение стоп-лосса в пунктах для ордеров советника.
takeprofit Тейк-профит — Значение тейк-профита в пунктах для ордеров советника.
step Шаг — Шаговое значение, используемое при расчёте уровней отложенных ордеров и корректировке стоп-лосса и тейк-профита.
Config Конфигурация времени — Текстовый параметр-группа для настроек временного фильтра.
StartHour Час начала работы — Час начала работы советника в серверном времени. Торговые операции выполняются только начиная с этого часа.
StopHour Час окончания работы — Час окончания работы советника в серверном времени. Торговые операции не выполняются после этого часа.
Получить полный код

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

enum Option1      {Expert = 10,Moderate = 20,Safe = 30  };

extern string Configuration="==== Setting ===="  ;  
extern int   magicnumber=777  ;   
extern bool AutoLot=true  ;   
extern  Option1  AutoLotMode=30  ;   
extern double FixLot=0.1  ;   
extern string OrderSetting="=== Leave as Default ===="  ;  
extern int   stoploss=150  ;   
extern int   takeprofit=1250  ;   
extern int   step=90  ;   
extern string Config="==== Time Filter ===="  ;  
extern int   StartHour=4  ;   
extern int   StopHour=22  ;   
  double    zong_1_do = 0.3;
  double    zong_2_do = AutoLotMode * 100;
  int       zong_3_in = 250;
  int       zong_4_in = 200;
  int       zong_5_in = 100;
  int       zong_6_in = 50;
  int       zong_7_in = 100;
  int       zong_8_in = 50;
  int       zong_9_in = 800;
  int       zong_10_in = 100;
  int       zong_11_in = 50;
  /*
  string    zong_12_st = "Chuah Teong Hooi";
  string    zong_13_st = "chuah teong hooi";
  string    zong_14_st = "CHUAH Teong Hooi";
  string    zong_15_st = AccountName();
  string    zong_16_st = "2225.11.30 23:59:00";
  */
  int       xt = 0;
  double    zong_18_do = 0.0;
  int       zong_19_in = 0;
  int       zong_20_in = 10;
  int       zong_21_in = 0;
  int       zong_22_in = 0;
  int       zong_23_in = 5;
  int       zong_24_in = 30;
  double    zong_25_do = 0.0;
  double    zong_26_do = 0.0;
  int       LotDigits = 0;
  double    lots = 0.0;

 int init()
 {
      // код доступен только после оплаты
   }

 int start()
 {
      // код доступен только после оплаты
   }
  int       Local_2_in;
  double    Local_3_do;
  double    Local_4_do;
  double    Local_5_do;
  double    Local_6_do;
  int       Local_7_in;
  int       Local_8_in;
  double    Local_9_do;
  int       Local_10_in;
  double    Local_11_do;
  int       Local_12_in;
  double    Local_13_do;
  double    Local_14_do;
  int       Local_15_in;
  int       Local_16_in;

  int       i;

 Display_Info(); 
 Local_2_in = 0 ;
 Local_3_do = 0.0 ;
 Local_4_do = 0.0 ;
 Local_5_do = 0.0 ;
 Local_6_do = 0.0 ;
 Local_7_in = 0 ;
 Local_8_in = 0 ;
 Local_9_do = 0.0 ;
 Local_10_in = 0 ;
 Local_11_do = 0.0 ;
 Local_12_in = 0 ;
 Local_13_do = 0.0 ;
 Local_14_do = 0.0 ;
 Local_15_in = 0 ;
 Local_16_in = 0 ;
 /*
 if (1>2 && !(IsTesting()) )
 {
   if ( zong_15_st != zong_12_st && zong_15_st != zong_13_st && zong_15_st != zong_14_st )
   {
     MessageBox(" Algo Samurai Account License for : " + zong_12_st,"Algo Samurai : t.me/algosamurai",0); 
     MessageBox(" Algo Samurai Account License for : " + zong_13_st,"Algo Samurai : t.me/algosamurai",0); 
     MessageBox(" Algo Samurai Account License for : " + zong_14_st,"Algo Samurai : t.me/algosamurai",0); 
     ExpertRemove(); 
     return(-1); 
   }
   Local_17_in = StringToTime(zong_16_st) ;
   if ( TimeCurrent() >= Local_17_in )
   {
     MessageBox("Algo Samurai EA License Expired please contact : f*********r*@gmail.com","Lisensi Expired",0); 
     ExpertRemove(); 
     return(-1); 
   }
 }
 */
 lots = NormalizeDouble(LotsOptimized ( ),LotDigits) ;
 zong_19_in = MarketInfo(Symbol(),14) ;
 for (i = 0 ; i < OrdersTotal() ; i = i + 1)
 {
   if ( !(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) || OrderSymbol() != Symbol() || magicnumber != OrderMagicNumber() )   continue;
   Local_2_in = OrderType() ;
   Local_3_do = NormalizeDouble(OrderStopLoss(),Digits()) ;
   Local_4_do = NormalizeDouble(OrderOpenPrice(),Digits()) ;
   Local_5_do = Local_3_do ;
   if ( Local_2_in == 0 )
   {
     Local_7_in = Local_7_in + 1;
     if ( Local_3_do<Local_4_do )
     {
       Local_15_in = zong_4_in ;
       Local_16_in = zong_3_in ;
     }
     else
     {
       if ( Local_3_do - Local_4_do<=NormalizeDouble(zong_4_in * Point(),Digits()) )
       {
         Local_15_in = zong_6_in ;
         Local_16_in = zong_5_in ;
       }
       else
       {
         if ( Local_3_do - Local_4_do<=NormalizeDouble(zong_9_in * Point(),Digits()) )
         {
           Local_15_in = zong_8_in ;
           Local_16_in = zong_7_in ;
         }
         else
         {
           Local_15_in = zong_11_in ;
           Local_16_in = zong_10_in ;
         }
       }
     }
     Local_13_do = NormalizeDouble(Local_15_in * Point() + Local_3_do,Digits()) ;
     Local_14_do = NormalizeDouble(Bid - Local_16_in * Point(),Digits()) ;
     if ( Local_14_do>Local_3_do && Local_13_do<=NormalizeDouble(Bid - zong_19_in * Point(),Digits()) )
     {
       Local_5_do = Local_13_do ;
     }
     if ( Local_5_do>Local_3_do )
     {
       if ( !(OrderModify(OrderTicket(),Local_4_do,Local_5_do,0.0,0,White)) )
       {
         Print("Error ",GetLastError(),"   Order Modify Buy   SL ",Local_3_do,"->",Local_5_do); 
       }
       else
       {
         Print("Order Buy Modify   SL ",Local_3_do,"->",Local_5_do); 
       }
     }
   }
   if ( Local_2_in == 1 )
   {
     Local_8_in = Local_8_in + 1;
     if ( Local_3_do>Local_4_do )
     {
       Local_15_in = zong_4_in ;
       Local_16_in = zong_3_in ;
     }
     else
     {
       if ( Local_3_do - Local_4_do>=NormalizeDouble(zong_4_in * Point(),Digits()) )
       {
         Local_15_in = zong_6_in ;
         Local_16_in = zong_5_in ;
       }
       else
       {
         if ( Local_3_do - Local_4_do>=NormalizeDouble(zong_9_in * Point(),Digits()) )
         {
           Local_15_in = zong_8_in ;
           Local_16_in = zong_7_in ;
         }
         else
         {
           Local_15_in = zong_11_in ;
           Local_16_in = zong_10_in ;
         }
       }
     }
     Local_13_do = NormalizeDouble(Local_3_do - Local_15_in * Point(),Digits()) ;
     Local_14_do = NormalizeDouble(Local_16_in * Point() + Ask,Digits()) ;
     if ( Local_14_do<Local_3_do && Local_13_do>=NormalizeDouble(zong_19_in * Point() + Ask,Digits()) )
     {
       Local_5_do = Local_13_do ;
     }
     if ( Local_5_do<Local_3_do )
     {
       if ( !(OrderModify(OrderTicke

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

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

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

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

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

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

Стоимость полного кода
989,90₽ ≈ $12.10