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

sn liza ea.mq4

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

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

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

О программе

SN Liza EA — торговый советник для платформы MetaTrader 4, разработанный Gavrilin Alexander V. (sovetnikov.net), версия 1.27. Советник реализует сеточную торговлю с умножением лотов, открывая направления BUY и SELL и наращивая позиции по заданному шагу с увеличением объёма.

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

Встроены средства управления рисками: режимы управления капиталом (MM), ограничение торгового времени, автоматическое закрытие всех позиций при достижении минимального общего профита. Реализована система защиты EA_Protect для контроля статуса работы советника.

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

НастройкаОписание
slippage Допустимое проскальзывание (0 — не используется)
Magic Маджик-идентификатор ордеров советника
MM_Mode Режим расчёта управления капиталом (MM Mode)
FixStartLot Фиксированный стартовый лот
Risk Процент риска для расчёта лота (Procent)
BalanceStep Шаг баланса для режима управления капиталом (MM): 'Balance Step'
LotMultiplicator Множитель лота при увеличении позиции в сетке
takeprofit Тейк-профит для первых ордеров (TP)
count_takeprofit2 Количество ордеров для перехода на второй тейк-профит (Count for new TP2)
takeprofit2 Второй тейк-профит после открытия заданного количества ордеров (TP2)
count_minimal_profit Количество ордеров для проверки минимального профита (Count orders for Minimal profit)
minimal_profit Минимальный общий профит для закрытия всех позиций ($) (Minimal profit)
UseAverageTP Использовать усреднённый тейк-профит (Use Average TP)
Step Шаг между ордерами сетки
Step_Multiplicator Множитель шага между ордерами
Time_Use Включить ограничение торгового времени (Time Use)
Time_Start_Hour Час начала торговой сессии (Time start hour)
Time_Start_Minute Минута начала торговой сессии (Time start minute)
Time_End_Hour Час окончания торговой сессии (Time end hour)
Time_End_Minute Минута окончания торговой сессии (Time end minute)
Получить полный код

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

#property strict
#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>

const int PRODUCT_ID=4876;//AUTO-DRAFT
const string VERSION="1.27";
#property version   "1.27"

#include <EA_Protect/Protect.mqh>
SHOW_LICENSE_PARAMS
PROTECT_CREATE
/*
----
Данные макросы нужно встроить в указаные функции.

PROTECT_INIT - в функцию OnInit, инициализация
PROTECT_DEINIT в функцию OnDeinit, деинициализация
PROTECT_EVENT в функцию OnChartEvent, прием сообщений внутренних и резервный таймер
PROTECT_TIMER в функцию OnTimer, опрос по таймеру данных с сайта
PROTECT_STATUS - статус защиты в любом месте можно сохранить в переменную, например bool bcheck=PROTECT_STATUS;
возвращает true - если все в порядке или false если проблемы. Статус при опросах дублирует в журнал в журнал.
*/

/*
1.27
- обновление под магазин

1.26
- добавлены настройки режимов расчета ММ
- изменена логика торговли, если бай или селл направление закрыто, и время торговли разрешает торговать, то это направление будет открыто повторно
- добавлены настройки для изменения ТР по заданному количеству в сетке ордеров
- добавлены настройки для выхода по минимальному профиту, если общее количество ордеров превышает заданное
- оптимизация

1.24
- добавлен стартовый лот

1.23
- для переключения режима расчета тейк профит введен дополнительный параметр Use Average TP, если true то при расчетах учитывается точка безубытка.

1.22
- добавлена возможность оптимизации времени торговли
- добавлен множитель шага между ордерами
- изменена логика расчета установки тейк профит

1.20
- обновлено торговое время
- при отключении торгового времени (Time Use=false), советник будет работать круглосуточно (вариант для экстремалов).  Данный режим лучше применять в боковике на м5-м30 и быть готовым , что может потерять деньги.

*/

I slippage=0;

I Magic=0;

input ENUM_MM MM_Mode=MM_FreeMargin; // MM Mode
D FixStartLot=0.01; //Fix Lot
D Risk=0.5; //Procent
D BalanceStep=1000; //Balance Step for MM: 'Balance Step'

D LotMultiplicator=1.66; //Lot Multiplicator
D takeprofit=14; //TP

I count_takeprofit2=2;// Count for new TP2
D takeprofit2=7; //TP2

I count_minimal_profit=7; //Count orders for Minimal profit
D minimal_profit=0; //Minimal profit ($)

B UseAverageTP=true; //Use Average TP
D Step=8; //Step
D Step_Multiplicator=1.5; //Step Multiplicator

B Time_Use=true; //Time Use
I Time_Start_Hour=5; //Time start hour
I Time_Start_Minute=0; //Time start minute
I Time_End_Hour=5; //Time end hour
I Time_End_Minute=10; //Time end minute

class CMyOrders: public COrders
  {
public:

  };

int statistic_buy[20],statistic_sell[20];

class CMain: public CMainDefault
  {
protected:
   CMyOrders         m_main;
   CTime             m_time;
   string            s_time;
public:
   virtual int       OnInit()
     {
      // код доступен только после оплаты
   }

   virtual void      OnDeinit(const int reason)
     {

      m_main.OnDeinit();
     }

   virtual void      OnTick()
     {
      // код доступен только после оплаты
   }

      if(!m_main.IsWork(_Symbol))
         return; //отключена торговля

      bool bcheck=PROTECT_STATUS;
      if(!bcheck)
         return;

      m_main.OnTick();

      if((Time_Use && m_time.time_checking(s_time)) || !Time_Use)
        {
         if(m_main.orders[OP_BUY]==0)
            OnOpen(OP_BUY);
         if(m_main.orders[OP_SELL]==0)
            OnOpen(OP_SELL);
        }

      if(count_minimal_profit>0 && m_main.m_all>=count_minimal_profit && bcheck)
        {
         double dprofit=m_main.getProfit(ALL);
         if(dprofit>=minimal_profit)
           {
            m_main.OrderCloseAll(ALL);
            return;
           }
        }

      ulong t=0;

      if(m_main.orders[OP_BUY]>0)
        {

         t=m_main.getLastOrderTicket(OP_BUY,ORDER_DN);

         if(m_main.OrderSelect(t))
           {

            double dopen=m_main.OrderOpenPrice();
            double dtake=m_main.OrderTakeProfit();
       

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

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

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

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

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

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

Стоимость полного кода
603,20₽ ≈ $7.37