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

Sunan Giri v2

sunan giri v2.mq4
Вы автор или правообладатель?

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

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

О программе

Sunan Giri v2 — торговый советник для MetaTrader 4, использующий комбинацию индикаторов Боллинджера, Стохастика и многофреймового Стохастика для генерации сигналов на открытие и закрытие позиций. Советник поддерживает направления BUY и SELL, позволяет настраивать фиксированный или рассчитанный по балансу размер лота, а также включает механизм усреднения позиций с настраиваемым множителем. В качестве защитных механизмов реализованы стоп-лосс, тейк-профит (в пунктах или в деньгах) и закрытие позиций по сигналу Стохастика. Советник работает в заданном временном окне, фильтрует сделки по magic number и отображает на графике панель с информацией об аккаунте, открытых позициях и текущих значениях индикаторов. Версия 2.0, автор — Victor Adhitya.

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

НастройкаОписание
blink Включает цветовую индикацию на панели с привязкой к секундам
JAM_ON Час начала разрешённого торгового окна
JAM_OFF Час окончания разрешённого торгового окна
CommentEA Текстовый комментарий, присваиваемый каждой открытой сделке
CLOSE_BY_STOCH Включает автоматическое закрытие позиций при развороте Стохастика из зоны перекупленности/перепроданности
parameteropen Заголовок раздела настроек открытия позиций
OPEN_BUY Разрешает открытие позиций BUY
OPEN_SELL Разрешает открытие позиций SELL
Compounding Включает расчёт размера лота пропорционально балансу аккаунта
Pembagi Делитель для расчёта размера лота от баланса при включённом компаундинге
FixLot Фиксированный размер лота при отключённом компаундинге
tp_in_money Прибыль в денежном эквиваленте, при достижении которой все позиции закрываются
TP Тейк-профит в пунктах для новых позиций
SL Стоп-лосс в пунктах для новых позиций
parameterave Заголовок раздела настроек усреднения
USE_MARTY Включает механизм усреднения позиций с нарастающим размером лота
PipStep Шаг в пунктах для добавления новой позиции при усреднении
multiplier Множитель размера лота при каждом уровне усреднения
Max_Level Максимальное количество уровней усреднения позиций
CEK_SIGNAL Сдвиг бара для расчёта основного торгового сигнала индикатора
INDI1 Название первого индикатора, используемого для формирования торговых сигналов
periodbb Периус расчёта полос Боллинджера
deviationbb Отклонение полос Боллинджера от средней линии
shiftbb Сдвиг полос Боллинджера
applytobb Применяемая цена для расчёта полос Боллинджера
INDI2 Название второго индикатора, используемого для формирования торговых сигналов
Kperiod Периус основной линии Стохастика
Dperiod Периус сигнальной линии Стохастика
slowing Параметр замедления расчёта Стохастика
pricefieldsto Поле цен для расчёта Стохастика
methodsto Метод скользящей средней для расчёта Стохастика
OS Уровень перепроданности Стохастика для определения сигнала на покупку
OB Уровень перекупленности Стохастика для определения сигнала на продажу
INDI3 Название третьего индикатора, используемого для многофреймовой фильтрации сигналов
TF1 Первый таймфрейм для многофреймовой фильтрации сигналов Стохастика
CEK_SIGNAL_TF1 Сдвиг бара для расчёта сигнала Стохастика на первом таймфрейме
TF2 Второй таймфрейм для многофреймовой фильтрации сигналов Стохастика
CEK_SIGNAL_TF2 Сдвиг бара для расчёта сигнала Стохастика на втором таймфрейме
TF3 Третий таймфрейм для многофреймовой фильтрации сигналов Стохастика
CEK_SIGNAL_TF3 Сдвиг бара для расчёта сигнала Стохастика на третьем таймфрейме
MagicNumber Идентификационный номер для фильтрации сделок советника
Получить полный код

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

#property strict
#define _VERSION_ "2.0"
#property version _VERSION_
double slbuy,slsell,tpbuy,tpsell;
color colorrek;
int ACCOUNT1  = 0;   //<===CHANGE NUMBER HERE

string EXPIRE = "9999.12.31";  //<=== CHANGE DATE FOR EXPIRED HERE,

extern bool blink = false;

extern int JAM_ON   = 0;
extern int JAM_OFF  =24;

extern string CommentEA = "EA Sunan Giri";

