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

EA Close All

ea_close_all_v5.mq4

Похожие материалы по тегам

one shoot ai v4.mq5MQL5 / MetaTrader 5 · 1 общих теговindicatorgoldy.pineTradingView · 1 общих теговeatelemetry.mqhMQL4 / MetaTrader 4 · 1 общих теговdrawdownmeter.mq4MQL4 / MetaTrader 4 · 1 общих теговaccountequityanalyzer@lifeindreamsworld.mq4MQL4 / MetaTrader 4 · 1 общих теговaccountequityanalyzer v1.1.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Внутри каждого триггера советник сначала устанавливает флаг готовности, а затем на следующем тике выполняет закрытие рыночных позиций и удаление отложенных ордеров в порядке FIFO. После закрытия всех ордеров флаги сбрасываются. Советник также выводит на график информационную панель с данными о счёте, текущей прибыли, просадке и дневной прибыли, положение которой задаётся через настройку угла.

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

НастройкаОписание
EA Comment (EAComment) Комментарий советника — Текстовая строка, используемая в качестве идентификатора и заголовка информационной панели на графике.
Magic Number (MagicNumber) Магический номер — Целое число для фильтрации ордеров: советник обрабатывает только те позиции и ордера, которым присвоен этот магический номер.
Show Info to Chart (ShowInfo) Показать информацию на графике — Переключатель, определяющий, отображается ли информационная панель с данными счёта и торговли на графике.
Info Corner (Corner) Угол отображения информации — Указывает угол графика, в котором будет размещена информационная панель советника.
Close by Pips Profit ............................................................................... (CloseAtPipsProfits Разделитель группы закрытия по пипсам — Текстовый разделитель, визуально группирующий настройки закрытия по прибыли в пипсах в диалоге параметров.
Close by Pips Profit (UseCloseAtPipsProfits) Использовать закрытие по прибыли в пипсах — Включает или отключает автоматическое закрытие ордеров при достижении прибыли, измеренной в пипсах.
Profit in Pips (PipsProfit) Прибыль в пипсах — Пороговое значение прибыли в пипсах, при достижении которого срабатывает триггер закрытия ордеров.
Close by $ Profit .................................................................................. (CloseAtProfits) Разделитель группы закрытия по долларовой прибыли — Текстовый разделитель, визуально группирующий настройки закрытия по денежной прибыли в диалоге параметров.
Close by $ Profit (UseCloseAtProfits) Использовать закрытие по долларовой прибыли — Включает или отключает автоматическое закрытие ордеров при достижении заданной денежной прибыли.
Profit in $ (Profit) Прибыль в долларах — Пороговое значение денежной прибыли, при достижении которого срабатывает триггер закрытия ордеров.
Close by % Loss .................................................................................... (ClosePercentLoss) Разделитель группы закрытия по проценту убытка — Текстовый разделитель, визуально группирующий настройки закрытия по проценту убытка в диалоге параметров.
Close by % Loss (CloseAtPercentLoss) Использовать закрытие по проценту убытка — Включает или отключает автоматическое закрытие ордеров при превышении допустимого процентного убытка от баланса.
Loss % (PercentLoss) Процент убытка — Максимально допустимый процент убытка от текущего баланса счёта, при превышении которого срабатывает триггер закрытия.
Получить полный код

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

#property version   "1.00"
#property strict 
#property description "Created - 02.05.2017 11:59"
#property description "?"
#property description "Customer: Ryan Brown (  )"
#include <stdlib.mqh> 

input string EAComment              = "EA Close All";// EA Comment 
input int    MagicNumber            = 0;             // Magic Number
input bool   ShowInfo               = 1;             // Show Info to Chart 
input ENUM_BASE_CORNER Corner       = 1;             // Info Corner
input string CloseAtPipsProfits     = "--------------------< Close by Pips Profit >--------------------";//Close by Pips Profit ...........................................................................................................
input bool   UseCloseAtPipsProfits  = 0;             // Close by Pips Profit
input int    PipsProfit             = 5;             // Profit in Pips 
input string CloseAtProfits         = "--------------------< Close by $ Profit >--------------------";//Close by $ Profit ...........................................................................................................
input bool   UseCloseAtProfits      = 0;             // Close by $ Profit
input double Profit                 = 5;             // Profit in $ 
input string ClosePercentLoss       = "--------------------< Close by % Loss >--------------------";//Close by % Loss ...........................................................................................................
input bool   CloseAtPercentLoss     = 0;             // Close by % Loss
input double PercentLoss            = 5;             // Loss %

double ClosingArray[100], DrawDowns=0, DDBuffer=0, Drawdown=0;int Pip=1, lotdigit=0;string text[26], prefix="";

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

void OnDeinit(const int reason)
{
  if(!IsTesting()){
  for(int i= ObjectsTotal(); i>=0; i--) 
     {
      string name= ObjectName(i);
      if(StringSubstr(name,0,4)=="Info")
        {
         ObjectDelete(name);}
        }
     } else GVDel(prefix);
 return;
}  

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

void OrdersClose()
{ 
   if(UseCloseAtPipsProfits && 0 < Orders(-1) && CheckPipsProfit(-1)> PipsProfit && GVGet("EPPb")==0){ GVSet("EPPb",1);} 

   if(UseCloseAtPipsProfits && 0 < Orders(-1) && GVGet("EPPb")==1){ if(CloseOrders(-1,FIFO(-1))){ Print("-> Exit with pips profits!");}} 

   if(UseCloseAtProfits && CheckProfit(-1) > 0 && CheckProfit(-1) >= Profit && GVGet("EPb")==0){ GVSet("EPb",1);} 

   if(UseCloseAtProfits && 0 < Orders(-1) && GVGet("EPb")==1){ if(CloseOrders(-1,FIFO(-1))){ Print("-> Exit with $ profits!");}}   

   if(CloseAtPercentLoss && 0 < Orders(-1) && CheckProfit(-1) < 0 && MathAbs(CheckProfit(-1))> (PercentLoss*AccountBalance()/100) && GVGet("EPlb")==0){ GVSet("EPlb",1);} 

   if(CloseAtPercentLoss && 0 < Orders(-1) && GVGet("EPlb")==1){ if(CloseOrders(-1,FIFO(-1))){ Print("-> Exit with % loss!");}}                                                                  

   if(1 > Orders(-1)){ GVSet("EPPb",0);GVSet("EPb",0);GVSet("EPlb",0);}  
}  

double CheckPipsProfit(int type) //-1= All,0=Buy,1=Sell; 
{
   double Profitb=0, Profits=0; string sym="";      

   for(int i=OrdersTotal()-1;i>=0;i--)
      {
       bool os = OrderSelect(i,SELECT_BY_POS, MODE_TRADES);            
       if(MagicNumber == 0 || OrderMagicNumber() == MagicNumber)
        {         
         if(OrderType()==OP_BUY){  
         Profitb=Profitb+(((MarketInfo(OrderSymbol(),MODE_BID))-OrderOpenPrice())/point(OrderSymbol()));} 
         if(OrderType()==OP_SELL){  
         Profits=Profits+((OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/point(OrderSymbol()));} 
        }} 
       if(0==type){ return(Profitb);}
       if(1==type){ return(Profits);}
       if(-1==type){ return(Profits+Profitb);}
     return(0);
}  

double CheckProfit(int type) //-1= All,0=Buy,1=Sell;
{
  double Profitb=0,Profits=0;       
  for(int i=OrdersTotal()-1;i>=0;i--)
     {
      bool os = OrderSelect(i,SELECT_BY_POS, MODE_TRADES);            
      if(MagicNumber == 0 || OrderMagicNumber() == MagicNumber)
        {        
        if(OrderType()==OP_BUY){ Profitb+=OrderProfit()+OrderSwap()+OrderCommission();} 
        if(OrderType()==OP_SELL){ Profits+=OrderProfit()+OrderSwap()+OrderCommission();} 
       }} 
       if(0==type){ return(Profitb);}
       if(1==type){ return(Profits);}
       if(-1==type){ return(Profits+Profitb);}
     return(0);
}

bool CloseOrders(int type, int tick)
{  
  bool oc=0;    
  bool os = OrderSelect(tick,SELECT_BY_TICKET, MODE_TRADES);
  if(MagicNumber == 0 || OrderMagicNumber() == MagicNumber)
    {   
     if(type==-1){
     if(OrderType()==0){ oc = OrderClose(tick,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),1000,clrGold);}
     if(OrderType()==1){ oc = OrderClose(tick,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),1000,clrGold);}      
     if(OrderType()>1){  oc = OrderDelete(tick);}}  
     if(OrderType()==type && type==0){ oc = OrderClose(tick,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),1000,clrGold);}
     if(OrderType()==type && type==1){ oc = Order

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

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

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

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

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

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

Стоимость полного кода
838,90₽ ≈ $10.25