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

sn lavina market.mq4

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

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

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

О программе

Советник для MetaTrader 4, реализующий торговлю с фиксированным направлением (бай или селл). При отсутствии открытых позиций и при выполнении условий по времени и спреду открывает рыночную позицию. После открытия позиции выставляет отложенные ордера в противоположном направлении с шагом, который может умножаться с каждым уровнем. Лоты также могут увеличиваться по мультипликатору с ограничением минимального и максимального размера.
Советник отслеживает среднюю цену всех позиций и отображает уровни тейк-профита и безубытка горизонтальными линиями на графике. При достижении ценой уровня тейк-профита все позиции закрываются. Доступны фильтры по дням недели и рабочему времени, а также ограничение максимального спреда. Настраивается параметр остановки после достижения тейк-профита.

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

НастройкаОписание
TradeMode Режим торговли — Направление торговли: бай или селл
cmt Комментарий к ордерам — Комментарий к ордерам советника
Magic Меджик — Идентификатор ордеров советника
TP (TakeProfit) Тейк-профит (TP) — Уровень безубытка для закрытия позиций
Offset (Step) Шаг (Offset) — Базовый шаг для выставления отложенных ордеров
Step Multiplicator (StepMultiplicator) Множитель шага — Множитель для увеличения шага с каждым уровнем
Minimum Step (MinStep) Минимальный шаг — Минимальное значение шага отложенного ордера
Maximum Step (MaxStep) Максимальный шаг — Максимальное значение шага отложенного ордера
Start Lot (StartLot) Начальный лот — Начальный размер лота для открытия позиции
Multiplicator (LotMultiplicator) Мультипликатор лота — Мультипликатор размера лота при увеличении уровня
Minimum Lot (MinLot) Минимальный лот — Минимальный допустимый размер лота
Maximum Lot (MaxLot) Максимальный лот — Максимальный допустимый размер лота
Stop after TP (StopAfterTP) Остановить после ТП — Остановить торговлю после достижения тейк-профита
Max spread (0-off) (MaxSpread) Максимальный спред — Максимальный допустимый спред (0 — отключено)
Monday (Day1) Понедельник — Включить торговлю в понедельник
Time (WorkTime1) Время работы (Понедельник) — Рабочее время в понедельник
Tuesday (Day2) Вторник — Включить торговлю во вторник
Time (WorkTime2) Время работы (Вторник) — Рабочее время во вторник
Wednesday (Day3) Среда — Включить торговлю в среду
Time (WorkTime3) Время работы (Среда) — Рабочее время в среду
Thursday (Day4) Четверг — Включить торговлю в четверг
Time (WorkTime4) Время работы (Четверг) — Рабочее время в четверг
Friday (Day5) Пятница — Включить торговлю в пятницу
Time (WorkTime5) Время работы (Пятница) — Рабочее время в пятницу
Saturday (Day6) Суббота — Включить торговлю в субботу
Time (WorkTime6) Время работы (Суббота) — Рабочее время в субботу
Sunday (Day7) Воскресенье — Включить торговлю в воскресенье
Time (WorkTime7) Время работы (Воскресенье) — Рабочее время в воскресенье
TP line width (TP_Width) Ширина линии TP — Ширина линии тейк-профита на графике
BU line width (BU_Width) Ширина линии BU — Ширина линии безубытка на графике
Получить полный код

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

#property version   "1.30"
#property strict
#include <sovetnikovNET\Orders.mqh>
#include <sovetnikovNET\Time.mqh>
#include <sovetnikovNET\Draw.mqh>

BLOCK(1,"Main settings");//.
input ENUM_TYPE TradeMode=MODE_OP_BUY;

S  cmt="";

I Magic=100;

D TakeProfit=10;//TP

D  Step=10; //Offset

D  StepMultiplicator=1; //Step Multiplicator

D MinStep=10; //Minimum Step
D MaxStep=100;//Maximum Step

D  StartLot=0.01; //Start Lot

D  LotMultiplicator=2; //Multiplicator

D MinLot=0.01; //Minimum Lot
D MaxLot=100; //Maximum Lot

BLOCK(2,"Filters settings");//.
B StopAfterTP=false; //Stop after TP

D MaxSpread=0; //Max spread (0-off)

B Day1=true; //Monday
S WorkTime1="00:00-24:00"; //Time
B Day2=true; //Tuesday
S WorkTime2="00:00-24:00"; //Time
B Day3=true; //Wednesday
S WorkTime3="00:00-24:00"; //Time
B Day4=true; //Thursday
S WorkTime4="00:00-24:00"; //Time
B Day5=true; //Friday
S WorkTime5="00:00-24:00"; //Time
B Day6=true; //Saturday
S WorkTime6="00:00-24:00"; //Time
B Day7=true; //Sunday
S WorkTime7="00:00-24:00"; //Time

BLOCK(3,"Lines settings");//.
C TP_Color=clrRed; //TP line color
STYLE TP_Style=STYLE_SOLID; //TP line style
I TP_Width=1; //TP line width

C BU_Color=clrGreen; //BU line color
STYLE BU_Style=STYLE_DOT; //BU line style
I BU_Width=1; //BU line width

int     slippage=0;

class CMyOrders: public COrders
  {

public:
  };

class CMain: public CMainDefault
  {
protected:
   CMyOrders         m_main;
   bool              bClose;
   bool              bStopAfterTP;

   CDraw             m_draw;
   CTime             m_time;
public:
   virtual int       OnInit()
     {
      // код доступен только после оплаты
   }

   virtual void      OnDeinit(const int reason)
     {
      m_main.OnDeinit();
      m_main.OnDeinit(reason);
     }

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

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

      m_main.OnTick();

      ulong t1=0,t2=0;

      if(m_main.m_all==0){
         m_draw.Delete(0,"tp");
         m_draw.Delete(0,"bu");
      }   

      int icount=m_main.Count(BUY|SELL);

      if(icount==0 && m_main.m_all>0)
        {
         m_main.OrderCloseAll(ALL); //удалить отложки
         bClose=true;
        }

      if(m_main.m_all>0)
        {
         bStopAfterTP=StopAfterTP;
        }

      bool bTime=m_time.checkTimeManager(true,Day1,WorkTime1,Day2,WorkTime2,Day3,WorkTime3,Day4,WorkTime4,Day5,WorkTime5,Day6,WorkTime6,Day7,WorkTime7);
      bool bSpread=m_main.CheckMaxSpread(MaxSpread);

      if(m_main.m_all==0 && bTime && bSpread && !bStopAfterTP)
        {
         bClose=false;
         double dlot=NLot(StartLot);

         if(m_main.IsTester)
            dlot=NLot(StartLot,_Symbol,true);

         if(TradeMode==MODE_OP_BUY)
            t1=m_main.OrderSend(OP_BUY,dlot,-1,0,0,cmt,false);
         else
            if(TradeMode==MODE_OP_SELL)
               t1=m_main.OrderSend(OP_SELL,dlot,-1,0,0,cmt,false);

        }

      if(!bClose)
        {

         t1=m_main.getOrderTicket(BUY|SELL);

         if(m_main.OrderSelect(t1))
           {
            double dopen=m_main.OrderOpenPrice();
            double dlot=m_main.OrderLots();
            int itype=

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

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

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

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

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

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

Стоимость полного кода
448,30₽ ≈ $5.48