extern bool CLOSE_BY_STOCH = true;

extern string parameteropen    = "=====Parameter Open=====";
extern bool OPEN_BUY  = true;
extern bool OPEN_SELL = true; 
extern bool    Compounding             = true;
extern double  Pembagi                 = 100000;
double victor;
extern double FixLot  =0.1;

extern double tp_in_money = 5;

extern int TP  = 20;
extern int SL  = 0;

extern string parameterave    = "=====Parameter Averaging=====";
extern bool USE_MARTY = true;

extern int PipStep           = 20;
extern double multiplier     =  2;

extern int Max_Level          = 10;

extern int CEK_SIGNAL   = 1;
extern string INDI1     = "Bollinger";
extern int periodbb            = 20;
extern double deviationbb      = 2.0;
extern int shiftbb             = 0;
extern ENUM_APPLIED_PRICE applytobb = PRICE_CLOSE;

extern string INDI2 ="Stochastic";
extern int Kperiod=   5;
extern int Dperiod=   3;
extern int slowing=   3;
extern ENUM_STO_PRICE pricefieldsto  = STO_LOWHIGH;
extern ENUM_MA_METHOD methodsto      = MODE_SMA;

extern double OS = 30;
extern double OB = 70;

extern string INDI3 ="Multi TF Stochastic";

extern ENUM_TIMEFRAMES TF1 = PERIOD_M15;
extern int CEK_SIGNAL_TF1 = 0;

extern ENUM_TIMEFRAMES TF2 = PERIOD_M30;
extern int CEK_SIGNAL_TF2 = 0;

extern ENUM_TIMEFRAMES TF3 = PERIOD_H1;
extern int CEK_SIGNAL_TF3 = 0;

double lotsbuy = 0;
double lotssell= 0;

string kata_mutiara1="Urip mung sepisan, dadio seng manfaat marang liyane..";
string kata_mutiara2="Life is only once, be a person who is useful to others..";

extern int MagicNumber=123455;
int Slippage=3000;

int LOTS,x,f,g,h,k,y,z,jumlahbuy,jumlahbuylimit,jumlahselllimit,jumlahsell,jumlahbuystop,jumlahsellstop;
double BUY[99], SELL[99], BUYLIMIT[99], SELLLIMIT[99], BUYSTOP[99], SELLSTOP[99],BATAS;
int prec=0;
int a=0;
int b=0;
int c=0;
double pt,minlot,stoplevel;
int i;
double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);

color  FontColorUp1 = Red;  
color  FontColorDn1 = White; 
color  FontColor = Blue;
color  FontColorUp2 = Yellow;  
color  FontColorDn2 = Lime; 
color  FontUP = Lime;  
color  Font = White; 
color  FontDOWN = Red; 

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

int deinit()
  {
  ObjectsDeleteAll();

    ObjectDelete("Market_Price_Label1"); 
    ObjectDelete("Market_Price_Label2"); 
    ObjectDelete("Market_Price_Label3"); 
    ObjectDelete("Market_Price_Label4"); 
    ObjectDelete("Market_Price_Label5"); 
    ObjectDelete("Market_Price_Label6"); 
    ObjectDelete("Market_Price_Label7"); 
    ObjectDelete("Market_Price_Label8"); 
    ObjectDelete("Market_Price_Label9"); 
    ObjectDelete("Market_Price_Label10"); 
    ObjectDelete("Market_Price_Label11"); 
    ObjectDelete("Market_Price_Label12"); 
    ObjectDelete("Market_Price_Label13"); 
    ObjectDelete("Market_Price_Label14"); 
    ObjectDelete("Market_Price_Label15"); 
    ObjectDelete("Market_Price_Label16"); 
    ObjectDelete("Market_Price_Label17"); 
    ObjectDelete("Market_Price_Label18"); 
    ObjectDelete("Market_Price_Label19"); 
    ObjectDelete("Market_Price_Label20"); 
    ObjectDelete("Market_Price_Label21"); 
    ObjectDelete("Market_Price_Label22"); 
    ObjectDelete("Market_Price_Label23"); 
    ObjectDelete("Market_Price_Label24"); 
    ObjectDelete("Market_Price_Label25"); 
    ObjectDelete("Market_Price_Label26"); 
    ObjectDelete("Market_Price_Label27"); 
    ObjectDelete("Market_Price_Label28"); 
    ObjectDelete("Market_Price_Label29"); 
    ObjectDelete("Market_Price_Label30"); 
    ObjectDelete("Market_Price_Label31"); 
    ObjectDelete("Market_Price_Label32"); 
    ObjectDelete("Market_Price_Label33"); 
    ObjectDelete("Market_Price_Label34"); 
    ObjectDelete("Market_Price_Label35"); 
    ObjectDelete("Market_Price_Label36"); 
    ObjectDelete("Market_Price_Label37"); 
    ObjectDelete("Market_Price_Label38"); 
    ObjectDelete("Market_Price_Label39"); 
    ObjectDelete("Market_Price_Label40"); 
    ObjectDelete("Market_Price_Label41"); 
    ObjectDelete("Market_Price_Label42"); 
    ObjectDelete("Market_Price_Label43"); 
    ObjectDelete("Market_Price_Label44"); 
    ObjectDelete("Market_Price_Label45"); 
    ObjectDelete("Market_Price_Label46"); 
    ObjectDelete("Market_Price_Label47"); 
    ObjectDelete("Market_Price_Label48"); 
    ObjectDelete("Market_Price_Label49"); 
    ObjectDelete("Market_Price_Label50");

   return(0);
  }

