Скрипты: Grid

 

Grid:

Скрипт выставляет сетку отложенных ордеров.

Автор: Aleksandr Zakhvatkin

 
Классный простой скрипт, как раз то, что я искал, точное выставление сетки отложенных ордеров для metatrader5.
 

Как не хватает таких "основ" на mql4) Перелопатил все сеточники, мартины, какие-то все нагромождённые. 

Вообще, идея готовых блоков (минимальный код для мартина, сеток, временной торговли, простейшей нейросети, корелляции, торговой панели, инфопанели и тд) классная. 

 
Ivan Butko #:

Как не хватает таких "основ" на mql4) Перелопатил все сеточники, мартины, какие-то все нагромождённые. 

Вообще, идея готовых блоков (минимальный код для мартина, сеток, временной торговли, простейшей нейросети, корелляции, торговой панели, инфопанели и тд) классная. 

1 минуту в поиске https://www.mql5.com/ru/code/9515

Grid
Grid
  • www.mql5.com
Выставляет сетку отложенных ордеров.
 
SanAlex #:

1 минуту в поиске https://www.mql5.com/ru/code/9515

А я на скрипты не обращал внимания

 
Ivan Butko #:

А я на скрипты не обращал внимания

а зря - там много чего хорошего можно найти 

 
SanAlex #:

а зря - там много чего хорошего можно найти 

Да, я был предубежден. Теперь и скрипты просматриваю

 
Подскажите пожалуйста как добавить в скрипт стоп лосс. Нужно добавить класс и функцию, я просто не так хорошо разбираюсь в js.
 
Aleksandr Verevkin #:
Подскажите пожалуйста как добавить в скрипт стоп лосс. Нужно добавить класс и функцию, я просто не так хорошо разбираюсь в js.

Здравствуйте, Александр! Вставляете во входных параметрах переменную StopLoss, присваиваете её начальное значение, например 500 пунктов, и в теле кода добавляете эту переменную (добавленный код выделен желтым цветом). Получится Вот так:

//+------------------------------------------------------------------+
//|                                                         grid.mq5 |
//|                             Copyright 2020, Zakhvatkin Aleksandr |
//|                              https://www.mql5.com/ru/users/z.a.m |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, Zakhvatkin Aleksandr"
#property link      "https://www.mql5.com/ru/users/z.a.m"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input double   FixedLot=0.1;    // Fixed lot
input ushort   StopLoss=500;    // Stop loss
input ushort   TakeProfit=200;  // Take profit
input ushort   Grid_step=100;   // Grid step
input ushort   N_orders=10;     // Number of orders in one direction
input ushort   Distance=50;     // Price offset
input bool     LimitGrid=false; // Set a grid of limit orders
//--- include
#include <Trade\Trade.mqh> 
CTrade trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for (int j=1; j<=N_orders; j++)
      {
      if (!LimitGrid)
         {
         double _pricebuy = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK)+Distance*_Point+Grid_step*j*_Point,_Digits);
         double _pricesell = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID)-Distance*_Point-Grid_step*j*_Point,_Digits);
         trade.BuyStop(FixedLot,_pricebuy,NULL,_pricebuy-StopLoss*_Point,_pricebuy+TakeProfit*_Point,0,0,NULL);
         trade.SellStop(FixedLot,_pricesell,NULL,_pricesell+StopLoss*_Point,_pricesell-TakeProfit*_Point,0,0,NULL);
         }
      else
         {
         double _pricebuy = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK)-Distance*_Point-Grid_step*j*_Point,_Digits);
         double _pricesell = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID)+Distance*_Point+Grid_step*j*_Point,_Digits);
         trade.SellLimit(FixedLot,_pricesell,NULL,_pricesell+StopLoss*_Point,_pricesell-TakeProfit*_Point,0,0,NULL);
         trade.BuyLimit(FixedLot,_pricebuy,NULL,_pricebuy-StopLoss*_Point,_pricebuy+TakeProfit*_Point,0,0,NULL);
         }
      }
  }
//+------------------------------------------------------------------+

С уважением, Владимир.

 
MrBrooklin #:

Здравствуйте, Александр! Вставляете во входных параметрах переменную StopLoss, присваиваете её начальное значение, например 500 пунктов, и в теле кода добавляете эту переменную (добавленный код выделен желтым цветом). Получится Вот так:

С уважением, Владимир.

Спасибо Владимир!