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

manual gird ea @fxsignalspot.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Советник MetaTrader 4 для сетевой торговли с ручным управлением. Программа выставляет сети отложенных ордеров (BuyStop, SellStop, BuyLimit, SellLimit) на заданном расстоянии друг от друга и помогает фиксировать прибыль при движении цены. Интерфейс содержит панель кнопок и полей ввода для настройки параметров сетей в реальном времени.

Основные возможности включают управление количеством ордеров в сети, настройку шага и начального уровня, расчёт лотов с добавкой и коэффициентом увеличения. Советник поддерживает фиксацию прибыли по уровням, трал профита с откатом, а также встречное закрытие позиций.

Торговля может быть отключена после достижения целевой прибыли. Доступны звуковые уведомления, отображение комментариев и визуальная индикация прибыли и убытков на панели. Работает с одним символом или со всеми символами на счёте.

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

НастройкаОписание
максимальное кол-во Buy (MaxBuy) максимальное кол-во Buy — Максимальное количество открытых покупок
максимальное кол-во Sell (MaxSell) максимальное кол-во Sell — Максимальное количество открытых продаж
кол-во ордеров сети BuyStop (OrdersBuyStop) кол-во ордеров сети BuyStop — Количество ордеров в сети BuyStop
кол-во ордеров сети SellStop (OrdersSellStop) кол-во ордеров сети SellStop — Количество ордеров в сети SellStop
кол-во ордеров сети BuyLimit (OrdersBuyLimit) кол-во ордеров сети BuyLimit — Количество ордеров в сети BuyLimit
кол-во ордеров сети SellLimit (OrdersSellLimit) кол-во ордеров сети SellLimit — Количество ордеров в сети SellLimit
_ Разделитель — Разделитель настроек
Растояние от цены до первого Stop ордера ( если 0 то открывается с уровнем стоплевел ) (FirstLevelStop) Растояние от цены до первого Stop ордера ( если 0 то открывается с уровнем стоплевел ) — Расстояние от цены до первого стоп-ордера; если 0, открывается с уровня стоплевел
шаг ордеров сети BuyStop (StepBuyStop) шаг ордеров сети BuyStop — Шаг между ордерами в сети BuyStop
шаг ордеров сети SellStop (StepSellStop) шаг ордеров сети SellStop — Шаг между ордерами в сети SellStop
Растояние от цены до первого Limit ордера ( если 0 то открывается с уровнем стоплевел ) (FirstLevelLimit) Растояние от цены до первого Limit ордера ( если 0 то открывается с уровнем стоплевел ) — Расстояние от цены до первого лимитного ордера; если 0, открывается с уровня стоплевел
шаг ордеров сети BuyLimit (StepBuyLimit) шаг ордеров сети BuyLimit — Шаг между ордерами в сети BuyLimit
шаг ордеров сети SellLimit (StepSellLimit) шаг ордеров сети SellLimit — Шаг между ордерами в сети SellLimit
__ Разделитель — Разделитель настроек
лот первого ордера от цены, далее по формуле (Lot) лот первого ордера от цены, далее по формуле — Лот первого ордера от цены, далее рассчитывается по формуле с добавкой и коэффициентом
добавка к начальному лоту (LotPlus) добавка к начальному лоту — Добавка к начальному лоту при расчёте лота каждого следующего ордера
Коэффициент увеличения (K_Lot) Коэффициент увеличения — Коэффициент увеличения лота для каждого следующего ордера в сети
___ Разделитель — Разделитель настроек
закрываем buy при достижении профита (CloseProfitB) закрываем buy при достижении профита — Закрытие всех покупок при достижении указанной прибыли
закрываем sell при достижении профита (CloseProfitS) закрываем sell при достижении профита — Закрытие всех продаж при достижении указанной прибыли
закрываем все при достижении профита (ProfitClose) закрываем все при достижении профита — Закрытие всех позиций при достижении указанной общей прибыли
старт трала при достижении профита (TralStart) старт трала при достижении профита — Старт трала при достижении указанного уровня прибыли
закрывать все после отката на (TralClose) закрывать все после отката на — Закрытие всех позиций после отката прибыли на указанное значение от пика
проскальзывание (slippage) проскальзывание — Допустимое проскальзывание при исполнении ордеров
магик ордеров, если -1 то подхватит все (Magic) магик ордеров, если -1 то подхватит все — Магический номер ордеров для идентификации; если -1, подхватываются все ордера
смещение панели по горизонтали (X) смещение панели по горизонтали — Смещение торговой панели по горизонтали
смещение панели по вертикали (Y) смещение панели по вертикали — Смещение торговой панели по вертикали
отключение торговли после взятия прибыли (TradeOFF) отключение торговли после взятия прибыли — Отключение торговли после взятия прибыли
использовать встречное закрытие (CloseByON) использовать встречное закрытие — Использовать встречное закрытие позиций путём закрытия одной позиции другой
Управлять всеми лимитными ордерами (AllSymbols) Управлять всеми лимитными ордерами — Управлять всеми лимитными ордерами на разных символах, а не только текущим
Фиксированный размер трала (TrailingStop) Фиксированный размер трала — Фиксированный размер трала в пунктах
Шаг трала (TrailingStep) Шаг трала — Шаг трала для фиксированного размера перемещения стоп-лосса
Использовать звуковой сигнал (UseSound) Использовать звуковой сигнал — Использовать звуковой сигнал при событиях
Показывать комментарий (ShowComment) Показывать комментарий — Показывать комментарий на графике
Цвет значка модификации покупки (clModifyBuy) Цвет значка модификации покупки — Цвет значка модификации покупки
Цвет значка модификации продажи (clModifySell) Цвет значка модификации продажи — Цвет значка модификации продажи
Получить полный код

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