void OnTick()
  {
      // код доступен только после оплаты
   }
   min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);  
if(Compounding ) 
   {
      victor=AccountBalance() / Pembagi;
      if (victor < min_volume)
         victor=min_volume;
   } 
else 
   {
      victor= FixLot;
      if (victor < min_volume)
         victor=min_volume;  
   } 

  if(TimeCurrent()<StrToTime(EXPIRE))
    {
    Comment("");
    }

    if(TimeCurrent()>=StrToTime(EXPIRE))
    {
    Comment("EA EXPIRED !!");
    ObjectsDeleteAll();

    }

  if(AccountNumber()!=ACCOUNT1  && ACCOUNT1 >0)
     {

     }

  if( (AccountNumber()==ACCOUNT1&&ACCOUNT1>0) || ACCOUNT1==0)
     {

y=0; f=0; g=0; h=0; k=0; z=0; jumlahbuy=0; jumlahsell=0; jumlahbuylimit=0; jumlahselllimit=0; jumlahsellstop=0; jumlahbuystop=0;
   for(x=0; x<OrdersTotal(); x++)
   {
      int check = OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol()!=Symbol()|| OrderMagicNumber()!=MagicNumber ) continue;
      if (OrderType()==OP_BUY)
      {  BUY[y] = OrderOpenPrice();
         y++;
         jumlahbuy++;
      }
      else
      if (OrderType()==OP_SELL)
      {  SELL[z] = OrderOpenPrice();
         z++;
         jumlahsell++;
      }
   else
      if (OrderType()==OP_BUYLIMIT)
      {  BUYLIMIT[f] = OrderOpenPrice();
         f++;
         jumlahbuylimit++;
      }
        else
      if (OrderType()==OP_SELLLIMIT)
      {  SELLLIMIT[g] = OrderOpenPrice();
         g++;
         jumlahselllimit++;
      }
       else
      if (OrderType()==OP_SELLSTOP)
      {  SELLSTOP[h] = OrderOpenPrice();
         h++;
         jumlahsellstop++;
      }
     else 
     if (OrderType()==OP_BUYSTOP)
      {  BUYSTOP[k] = OrderOpenPrice();
         k++;
         jumlahbuystop++;
      }

   }

double SPREAD = (Ask-Bid)/pt;

