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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.