Algo Samurai EA
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «algo samurai ea full.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Algo Samurai EA — торговый советник для MetaTrader 4, написанный на MQL4. Советник осуществняет управление торговыми операциями: размещает отложенные ордера BuyStop и SellStop, модифицирует стоп-лоссы открытых позиций и удаляет истёкшие ордера. Работает в стандартном цикле MQL4 через обработчики init, start и deinit.
Советник поддерживает автоматический расчёт размера лота на основе баланса счёта (при включённом AutoLot) или фиксированное значение лота. Включён фильтр по времени торговли — ордера размещаются и модифицируются только в интервале между StartHour и StopHour. В init предусмотрена проверка даты, после которой отображается предупреждение о завершении тестового периода.
На графике отображаются информационные метки с данными об аккаунте, брокере и ссылками. Советник использует магический номер для идентификации своих ордеров и позиций, а также настраиваемые уровни стоп-лосса, тейк-профита и шага модификации.
Настройки программы
| Настройка | Описание |
|---|---|
| Configuration | Конфигурация — Текстовый параметр заголовка настроек |
| can change any number (magicnumber) | Магический номер — Магический номер для идентификации ордеров советника |
| AutoLot | Автолот — Переключатель автоматического расчёта размера лота на основе баланса счёта |
| AutoLotMode | Режим автолота — Режим автолота (вариант настройки из перечисления Option1) |
| FixLot | Фиксированный лот — Фиксированный размер лота при отключённом автолоте |
| OrderSetting | Настройки ордеров — Текстовый параметр настроек ордеров |
| stoploss | Стоп-лосс — Значение стоп-лосса в пунктах |
| takeprofit | Тейк-профит — Значение тейк-профита в пунктах |
| step | Шаг — Шаг модификации стоп-лосса и тейк-профита |
| change time for your need (Config) | Настройка времени — Текстовый параметр для настройки временного фильтра |
| StartHour | Час начала — Час начала торгового интервала для фильтра по времени |
| StopHour | Час окончания — Час окончания торгового интервала для фильтра по времени |
Поиск по коду файла
enum Option1 {Expert = 10,Moderate = 20,Safe = 30 };
extern string Configuration="==== Setting ====" ;
extern int magicnumber=777 ; // can change any number
extern bool AutoLot=true ;
extern Option1 AutoLotMode=30 ;
extern double FixLot=0.01 ;
extern string OrderSetting="=== Leave as Default ====" ;
extern int stoploss=150 ;
extern int takeprofit=1250 ;
extern int step=90 ;
extern string Config="==== Time Filter ====" ; // change time for your need
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;
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 ;
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(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 == 4 )
{
Local_9_do = Local_4_do ;
Local_10_in = OrderTicket() ;
if ( !(dTime ( )) )
{
if ( !(OrderDelete(LПоказано первые 50% кода (символов: 9332)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.