double floating = (AccountEquity()-AccountBalance())/AccountBalance()*100;

    string lastkomen="";
   for(i=0; i<OrdersHistoryTotal(); i++)
   {
      int check = OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber ) continue;
      lastkomen=OrderComment();
   }

   double lastlot=0;
   for(i=0; i<OrdersTotal(); i++)
   {
      int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber ) continue;
      lastlot=OrderLots();
   }

     double profit=0;
     double lotstotal=0;
   for(i=0; i<OrdersTotal(); i++)
   {
      int check=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber ) continue;
      profit+=(OrderProfit()+OrderCommission()+OrderSwap());
      lotstotal+=OrderLots();
   }

     double profitbuy    = 0;
     double lastlotbuy   = 0;
     double totallotbuy  = 0;
     double totalhargabuy= 0;
     double hargaratabuy = 0;
   for(i=0; i<OrdersTotal(); i++)
   {
      int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()==OP_SELL) continue;
      if(OrderType()==OP_BUY)
      {
      profitbuy+=(OrderProfit()+OrderCommission()+OrderSwap());
      lastlotbuy = OrderLots();
      totallotbuy+=OrderLots();
      totalhargabuy+=(OrderLots()*OrderOpenPrice());
      hargaratabuy= totalhargabuy/(totallotbuy);
      }
   }

     double profitsell    = 0;
     double lastlotsell   = 0;
     double totallotsell  = 0;
     double totalhargasell= 0;
     double hargaratasell = 0;
   for(i=0; i<OrdersTotal(); i++)
   {
      int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()==OP_BUY) continue;
      if(OrderType()==OP_SELL)
      {
      profitsell+=(OrderProfit()+OrderCommission()+OrderSwap());
      lastlotsell = OrderLots();
      totallotsell+=OrderLots();
      totalhargasell+=(OrderLots()*OrderOpenPrice());
      hargaratasell= totalhargasell/(totallotsell);
      }
   }

   {

    if (iOpen(Symbol(),0,0) > iOpen(Symbol(),0,1)) FontColor = FontColorUp1;
    if (iOpen(Symbol(),0,0)<  iOpen(Symbol(),0,1)) FontColor = FontColorDn1;
    if (iClose(Symbol(),0,0) > iClose(Symbol(),0,1) ) FontColor = FontColorUp2;
    if (iClose(Symbol(),0,0) < iClose(Symbol(),0,1) ) FontColor = FontColorDn2;
    if (Ask>iOpen(Symbol(),0,0)) Font=FontUP;
    if (Bid>iOpen(Symbol(),0,0)) Font=FontUP;
    if (Ask<iOpen(Symbol(),0,0)) Font=FontDOWN;
    if (Bid<iOpen(Symbol(),0,0)) Font=FontDOWN;

   }

double OPEN_DAILY    = iOpen(Symbol(),PERIOD_D1,0);

double CLOSE    = iClose(Symbol(),0,CEK_SIGNAL);
double  OPEN    =  iOpen(Symbol(),0,CEK_SIGNAL);

double  HIGH    = iHigh(Symbol(),0,CEK_SIGNAL);
double   LOW    =  iLow(Symbol(),0,CEK_SIGNAL);

double BULL = CLOSE>OPEN;
double BEAR = CLOSE<OPEN;
double FLAT = CLOSE==OPEN;

string textcandle = "wait";
color colorcandle = clrWhite;
if(BULL)
{
   textcandle = "BULL";
   colorcandle= clrLime;
}
if(BEAR)
{
   textcandle = "BEAR";
   colorcandle= clrRed;
}
if(FLAT)
{
   textcandle = "BULL";
   colorcandle= clrYellow;
}

double CLOSE_LAMA   = iClose(Symbol(),0,CEK_SIGNAL+1);

double BBAND_ATAS =iBands(Symbol(),0,periodbb,deviationbb,shiftbb,applytobb,MODE_UPPER,CEK_SIGNAL);
double BBAND_BAWAH=iBands(Symbol(),0,periodbb,deviationbb,shiftbb,applytobb,MODE_LOWER,CEK_SIGNAL);

double BBAND_MIDDLE = (BBAND_ATAS+BBAND_BAWAH)/2;

double BBAND_ATAS_LAMA =iBands(Symbol(),0,periodbb,deviationbb,shiftbb,applytobb,MODE_UPPER,CEK_SIGNAL+1);
double BBAND_BAWAH_LAMA=iBands(Symbol(),0,periodbb,deviationbb,shiftbb,applytobb,MODE_LOWER,CEK_SIGNAL+1);

double STOCH        =iStochastic(Symbol(),0,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_MAIN,CEK_SIGNAL  );
double STOCH_LAMA   =iStochastic(Symbol(),0,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_MAIN,CEK_SIGNAL+1);

double SIGNAL        =iStochastic(Symbol(),0,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_SIGNAL,CEK_SIGNAL  );
double SIGNAL_LAMA   =iStochastic(Symbol(),0,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_SIGNAL,CEK_SIGNAL+1);