#property strict
#property description "Советник выставляет сети и помогает собирать профит с любого движения"

/*Советник сетевой помощник

Кнопки советника
"Buy Stop" - открывать сеть отложенных стоп ордеров на продажу
"Sell Stop" - открывать сеть отложенных стоп ордеров на покупку
"Buy Limit"- открывать сеть отложенных лимит ордеров на продажу
"Sell Limit" - открывать сеть отложенных лимит ордеров на покупку
"Close Buy" - кнопка закрытия всей сети и всех открытых позиций на покупку
"Close Sell" - кнопка закрытия всей сети и всех открытых позиций на продажу
"Close" - кнопка закрытия всей сети и всех открытых позиций
"Tral Profit" - кнопка при нажатии которой советник будет тралить профит всех позиций начиная от TralStart 

В настройках советника
MaxBuy            -максимальное кол-во Buy
MaxSell           -максимальное кол-во Sell
OrdersBuyStop     - кол-во ордеров сети BuyStop
OrdersSellStop    - кол-во ордеров сети SellStop
OrdersBuyLimit    - кол-во ордеров сети BuyLimit
OrdersSellLimit   - кол-во ордеров сети SellLimit
StepBuyStop       - шаг ордеров сети BuyStop
StepSellStop      - шаг ордеров сети SellStop
StepBuyLimit      - шаг ордеров сети BuyLimit
StepSellLimit     - шаг ордеров сети SellLimit
Lot               - лот первого ордера от цены, далее по формуле
LotPlus           - добавка к начальному лоту
K_Lot             - Коэффициент увеличения
CloseProfitB      - закрываем buy при достижении профита
CloseProfitS      - закрываем sell при достижении профита
ProfitClose       - закрываем все при достижении профита
TralStart         - старт трала при достижении профита
TralClose         - закрывать все после отката на
slippage          - проскальзывание
Magic             - магик ордеров, если -1 то подхватит все
X                 - смещение панели по горизонтали
Y                 - смещение панели по вертикали
TradeOFF          - отключение торговли после взятия прибыли

Например 
Lot = 0.1
LotPlus = 0.1

первый лот 0.1    
второй     0.1+0.1=0.2 
третий     0.2+0.1=0.3 
четвёртый  0.3+0.1=0.4  
---------------------
FirstLevel - Растояние от цены до первого ордера ( если 0 то открывается с уровнем стоплевел )
========================================
Фиксация прибыли 2-ва способа:
ProfitClose - прибыль в валюте депозита ( например ставим 100$при достижении общей прибыли сетки 100$ , она закроется)
TralStart  - профит для старта трала в валюте депозита например 50$
TralClose  -  закрывается при снижении прибыли например те же 20$
Прибыль достигла 50, включился трал, прибыль продолжила расти до 60, потом откатилась на 20 и все закрылоссь при 40$ профита
отложки удаляются, выскакивает алерт с вопросом продолжить работу? При ответе О К - выставляется снова. 
=========================================
Особенности закрытия ордеров
Сначала советник пытается закрыть все ордера встречно, потом закрываем рыночные, начиная с самых больших объемов а потом отложки..

extern int     MaxBuy            = 50;    //максимальное кол-во  Buy
extern int     MaxSell           = 50;    //максимальное кол-во Sell

extern int     OrdersBuyStop     = 5;     //кол-во ордеров сети BuyStop
extern int     OrdersSellStop    = 5;     //кол-во ордеров сети SellStop
extern int     OrdersBuyLimit    = 5;     //кол-во ордеров сети BuyLimit
extern int     OrdersSellLimit   = 5;     //кол-во ордеров сети SellLimit
extern string _="";
extern int     FirstLevelStop    = 50;    //Растояние от цены до первого Stop ордера ( если 0 то открывается с уровнем стоплевел )
extern int     StepBuyStop       = 100;   //шаг ордеров сети BuyStop
extern int     StepSellStop      = 100;   //шаг ордеров сети SellStop
extern int     FirstLevelLimit   = 110;   //Растояние от цены до первого Limit ордера ( если 0 то открывается с уровнем стоплевел )
extern int     StepBuyLimit      = 100;   //шаг ордеров сети BuyLimit
extern int     StepSellLimit     = 100;   //шаг ордеров сети SellLimit

extern string __="";

extern double  Lot               = 0.10;  //лот первого ордера от цены, далее по формуле
extern double  LotPlus           = 0.00;  //добавка к начальному лоту
extern double  K_Lot             = 1.00;  //Коэффициент увеличения

extern string ___="";

extern double  CloseProfitB      = 10;    //закрываем buy при достижении профита
extern double  CloseProfitS      = 10;    //закрываем sell при достижении профита
extern double  ProfitClose       = 10;    //закрываем все при достижении профита
extern double  TralStart         = 10;    //старт трала при достижении профита
extern double  TralClose         = 5;     //закрывать все после отката на

extern int     slippage          = 5;     // проскальзывание
extern int     Magic             = -1;    //магик ордеров, если -1 то подхватит все
extern int     X                 = 0;     //смещение панели по горизонтали
extern int     Y                 = 25;    //смещение панели по вертикали
extern bool    TradeOFF          = true;  //отключение торговли после взятия прибыли
extern bool    CloseByON         = true;  //использовать встречное закрытие

extern bool  AllSymbols   = True;      // Управлять всеми лимитными ордерами
extern int   TrailingStop = 120;       // Фиксированный размер трала
extern int   TrailingStep = 20;        // Шаг трала
extern bool  UseSound     = True;      // Использовать звуковой сигнал
extern bool  ShowComment  = True;      // Показывать комментарий
extern color clModifyBuy  = Aqua;      // Цвет значка модификации покупки
extern color clModifySell = Tomato;    // Цвет значка модификации продажи

bool   gbNoInit     = False;           // Флаг неудачной инициализации
string SoundSuccess = "ok.wav";        // Звук успеха
string SoundError   = "timeout.wav";   // Звук ошибки
int    NumberOfTry  = 3;               // Количество торговых попыток

#include <stdlib.mqh>             // Стандартная библиотека

double STOPLEVEL;
double StopProfit=0;
string val,GV_kn_BS,GV_kn_SS,GV_kn_BL,GV_kn_SL,GV_kn_TrP,GV_kn_CBA,GV_kn_CSA,GV_kn_CA;
bool D,LANGUAGE;

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

string GetNameOP(int op) {
  switch (op) {
    case OP_BUY      : return("Buy");
    case OP_SELL     : return("Sell");
    case OP_BUYLIMIT : return("BuyLimit");
    case OP_SELLLIMIT: return("SellLimit");
    case OP_BUYSTOP  : return("BuyStop");
    case OP_SELLSTOP : return("SellStop");
    default          : return("Unknown Operation");
  }
}

color IIFc(bool condition, color ifTrue, color ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}

string IIFs(bool condition, string ifTrue, string ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}

void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0) {
  bool   fm;
  color  cl=IIFc(OrderType()==OP_BUY
              || OrderType()==OP_BUYLIMIT
              || OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
  double op, pa, pb, os, ot;
  int    dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;

  if (pp<=0) pp=OrderOpenPrice();
  if (sl<0 ) sl=OrderStopLoss();
  if (tp<0 ) tp=OrderTakeProfit();

  pp=NormalizeDouble(pp, dg);
  sl=NormalizeDouble(sl, dg);
  tp=NormalizeDouble(tp, dg);
  op=NormalizeDouble(OrderOpenPrice() , dg);
  os=NormalizeDouble(OrderStopLoss()  , dg);
  ot=NormalizeDouble(OrderTakeProfit(), dg);

  if (pp!=op || sl!=os || tp!=ot) {
    for (it=1; it<=NumberOfTry; it++) {
      if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
      while (!IsTradeAllowed()) Sleep(5000);
      RefreshRates();
      fm=OrderModify(OrderTicket(), pp, sl, tp, ex, cl);
      if (fm) {
        if (UseSound) PlaySound(SoundSuccess); break;
      } else {
        er=GetLastError();
        if (UseSound) PlaySound(SoundError);
        pa=MarketInfo(OrderSymbol(), MODE_ASK);
        pb=MarketInfo(OrderSymbol(), MODE_BID);
        Print("Error(",er,") modifying order: ",ErrorDescription(er),", try ",it);
        Print("Ask=",pa,"  Bid=",pb,"  sy=",OrderSymbol(),
              "  op="+GetNameOP(OrderType()),"  pp=",pp,"  sl=",sl,"  tp=",tp);
        Sleep(1000*10);
      }
    }
  }
}

void TrailingOrders() {
  double di, pa, pb, pp, sl, tp;

  pp=MarketInfo(OrderSymbol(), MODE_POINT);
  if (OrderType()==OP_SELLLIMIT) {
    pa=MarketInfo(OrderSymbol(), MODE_BID);
    if (OrderOpenPrice()-pa>(TrailingStop+TrailingStep-1)*pp) {
      di=OrderOpenPrice()-pa-TrailingStop*pp;
      if (OrderStopLoss()  >0) sl=OrderStopLoss()  -di; else sl=0;
      if (OrderTakeProfit()>0) tp=OrderTakeProfit()-di; else tp=0;
      ModifyOrder(pa+TrailingStop*pp, sl, tp);
    }
  }
  if (OrderType()==OP_BUYLIMIT) {
    pb=MarketInfo(OrderSymbol(), MODE_ASK);
    if (pb-OrderOpenPrice()>(TrailingStop+TrailingStep-1)*pp) {
      di=pb-OrderOpenPrice()-TrailingStop*pp;
      if (OrderStopLoss()  >0) sl=OrderStopLoss()  +di; else sl=0;
      if (OrderTakeProfit()>0) tp=OrderTakeProfit()+di; else tp=0;
      ModifyOrder(pb-TrailingStop*pp, sl, tp);
    }
  }
}

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

void OnTimer()
  {
   if(!IsTradeAllowed()) return;
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);

   OrdersBuyStop=(int)StringToInteger(ObjectGetString(0,"cm OrdersBuyStop",OBJPROP_TEXT));
   OrdersSellStop=(int)StringToInteger(ObjectGetString(0,"cm OrdersSellStop",OBJPROP_TEXT));
   OrdersBuyLimit=(int)StringToInteger(ObjectGetString(0,"cm OrdersBuyLimit",OBJPROP_TEXT));
   OrdersSellLimit=(int)StringToInteger(ObjectGetString(0,"cm OrdersSellLimit",OBJPROP_TEXT));

   FirstLevelStop=(int)StringToInteger(ObjectGetString(0,"cm FirstLevelStop",OBJPROP_TEXT));
   FirstLevelLimit=(int)StringToInteger(ObjectGetString(0,"cm FirstLevelLimit",OBJPROP_TEXT));
   StepBuyStop=(int)StringToInteger(ObjectGetString(0,"cm StepBuyStop",OBJPROP_TEXT));
   StepSellStop=(int)StringToInteger(ObjectGetString(0,"cm StepSellStop",OBJPROP_TEXT));
   StepBuyLimit=(int)StringToInteger(ObjectGetString(0,"cm StepBuyLimit",OBJPROP_TEXT));
   StepSellLimit=(int)StringToInteger(ObjectGetString(0,"cm StepSellLimit",OBJPROP_TEXT));

   CloseProfitB=StringToDouble(ObjectGetString(0,"cm CloseProfitB",OBJPROP_TEXT));
   CloseProfitS=StringToDouble(ObjectGetString(0,"cm CloseProfitS",OBJPROP_TEXT));
   ProfitClose=StringToDouble(ObjectGetString(0,"cm ProfitClose",OBJPROP_TEXT));
   TralStart=StringToDouble(ObjectGetString(0,"cm TralStart",OBJPROP_TEXT));
   TralClose=StringToDouble(ObjectGetString(0,"cm TralClose",OBJPROP_TEXT));

   Lot=StringToDouble(ObjectGetString(0,"cm Lot",OBJPROP_TEXT));
   LotPlus=StringToDouble(ObjectGetString(0,"cm LotPlus",OBJPROP_TEXT));
   K_Lot=StringToDouble(ObjectGetString(0,"cm K_Lot",OBJPROP_TEXT));
   TradeOFF=ObjectGetInteger(0,"cm off",OBJPROP_STATE);

   double OL,OOP,Profit=0,ProfitB=0,ProfitS=0;
   double OOPBS=0,OOPSS=0,OOPBL=0,OOPSL=0,OLBS=0,OLSS=0,OLBL=0,OLSL=0;
   int OTBS=0,OTSS=0,OTBL=0,OTSL=0;
   int Ticket,i,b=0,s=0,bs=0,ss=0,bl=0,sl=0,tip;
   for(i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && (Magic==-1 || Magic==OrderMagicNumber()))
           {
            tip = OrderType();
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            Profit=OrderProfit()+OrderSwap()+OrderCommission();
            Ticket=OrderTicket();
            OL=OrderLots();
            if(tip==OP_BUY)
              {
               ProfitB+=Profit;
               b++;
              }
            if(tip==OP_SELL)
              {
               ProfitS+=Profit;
               s++;
              }
            if(tip==OP_BUYSTOP)
              {
               if(OOPBS<OOP) {OOPBS=OOP;OTBS=Ticket;OLBS=OL;}
               bs++;
              }
            if(tip==OP_SELLSTOP)
              {
               if(OOPSS>OOP || OOPSS==0) {OOPSS=OOP;OTSS=Ticket;OLSS=OL;}
               ss++;
              }
            if(tip==OP_BUYLIMIT)
              {
               if(OOPBL>OOP || OOPBL==0) {OOPBL=OOP;OTBL=Ticket;OLBL=OL;}
               bl++;
              }
            if(tip==OP_SELLLIMIT)
              {
               if(OOPSL<OOP) {OOPSL=OOP;OTSL=Ticket;OLSL=OL;}
               sl++;
              }
           }
        }
     }
   Profit=ProfitB+ProfitS;
   ObjectSetString(0,"cm Close Buy",OBJPROP_TEXT,StringConcatenate("CloseBuy ",DoubleToStr(ProfitB,2)));
   ObjectSetString(0,"cm Close Sell",OBJPROP_TEXT,StringConcatenate("CloseSell ",DoubleToStr(ProfitS,2)));
   ObjectSetString(0,"cm Close",OBJPROP_TEXT,StringConcatenate("Close ",DoubleToStr(Profit,2)));
   ObjectSetInteger(0,"cm Close Buy",OBJPROP_COLOR,Color(ProfitB));
   ObjectSetInteger(0,"cm Close Sell",OBJPROP_COLOR,Color(ProfitS));
   ObjectSetInteger(0,"cm Close",OBJPROP_COLOR,Color(Profit));

   ObjectSetString(0,"cm Buy Stop",OBJPROP_TEXT,StringConcatenate("BuyStop ",bs));
   ObjectSetString(0,"cm Sell Stop",OBJPROP_TEXT,StringConcatenate("SellStop ",ss));
   ObjectSetString(0,"cm Buy Limit",OBJPROP_TEXT,StringConcatenate("BuyLimit ",bl));
   ObjectSetString(0,"cm Sell Limit",OBJPROP_TEXT,StringConcatenate("SellLimit ",sl));

   if(ObjectGetInteger(0,"cm Clear",OBJPROP_STATE))
     {
      ObjectsDeleteAll(0,OBJ_TEXT);
      ObjectsDeleteAll(0,"#");
      ObjectsDeleteAll(0,OBJ_ARROW);
      ObjectsDeleteAll(0,OBJ_TREND);
      ObjectSetInteger(0,"cm Clear",OBJPROP_STATE,false);
     }

   if(ObjectGetInteger(0,"cm Close Buy A",OBJPROP_STATE))
     {
      GlobalVariableSet(GV_kn_CBA,1);
      ObjectSetInteger(0,"cm CloseProfitB",OBJPROP_COLOR,clrRed);
      if(b!=0 && ProfitB>=CloseProfitB) ObjectSetInteger(0,"cm Close Buy",OBJPROP_STATE,true);
     }
   else {ObjectSetInteger(0,"cm CloseProfitB",OBJPROP_COLOR,clrLightGray);GlobalVariableDel(GV_kn_CBA);}
   if(ObjectGetInteger(0,"cm Close Buy",OBJPROP_STATE))
     {
      if(b!=0) if(!CloseAll(OP_BUY)) Print("Error Order Close ",GetLastError());
      else
        {
         if(TradeOFF) ObjectSetInteger(0,"cm Buy Stop",OBJPROP_STATE,false);
         if(TradeOFF) ObjectSetInteger(0,"cm Buy Limit",OBJPROP_STATE,false);
         ObjectSetInteger(0,"cm Close Buy",OBJPROP_STATE,false);
        }
     }

   if(ObjectGetInteger(0,"cm Close Sell A",OBJPROP_STATE))
     {
      GlobalVariableSet(GV_kn_CSA,1);
      ObjectSetInteger(0,"cm CloseProfitS",OBJPROP_COLOR,clrRed);
      if(s!=0 && ProfitS>=CloseProfitS) ObjectSetInteger(0,"cm Close Sell",OBJPROP_STATE,true);
     }
   else {ObjectSetInteger(0,"cm CloseProfitS",OBJPROP_COLOR,clrLightGray);GlobalVariableDel(GV_kn_CSA);}
   if(ObjectGetInteger(0,"cm Close Sell",OBJPROP_STATE))
     {
      if(s!=0) if(!CloseAll(OP_SELL)) Print("Error Order Close ",GetLastError());
      else
        {
         if(TradeOFF) ObjectSetInteger(0,"cm Sell Stop",OBJPROP_STATE,false);
         if(TradeOFF) ObjectSetInteger(0,"cm Sell Limit",OBJPROP_STATE,false);
         ObjectSetInteger(0,"cm Close Sell",OBJPROP_STATE,false);
        }
     }

   if(ObjectGetInteger(0,"cm Close A",OBJPROP_STATE))
     {
      GlobalVariableSet(GV_kn_CA,1);
      ObjectSetInteger(0,"cm ProfitClose",OBJPROP_COLOR,clrRed);
      if(b+s!=0 && Profit>=ProfitClose) ObjectSetInteger(0,"cm Close",OBJPROP_STATE,true);
     }
   else {ObjectSetInteger(0,"cm ProfitClose",OBJPROP_COLOR,clrLightGray);GlobalVariableDel(GV_kn_CA);}
   if(ObjectGetInteger(0,"cm Close",OBJPROP_STATE))
     {
      if(s+b!=0) if(!CloseByOrders()) Print("Error Order Close By ",GetLastError());
      else
        {
         if(TradeOFF) ObjectSetInteger(0,"cm Buy Stop",OBJPROP_STATE,false);
         if(TradeOFF) ObjectSetInteger(0,"cm Buy Limit",OBJPROP_STATE,false);
         if(TradeOFF) ObjectSetInteger(0,"cm Sell Stop",OBJPROP_STATE,false);
         if(TradeOFF) ObjectSetInteger(0,"cm Sell Limit",OBJPROP_STATE,fal

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

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

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

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

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

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

Стоимость полного кода
3 178,20₽ ≈ $38.84