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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.