double STOCH1        =iStochastic(Symbol(),TF1,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_MAIN,CEK_SIGNAL_TF1);
double STOCH2        =iStochastic(Symbol(),TF2,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_MAIN,CEK_SIGNAL_TF2);
double STOCH3        =iStochastic(Symbol(),TF3,Kperiod,Dperiod,slowing,methodsto,pricefieldsto,MODE_MAIN,CEK_SIGNAL_TF3);

string texttf1 = "wait";
if(TF1==PERIOD_M1 ) texttf1="M1";
if(TF1==PERIOD_M5 ) texttf1="M5";
if(TF1==PERIOD_M15) texttf1="M15";
if(TF1==PERIOD_M30) texttf1="M30";
if(TF1==PERIOD_H1 ) texttf1="H1";
if(TF1==PERIOD_H4 ) texttf1="H4";
if(TF1==PERIOD_D1 ) texttf1="D1";
if(TF1==PERIOD_W1 ) texttf1="W1";
if(TF1==PERIOD_MN1) texttf1="MN1";

string texttf2 = "wait";
if(TF2==PERIOD_M1 ) texttf2="M1";
if(TF2==PERIOD_M5 ) texttf2="M5";
if(TF2==PERIOD_M15) texttf2="M15";
if(TF2==PERIOD_M30) texttf2="M30";
if(TF2==PERIOD_H1 ) texttf2="H1";
if(TF2==PERIOD_H4 ) texttf2="H4";
if(TF2==PERIOD_D1 ) texttf2="D1";
if(TF2==PERIOD_W1 ) texttf2="W1";
if(TF2==PERIOD_MN1) texttf2="MN1";

string texttf3 = "wait";
if(TF3==PERIOD_M1 ) texttf3="M1";
if(TF3==PERIOD_M5 ) texttf3="M5";
if(TF3==PERIOD_M15) texttf3="M15";
if(TF3==PERIOD_M30) texttf3="M30";
if(TF3==PERIOD_H1 ) texttf3="H1";
if(TF3==PERIOD_H4 ) texttf3="H4";
if(TF3==PERIOD_D1 ) texttf3="D1";
if(TF3==PERIOD_W1 ) texttf3="W1";
if(TF3==PERIOD_MN1) texttf3="MN1";

color color1 = clrWhite;
string text1 = "wait";
if(STOCH1<=OS) 
{
color1 = clrLime;
text1  = "OS";
}
if(STOCH1>=OB) 
{
color1 = clrOrangeRed;
text1  = "OB";
}

color color2 = clrWhite;
string text2 = "wait";
if(STOCH2<=OS) 
{
color2 = clrLime;
text2  = "OS";
}
if(STOCH2>=OB) 
{
color2 = clrOrangeRed;
text2  = "OB";
}

color color3 = clrWhite;
string text3 = "wait";
if(STOCH3<=OS) 
{
color3 = clrLime;
text3  = "OS";
}
if(STOCH3>=OB) 
{
color3 = clrOrangeRed;
text3  = "OB";
}

double HOKI_BUY   = CLOSE_LAMA>BBAND_BAWAH_LAMA && LOW<=BBAND_BAWAH &&
                    STOCH <= OS &&
                    text1=="OS" && text2=="OS" && text3=="OS" &&
                    STOCH>0 && STOCH1>0 && STOCH2>0 && STOCH3>0 && LOW>0 && BBAND_BAWAH>0;

double HOKI_SELL  = CLOSE_LAMA<BBAND_ATAS_LAMA && HIGH>=BBAND_ATAS &&
                    STOCH >= OB &&
                    text1=="OB" && text2=="OB" && text3=="OB" &&
                    STOCH>0 && STOCH1>0 && STOCH2>0 && STOCH3>0 && HIGH>0 && BBAND_ATAS>0;

{
if(jumlahbuy==0)        lotsbuy  = victor;
if(jumlahbuy> 0)        lotsbuy  = NormalizeDouble(lastlotbuy*multiplier,2);

if(jumlahsell==0)        lotssell  = victor;
if(jumlahsell> 0)        lotssell  = NormalizeDouble(lastlotsell*multiplier,2);
}

  if( Hour()>= (JAM_ON) && Hour()< (JAM_OFF) )
{

  if(jumlahbuy+jumlahsell==0)
  {
    if (OPEN_BUY && HOKI_BUY && bNewBar1())        
       {
            min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
            max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);         
            if (victor < min_volume)
               victor=min_volume;  
            if(CheckMoneyForTrade(Symbol(), victor,OP_BUY))     
               double snd = OrderSend(Symbol(),OP_BUY,victor,Ask,Slippage,0,0,CommentEA,MagicNumber,0,clrBlue);
            }                 
    if (OPEN_SELL && HOKI_SELL && bNewBar2())
        {
            min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
            max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);          
            if (victor < min_volume)
               victor=min_volume;
            if(CheckMoneyForTrade(Symbol(), victor,OP_SELL))            
               double snd = OrderSend(Symbol(),OP_SELL,victor,Bid,Slippage,0,0,CommentEA,MagicNumber,0,clrRed);
           } 
 }

 if(USE_MARTY==true)
   {
   int max_allowed_orders=(int)AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
if (jumlahbuy>0 && BUY[jumlahbuy-1]-Ask>=PipStep*pt && jumlahbuy<Max_Level && OPEN_BUY &&jumlahbuy<max_allowed_orders)//buy
         {
            min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
            max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);         
            if (lastlotbuy>max_volume) lastlotbuy=max_volume;
            if (lastlotbuy<min_volume) lastlotbuy=min_volume;
            if(CheckMoneyForTrade(Symbol(), NormalizeDouble(lastlotbuy*multiplier,2),OP_BUY)) 
               double snd = OrderSend(Symbol(),OP_BUY,NormalizeDouble(lastlotbuy*multiplier,2),Ask,Slippage,0,0,CommentEA,MagicNumber,0,clrBlue);
          }
if (jumlahsell>0 && Bid-SELL[jumlahsell-1]>=PipStep*pt && jumlahsell<Max_Level && OPEN_SELL &&jumlahsell<max_allowed_orders)//sell
         {
            min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
            max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);          
            if (lastlotsell>max_volume) lastlotsell=max_volume;
            if (lastlotsell<min_volume) lastlotsell=min_volume;
            if(CheckMoneyForTrade(Symbol(), NormalizeDouble(lastlotsell*multiplier,2),OP_SELL)) 
               double snd = OrderSend(Symbol(),OP_SELL,NormalizeDouble(lastlotsell*multiplier,2),Bid,Slippage,0,0,CommentEA,MagicNumber,0,clrRed);
          }
    }     

   }

     if(tp_in_money>0)
   {
    if( profit>tp_in_money || a>0) 
   {
      closeall();
      closeall();
      closeall();
      a++;
      if(total()==0) a=0;
   }

  }

 if(CLOSE_BY_STOCH==true)
 {
  if(jumlahbuy>0 && text1=="OB"&&text2=="OB"&&text3=="OB")
  {
     closeallbuy();
     closeallbuy();
     closeallbuy();
  }
 if(jumlahsell>0 && text1=="OS"&&text2=="OS"&&text3=="OS")
  {
     closeallsell();
     closeallsell();
     closeallsell();
  }

  }

     for(i=OrdersTotal()-1; i>=0; i--)
     {
       double check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()>1||OrderType()==OP_SELL) continue;
       if(OrderType()==OP_BUY && jumlahbuy==1)
       {

 if(SL>0)
 { 
int stops_level=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL); 
bool SL_checkbuy=(Bid-SL>stops_level*_Point); 
bool SL_checksell=(SL-Ask>stops_level*_Point);
bool TP_checkbuy=(TP-Bid>stops_level*_Point);
bool TP_checksell=(Ask-TP>stops_level*_Point);
if (SL_checkbuy)slbuy = OrderOpenPrice() -SL*pt;
if(SL_checksell)slsell= OrderOpenPrice() +SL*pt;
 }
 if(SL==0)
 { 
slbuy =0;
slsell=0;
 }
 if(TP>0)
 {
   int stops_level=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL); 
   bool TP_checkbuy=(TP-Bid>stops_level*_Point);
   bool TP_checksell=(Ask-TP>stops_level*_Point); 
   if (TP_checkbuy)tpbuy = OrderOpenPrice() +TP*pt;
   if (TP_checksell)tpsell= OrderOpenPrice() -TP*pt;
}
if(TP==0)
 {
tpbuy =0;
tpsell=0;
}

          if((OrderStopLoss()==0 && SL>0)||(OrderTakeProfit()==0 && TP>0))
          {
            if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),slbuy,tpbuy))
               double mod = OrderModify(OrderTicket(),OrderOpenPrice(),slbuy,tpbuy,0,CLR_NONE);
          }

       }
     }

     for(i=OrdersTotal()-1; i>=0; i--)
     {
       int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()>1||OrderType()==OP_BUY) continue;
       if(OrderType()==OP_SELL && jumlahsell==1)
       {

 if(SL>0)
 { 
  slbuy = OrderOpenPrice() -SL*pt;
  slsell= OrderOpenPrice() +SL*pt;
 }
 if(SL==0)
 { 
slbuy =0;
slsell=0;
 }
 if(TP>0)
 {
  tpbuy = OrderOpenPrice() +TP*pt;
  tpsell= OrderOpenPrice() -TP*pt;
}
if(TP==0)
 {
tpbuy =0;
tpsell=0;
}

          if((OrderStopLoss()==0 && SL>0)||(OrderTakeProfit()==0 && TP>0))
          {
            if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),slsell,tpsell))
               double mod = OrderModify(OrderTicket(),OrderOpenPrice(),slsell,tpsell,0,CLR_NONE);
          }

       }
     }

{
  if(jumlahbuy>0 && hargaratabuy>0)
  {

  {
     double s_lbuy=0, t_pbuy=0;
     for(i=0; i<OrdersTotal(); i++)
     {
         int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()>1||OrderType()==OP_SELL) continue;
         if (OrderType()==OP_BUY)
         if(SL>0)
         {
         s_lbuy=hargaratabuy-SL*pt;
         }
         if(SL==0)
         {
         s_lbuy=0;
         }
         if(TP>0)
         {
         t_pbuy=hargaratabuy+TP*pt;
         }
          if(TP==0)
         {
         t_pbuy=0;
         }
     }

     for(i=OrdersTotal()-1; i>=0; i--)
     {
       int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()>1||OrderType()==OP_SELL) continue;
       if(OrderType()==OP_BUY)
       {
          if(
            (NormalizeDouble(OrderStopLoss()  ,Digits)!=NormalizeDouble(s_lbuy,Digits) && SL>0)||
            (NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(t_pbuy,Digits) && TP>0)
            )
          {
            if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),NormalizeDouble(s_lbuy,Digits),NormalizeDouble(t_pbuy,Digits)))
               double mod = OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(s_lbuy,Digits),NormalizeDouble(t_pbuy,Digits),0,CLR_NONE);
          }
       }
     }
   }
   }

   if(jumlahsell>0 && hargaratasell>0)
   {

  {
     double s_lsell=0, t_psell=0;
     for(i=0; i<OrdersTotal(); i++)
     {
         int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()>1||OrderType()==OP_BUY) continue;
         if (OrderType()==OP_SELL)
         if(SL>0)
         {
         s_lsell=hargaratasell+SL*pt;
         }
         if(SL==0)
         {
         s_lsell=0;
         }
         if(TP>0)
         {
         t_psell=hargaratasell-TP*pt;
         }
          if(TP==0)
         {
         t_psell=0;
         }
     }

     for(i=OrdersTotal()-1; i>=0; i--)
     {

       int check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()>1||OrderType()==OP_BUY) continue;
       if(OrderType()==OP_SELL)
       {
           if(
            (NormalizeDouble(OrderStopLoss()  ,Digits)!=NormalizeDouble(s_lsell,Digits) && SL>0)||
            (NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(t_psell,Digits) && TP>0)
            )
          {
            if(OrderModifyCheck(OrderTicket(),OrderOpenPrice(),NormalizeDouble(s_lsell,Digits),NormalizeDouble(t_psell,Digits)))
               double mod= OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(s_lsell,Digits),NormalizeDouble(t_psell,Digits),0,CLR_NONE);
          }
       }
     }
   }       
   }

   }

  if(blink==true)
  {
   if(Seconds()==0)        colorrek=clrYellow;
   if(Seconds()==1)        colorrek=clrYellowGreen;
   if(Seconds()==2)        colorrek=clrAliceBlue;
   if(Seconds()==3)        colorrek=clrAzure;
   if(Seconds()==4)        colorrek=clrAntiqueWhite;
   if(Seconds()==5)        colorrek=clrAqua;
   if(Seconds()==6)        colorrek=clrBeige;
   if(Seconds()==7)        colorrek=clrBlanchedAlmond;
   if(S

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

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

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

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

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

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

Стоимость полного кода
3 392₽ ≈ $41.46