Orders Execution
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
exp_Lego_3
//+-------------------------------------------------------------------+
//| Build_Own_Strategy!.mq4 |
//| © 2007 v0 - AutoGrapf.dp.ua | // It was shared for MQL4 book. So, there are no any reserved copyrights except open source since beginning.
//| v1 2010 Seletsky R.V. | // Also shared
//| v2,v3 AnonymousMMMMMMMMMI| // All are shared.
//+-------------------------------------------------------------------+
//-----------------------------------------------------------------------------------------------------------+
// Èíñòðóêöèÿ ïî ïðèìåíåíèþ |
//------------------------------------------------------------------------------------------------------ 1 --+
// Òðåòüÿ âåðñèÿ ñîâåòíèêà "Ïîñòàâü ñâîþ ñòðàòåãèþ!". Îïèñàíåå - ëåâåå, â êàâû÷êàõ :)
// Ôóíêöèè: 16+1 èíäèêàòîðîâ,
// Ñ Â Î É Ñ Ò Â À
// Âñå èíäèêàòîðû ðàáîòàþò ïî "ïðîñòîìó ïðèíöèïó" - íàïðèìåð, ñòîõàñòèê "ïî ïðîñòîìó" äà¸ò ñèãíàë íà ïîêóïêó ïðè çàøêàëèâàíèè çà 80;
// à íà ïðîäàæó - ïðè ïàäåíèè íèæå 20; OsMA ñèãíàëèò î ïîêóïêå è ïðîäàæå, åñëè âèñèò âûøå è íèæå íóëåâîé ëèíèè ñîîòâåòñòâåííî;
// â îáùåì - âñå íàñòðîéêè "ïðîñòûå", äàæå "ïðèìèòèâíûå".
// Òàêæå, âîçìîæíà óñòàíîâêà ñâîèõ ïîëüçîâàòåëüñêèõ èíäèêàòîðîâ (êîòîðûå â áîëüøèíñòâå ñëó÷àåâ "óæå íàñòðîåíû")
// Ï Ð Å Ä Í À Ç Í À × Å Í È Å
// Ðàçðàáîòàíà äàííàÿ âåøü äëÿ óìåþùèõ èíòóèòèâíî ìåíÿòü êîä, òî åñòü äëÿ òåõ, êòî íå çíàåò MQL4, íî óìååò ðàáîòàòü ñ C++ èëè Pascal.
// Ò.å. çíàåò øêîëüíóþ èíôîðìàòèêó.
// Ï Ð Î Á Ë Å Ì Û
// Ê ñîæàëåíèþ, ó ìåíÿ íå õâàòàåò çíàíèé íà óñòàíîâêó âíóòðü õîòÿ áû
// Ñ äðóãîé ñòîðîíû, âû âñåãäà ìîæåòå èñïîëüçîâàòü ñâîè ëþáèìûå èíäèêàòîðû. Ïðîáëåìà â òîì, ÷òî ÿ íèêàê íå ñìîã âñòàèòü äàæå
// ïðîñòåíüêèé OrderModify äëÿ ñòîï-ìåíåäæìåíòà â ñòèëå "îäèí âûõîä íà ïèêå, äðóãîé - ïî òðàëó" èëè ïî ïðèíöèïó "äâà îòäåëüíûõ ñòîï-ëîññà".
// Îñîáåííîñòè, çàëîæåííûå â êîíñòðóêöèþ åù¸ äî ìåíÿ.
// Êîïèðàéòû - ñâîáîäíûé äîñòóï.
//Òàê êàê ýòî MQL4.com, òî ìîæåòå äåëàòü ÷òî õî÷åòñÿ.
// Íî òîëüêî íå çàáûâàéòå çäåñü äåëèòüñÿ íåêîòîðûìè íàðàáîòêàìè
// È ïîñëåäíåå. Êòî-íèáóäü, ïîñòàüòå ìíå â êîä ôóíêöèþ "òðàëà" è "áåçóáûòêà"!
// Áèáëèîòåêà òðàëèíãà ïðèëàãàåòñÿ, íî ÿ íå çíàþ, ÷òî äåëàòü...
//--------------------------------------------------------------------------------------------------
//-----------------Paramethers---------------------------------------------------------- 1 --------
extern string Instructsia = "... is in code-to comments";
extern string Obshie_Parametrii = "---- Obshie_Parametrii ---- ";
extern double StopLoss =0; // StopLoss
extern double TakeProfit =0; // ÒakeÐrofit.
extern double Slippage = 2; // Slippage. /Ïðîñêàëüçûâàíèå.
extern string ID_of_EA = "Îíî æå MagicNumber, îíî æå íîìåðíîé çíàê";
extern double __ID_of_EA = 219249; // ZIGZAG æå. "Çàâîäñêîé èäåíòèôèêàòîð"
extern string Block_of_Stakes = "---- Stake tuning ----";
extern string Bl_1 = "1 - FixLot, 2 - Martigail, 3 - Percental";
extern string Bl_2 = "Ìàðòèí-à æä¸ò íîâîé ñäåëêè, à íå ïåðåáèâàåò ñòàðóþ";
extern string Bl_3 = "IK is a miltiplies for Martingail-taktic";
extern double StakeMode =1; //
extern double Lts1 =0.1; // Fixlot
extern double IK =2; // Multiplying Lts1 * IK (if the previous deal was fail). Normally, Martingail is ThisDealLots = PrevDealLots * 2, so...
extern double Percents =5; //
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
extern bool AllPositions = true; // Âñå ïîçèöèè èëè âûáðàííîå çíà÷åíèå
extern bool ProfitTrailing = true; // Òðàë ñ ïðîôèòà èëè ñ íà÷àëà
extern int TrailingStop = 30; // Óðîâåíü
extern int TrailingStep = 1; // Øàã
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
extern string ATR = "---- ---- ---- ----";
extern string ATRovo = "ATR ìîæíî èñïîëüçîâàòü äëÿ óñòàíîâêè TP è SL."; // Actually, never tuned by me properly.
extern string _prednaznachenie_ = "ATR_Multiply íàñòðàèâàåò ìíîæèòåëü ÷óâñòâèòåëüíîñòè";
extern string __eto___________ = "Íàïðèìåð, åñëè Multiply=0.9, òî ðåàêöèÿ - 0.9 ïèïñîâ íà 0.0001 ATR";
extern double ATR_Period =14;
extern double ATR_Multiply = 0.9;
extern double ATR_Reach =0.0014;
extern bool ATR_SL = false;
extern bool ATR_TP = false;
// Do not want more...
extern string Implemented_Indicators = "Çàâîäñêèå èíäèêàòîðû";
extern string Dont_earse = "Êàæäûé íàõîäèòñÿ ïî êîìàíäå Ctlr+F";
extern string WARNING1 = "ÑÂÎÉÑÒÂÀ ÈÍÄÈÊÀÒÎÐÀ ÍÀÑÒÐÀÈÂÀÞÒÑß Â ÊÎÍÑÎËÈ";
extern string WARNING2 = "ÓÁÅÄÈÒÅÑÜ, ×ÒÎ ÈÍÄÈÊÀÒÎÐÛ ÏÎÑÒÀÂËÅÍÛ ÏÐÀÂÈËÜÍÎ";
extern string WARNING3 = "ÈÍÀ×Å ÑÒÐÀÒÅÃÈß ÁÓÄÅÒ ÈÑÏÎÐ×ÅÍÀ";
extern string The_List_Of = " Êîíñîëü òðåáóåò íåáîëüøîãî êîäåðñêîãî ÷óòüÿ èëè ïîìîùè";
extern string Two_ÌÀs_Cross = "---- ----";
extern bool otkr_MA =false;
extern bool zakr_MA =false; // Ïåðåñå÷åíèå äâóõ ñêîëüçÿùèõ. Ïðÿìî êàê MACD.
extern double MA1 =4;
extern double MA2 =67;
extern double Shift_ma =1; // Øèôò - ýòî áàð, íà êîòîðûé îïèðàåòñÿ ñîâåòíèê. 1 - ñâåæåçàêðûâøèéñÿ, 0 - òåêóùèé, 3 - òðè ñâå÷è íàçàä...
extern double MA_sort_avoidit=0; //0 - Simple, 1 - Expotential, 2 - Smoothed, 3 - Linear Weighed
extern string Stochastic = "---- ----";
extern bool otkr_Stoh =false;
extern bool zakr_Stoh =false;
extern double per_K=5;
extern double per_D=3;
extern double slow=3;
extern double zoneBUY=20;
extern double zoneSELL=80; //Ñòàðàÿ òåìà - íèêòî íå ëþáèò íàñòðàèâàòü óðîâíè ïî îòäåëüíîñòè.
extern string Awesome = "---- ----";
extern bool otkr_AO =false;
extern bool zakr_AO =false;
extern string Fractals = "---- ----";
extern bool otkr_Fractals =false;
extern bool zakr_Fractals =false;
extern string Accelerator = "---- ---- ";
extern bool otkr_AC =false;
extern bool zakr_AC =false;
extern string Demarker = "---- ---- ";
extern bool otkr_Dema =false;
extern bool zakr_Dema =false;
extern double DeMa_period=14;
extern double niz_ur=0.3;
extern double verx_ur=0.7;
extern string CCI = "---- ---- ";
extern bool otkr_CCI =false;
extern bool zakr_CCI =false;
extern double CCI_period=14;
extern double CCI_Level=100; // What, if we want 95?
extern string RSI = "RSI óäîáíåå âñ¸-òàêè íàñòðàèâàòü òàê, êàê åñòü.";
extern bool otkr_RSI =false;
extern bool zakr_RSI =false;
extern double RSI_Period =14;
extern double RSI_High=70;
extern double RSI_Low=30;
extern string MACD = "---- ---- ";
extern bool otkr_MACD =false;
extern bool zakr_MACD =false;
extern double MACD_Fast=9;
extern double MACD_Slow=26; // MACD uses SIGNAL line
extern double MACD_Signal=14; // because you have 2 MA Cross system
extern string OsMA = "---- ---- ";
extern bool otkr_OsMA =false;
extern bool zakr_OsMA =false;
extern double OsMA_Fast=9;
extern double OsMA_Slow=26; // SIGNAL line (Well, you can also try Zignal.com as a platform - expenseful lux look is a sort of guaranty. Yes, I've made an ad here - Anon MMMMMMMMMI)
extern double OsMA_Signal=14; // because you have 2 MA Cross system
extern string WPR = "Ýòî çíà÷èò Williams Percent Range";
extern bool otkr_WPR = false;
extern bool zakr_WPR = false;
extern double WPR_Period = 14;
extern double WPR_Shift = 0;
extern string MoneyFlow_aka_MFI= "---- ---- ";
extern bool otkr_MFI = false;
extern bool zakr_MFI = false;
extern double MFI_Period=14;
extern double MFI_High =70;
extern double MFI_Low =30;
extern string ADX = "ADX Main Line, óðîâíè - 30 è 70";
extern bool otkr_ADX = false;
extern bool zakr_ADX = false;
extern double ADX_Period=14;
extern string SAR = "---- ---- ";
extern bool otkr_SAR = false;
extern bool zakr_SAR = false;
extern double SAR_Step =0.02;
extern double SAR_MaxStep =0.2;
extern string Custom_Indicators = "Ïîëüçîâàòåëüñêèå èíäèêàòîðû";
extern string Custom_Indicator1 = "Ïðåäïîëàãàåòñÿ, ÷òî îíè íàñòðîåíû ÷åðåç ðåäàêòèðîâíàèå êîäà.";
extern bool otkr_Custom_1 = false;
extern bool zakr_Custom_1 = false;
//extern double Period1 =4; //  ýòîé âåðñèè îòêëþ÷åíî.
//extern double Shift1 =3;
extern string Custom_Indicator2 = "----";
extern bool otkr_Custom_2 = false;
extern bool zakr_Custom_2 = false;
//extern double Period2 =4;
//extern double Shift2 =3;
extern string Custom_Indicator3 = "----";
extern bool otkr_Custom_3 = false;
extern bool zakr_Custom_3 = false;
//extern double Period3 =4;
//extern double Shift3 =3;
extern string Custom_Indicator4 = "----";
extern bool otkr_Custom_4 = false;
extern bool zakr_Custom_4 = false;
// extern double Period4 =4;
// extern double Shift4 =3;
// extern string Custom_Indicator5 = "----";
// extern bool otkr_Custom_5 = false;
// extern bool zakr_Custom_5 = false;
// extern double Period5 =4;
// extern double Shift5 =3;
// extern string Custom_Indicator6 = "----";
// extern bool otkr_Custom_6 = false;
// extern double Period6 =4;
// extern double Shift6 =3;
// extern string Custom_Indicator7 = "----";
// extern bool otkr_Custom_7 = false;
// extern bool zakr_Custom_7 = false;
// extern double Period7 =4;
// extern double Shift7 =3;
// extern string Custom_Indicator8 = "----";
// extern bool otkr_Custom_8 = false;
// extern bool zakr_Custom_8 = false;
// extern double Period8 =4;
// extern double Shift8 =3;
// extern string Custom_Indicator9 = "----";
// extern bool otkr_Custom_9 = false;
// extern bool zakr_Custom_9 = false;
// extern double Period9 =4;
// extern double Shift9 =3;
// extern string Custom_Indicator10 = "----";
// extern bool otkr_Custom_10= false;
// extern bool zakr_Custom_10= false;
// extern double Period10 =4;
// extern double Shift10 =3;
// extern string Custom_Indicator11 = "----";
// extern bool otkr_Custom_11= false;
// extern bool zakr_Custom_11= false;
// extern double Period11 =4;
// extern double Shift11 =3;
// extern string Custom_Indicator12 = "----";
// extern bool otkr_Custom_12= false;
// extern bool zakr_Custom_12= false;
// extern double Period12 =4;
// extern double Shift12 =3;
// extern string Custom_Indicator13 = "----";
// extern bool otkr_Custom_13= false;
// extern bool zakr_Custom_13= false;
// extern double Period13 =4;
// extern double Shift13 =3;
// extern string Custom_Indicator14 = "----";
// extern bool otkr_Custom_14= false;
// extern bool zakr_Custom_14= false;
// extern double Period14 =4;
// extern double Shift14 =3;
// extern string Custom_Indicator15 = "----";
// extern bool otkr_Custom_15= false;
// extern bool zakr_Custom_15= false;
// extern double Period15 =4;
// extern double Shift15 =3;
// extern string Custom_Indicator16 = "----";
// extern bool otkr_Custom_16= false;
// extern bool zakr_Custom_16= false;
// extern double Period16 =4;
// extern double Shift16 =3;
bool Work=true;
bool OrderSal;
string Symb; // Èìÿ ïàðû (íàïðèìåð - EURUSD)
//xxxxxxxxxxxx
int i;
//xxxxxxxxxxxx
//----------------------------------------------------------- 2 -----
int start()
{
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
for ( i=0; i<OrdersTotal(); i++){if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (AllPositions ||OrderMagicNumber()){ //èëè ëþáîå íåîáõîäèìîå çíà÷åíèå,íàïðèìåð,Symbol()
TrailingPositions();}}}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
int
Total, // Êîëè÷åñòâî îðäåðîâ â îêíå
Tip=-1, // Òèï âûáðàí. îðäåðà (B=0,S=1)
Ticket; // Íîìåð îðäåðà
double
Lot, // Êîëè÷. ëîòîâ â âûáðàí.îðäåðå
Lts, // Êîëè÷. ëîòîâ â îòêðûâ.îðäåðå
lot,
Min_Lot, // Ìèíèìàëüíîå êîëè÷åñòâî ëîòîâ
Step, // Øàã èçìåíåíèÿ ðàçìåðà ëîòà
Free, // Òåêóùèå ñâîáîäíûå ñðåäñòâà
One_Lot, // Ñòîèìîñòü îäíîãî ëîòà
Price, // Öåíà âûáðàííîãî îðäåðà
SL, // SL âûáðàííîãî îðäåðà
TP, // TP âûáðàííîãî îðäåðà
//--
MA_By,MA_Sell,Stoh_By,Stoh_Sell,AO_By,AO_Sell,Fractals_By,Fractals_Sell,AC_By,AC_Sell,Cls_MA_Sell,Cls_MA_By,Cls_Stoh_Sell,Cls_Stoh_By,
Cls_AO_Sell,Cls_AO_By,Cls_Fractals_By,Cls_Fractals_Sell,Cls_AC_Sell,Cls_AC_By,Dema_By,Cls_Dema_Sell,Dema_Sell,Cls_Dema_By,CCI_By,CCI_Sell,Cls_WPR_Sell,Cls_CCI_By,Cls_CCI_Sell,
RSI_By,RSI_Sell,Cls_RSI_Sell,Cls_RSI_By,MFI_By,MFI_Sell,Cls_MFI_Sell,Cls_MFI_By,WPR_By,WPR_Sell,Cls_WRP_Sell,Cls_WPR_By, //äîáàâëåííîå.
MACD_By,MACD_Sell,Cls_MACD_Sell,Cls_MACD_By,OsMA_By,OsMA_Sell,Cls_OsMA_Sell,Cls_OsMA_By,ADX_By,ADX_Sell,Cls_ADX_Sell,Cls_ADX_By,SAR_By,SAR_Sell,Cls_SAR_Sell,Cls_SAR_By,
Custom_1__By, Custom_1__Sell, Cls_Custom_1__By, Cls_Custom_1__Sell,Custom_2__By, Custom_2__Sell, Cls_Custom_2__By, Cls_Custom_2__Sell,Custom_3__By, Custom_3__Sell, Cls_Custom_3__By, Cls_Custom_3__Sell,Custom_4__By, Custom_4__Sell, Cls_Custom_4__By, Cls_Custom_4__Sell,
Custom_5__By, Custom_5__Sell, Cls_Custom_5__By, Cls_Custom_5__Sell,Custom_6__By, Custom_6__Sell, Cls_Custom_6__By, Cls_Custom_6__Sell,Custom_7__By, Custom_7__Sell, Cls_Custom_7__By, Cls_Custom_7__Sell,Custom_8__By, Custom_8__Sell, Cls_Custom_8__By, Cls_Custom_8__Sell,
Custom_9__By, Custom_9__Sell, Cls_Custom_9__By, Cls_Custom_9__Sell,Custom_10_By, Custom_10_Sell, Cls_Custom_10_By, Cls_Custom_10_Sell,Custom_11_By, Custom_11_Sell, Cls_Custom_11_By, Cls_Custom_11_Sell,Custom_12_By, Custom_12_Sell, Cls_Custom_12_By, Cls_Custom_12_Sell,
Custom_13_By, Custom_13_Sell, Cls_Custom_13_By, Cls_Custom_13_Sell,Custom_14_By, Custom_14_Sell, Cls_Custom_14_By, Cls_Custom_14_Sell,Custom_15_By, Custom_15_Sell, Cls_Custom_15_By, Cls_Custom_15_Sell,Custom_16_By, Custom_16_Sell, Cls_Custom_16_By, Cls_Custom_16_Sell;
bool
Modific=true,
Ans =false, // Îòâåò ñåðâåðà ïîñëå çàêðûòèÿ
Cls_B=false, // Êðèòåðèé äëÿ çàêðûòèÿ Buy
Cls_S=false, // Êðèòåðèé äëÿ çàêðûòèÿ Sell
Opn_B=false, // Êðèòåðèé äëÿ îòêðûòèÿ Buy
Opn_S=false, // Êðèòåðèé äëÿ îòêðûòèÿ Sell
S_Bar=false; // Êðèòåðèé äëÿ Sleep Bar
// Comment // Áëîê êîììåíòàðèåâ â îêíå. Îòêëþ÷åíî (íî ìîæíî âêëþ÷èòü, ïðîñòî ñòåðåâ çäåñü //øå÷êè)
// (
// "TIME: ",TimeToStr(TimeCurrent()),
// "\n",
// "Order-s paramethers (##,TP,SL,LOT): |",OrderTicket(),"|",OrderStopLoss(),"|",OrderTakeProfit(),"|",OrderLots(),"|",
// "\n",
// "ID_Number: ", ID_of_EA,
// "\n",
// "StakeType, #:",StakeMode,
// "\n",
// "% for #3: ",Percents,
// "\n",
// "StopOut: ", AccountStopoutLevel(),
// "\n",
// "Spread: ", MarketInfo(Symbol(),MODE_SPREAD),
// "\n",
// "Leverage, 1 to: ",AccountLeverage(),
// "\n",
// "Broker", TerminalCompany( ) ,
// "\n",
// "\n",
// "\n", // ìåæäó "\n", ïèõàþòñÿ íîâûå ÷èñëà äëÿ îòîáðàæåíèÿ.
// "\n"
// ); // Ðåñóðñû åñòü î÷åíü æàäíî, ïîòîìó è îòêëþ÷èë.
// It's probably, most resoure-eating thing for the backtest. I'll freeze it another time, but still...
// Sorry, you can restore it quickly, but still...
//-------------------- Pause after closed order. ------------------ 3 -
int time0 = 0; // Necessary booleans sorting...
for(int t0 = OrdersHistoryTotal();t0>=0;t0--) // Search among closed orders
//----------------------------------------------------------------------
//-------------------- Pre-Work Sorting-------------------------- 4 -
if(Work==false) // Critical error
{
Alert("Îòêëþ÷åíî, êðèòè÷åñêàÿ îøèáêà.");
return; // Exit from start()
}
//------------------------------------------------------------------------------
//------------------------------Ó÷¸ò îðäåðîâ--------------------------------- 4 --
Symb=Symbol(); // Íàçâàíèå ôèí.èíñòð.
Total=0; // Êîëè÷åñòâî îðäåðîâ
for(int i=1; i<=OrdersTotal(); i++) // Öèêë ïåðåáîðà îðäåð
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Åñëè åñòü ñëåäóþùèé
{ // Àíàëèç îðäåðîâ:
if (OrderSymbol()!=Symb)continue; // Íå íàø ôèí. èíñòðóì
if (OrderType()>1) // Ïîïàëñÿ îòëîæåííûé
{
Alert("Îáíàðóæåí îòëîæåííûé îðäåð. Ýêñïåðò íå ðàáîòàåò.");
return; // Âûõîä èç start()
}
Total++; // Ñ÷¸ò÷èê ðûíî÷í. îðä
if (Total>1) // Íå áîëåå îäíîãî îðä -- ÎËÎËÎ, íå áîëüøå îäíîãî îðäåðà! Ýòî íàäî áû âûïèëèòü...
{
Alert("Íåñêîëüêî ðûíî÷íûõ îðäåðîâ. Ýêñïåðò íå ðàáîòàåò.");
return; // Âûõîä èç start()
}
Ticket=OrderTicket(); // Íîìåð âûáðàíí. îðä.
Tip =OrderType(); // Òèï âûáðàííîãî îðä.
Price =OrderOpenPrice(); // Öåíà âûáðàíí. îðä.
SL =OrderStopLoss(); // SL âûáðàííîãî îðä.
TP =OrderTakeProfit(); // TP âûáðàííîãî îðä.
Lot =OrderLots(); // Êîëè÷åñòâî ëîòîâ
}
}
//---------------------------Òîðãîâûå êðèòåðèè------------------------------------ 5 --
//ATR for TP and SL is here------------------------------
if(ATR_SL==true && iATR(NULL,0,ATR_Period,1)>=ATR_Reach)
StopLoss=iATR(NULL,0,ATR_Period,0)*ATR_Multiply/0.0001; //Yes, not the "price", but the "pips".
if(ATR_TP==true && iATR(NULL,0,ATR_Period,1)>=ATR_Reach)
TakeProfit=iATR(NULL,0,ATR_Period,0)*ATR_Multiply/0.0001;
//MAs------------------------------------
if(otkr_MA==true)
{
if( iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)>iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
{
MA_By =true;// Normally SMA, but here is my edit.
}
if(iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)<iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
{
MA_Sell =true;
}
}
if(zakr_MA==true)
{
if(iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)>iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
{
Cls_MA_Sell=true;
}
if(iMA(NULL,0,MA1,0,MA_sort_avoidit,PRICE_CLOSE,Shift_ma)<iMA(NULL,0,MA2,0,MODE_SMA,PRICE_CLOSE,Shift_ma))
{
Cls_MA_By=true;
}
}
//Ñòîõàñòèê-------------------------------
if(otkr_Stoh==true)
{
if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)>iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
&& iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)<zoneBUY)
{
Stoh_By =true;
}
if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)<iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
&& iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)>zoneSELL)
{
Stoh_Sell =true;
}
}
if(zakr_Stoh==true)
{
if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)>iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
&& iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)<zoneBUY)
{
Cls_Stoh_Sell=true;
}
if(iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,0,1)<iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)
&& iStochastic(NULL,0,per_K,per_D,slow,MODE_LWMA,1,1,1)>zoneSELL)
{
Cls_Stoh_By=true;
}
}
//Awesome--------------------------------
if(otkr_AO==true)
{
if(iAO(NULL,0,1)<iAO(NULL,0,2))
{
AO_By =true;
}
if(iAO(NULL,0,1)>iAO(NULL,0,2))
{
AO_Sell =true;
}
}
if(zakr_AO==true)
{
if(iAO(NULL,0,1)>iAO(NULL,0,2))
{
Cls_AO_Sell=true;
}
if(iAO(NULL,0,1)<iAO(NULL,0,2))
{
Cls_AO_By=true;
}
}
//Fractals--------------------------------
if(otkr_Fractals==true)
{
if(iFractals(NULL,0,1,0)<PRICE_CLOSE)
{
Fractals_By =true;
}
if(iFractals(NULL,0,2,0)>PRICE_CLOSE)
{
Fractals_Sell = true;
}
}
if(zakr_Fractals==true)
{
if (iFractals(NULL,0,1,0)<PRICE_CLOSE)
{
Cls_Fractals_Sell=true;
}
if(iFractals(NULL,0,2,0)>PRICE_CLOSE)
{
Cls_Fractals_By = true;
}
}
//Accelerator---------------------------
if(otkr_AC==true)
{
if (iAC(NULL,0,0)>=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) || iAC(NULL,0,0)<=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) && iAC(NULL,0,2)>iAC(NULL,0,3))
{
AC_By =true;
}
if (iAC(NULL,0,0)<=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) || iAC(NULL,0,0)>=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) && iAC(NULL,0,2)<iAC(NULL,0,3))
{
AC_Sell =true;
}
}
// Seletsky's AC. I don't know, why he detailed it...
if(zakr_AC==true)
{
if (iAC(NULL,0,0)>=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) || iAC(NULL,0,0)<=0 && iAC(NULL,0,0)>iAC(NULL,0,1) && iAC(NULL,0,1)>iAC(NULL,0,2) && iAC(NULL,0,2)>iAC(NULL,0,3))
{
Cls_AC_Sell=true;
}
if (iAC(NULL,0,0)<=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) || iAC(NULL,0,0)>=0 && iAC(NULL,0,0)<iAC(NULL,0,1) && iAC(NULL,0,1)<iAC(NULL,0,2) && iAC(NULL,0,2)<iAC(NULL,0,3))
{
Cls_AC_By=true;
}
}
//Demarker----------------------------
if(otkr_Dema==true)
{
if (iDeMarker(NULL, 0, DeMa_period, 1)<niz_ur)
{
Dema_By =true;
}
if (iDeMarker(NULL, 0, DeMa_period, 1)>verx_ur)
{
Dema_Sell =true;
}
}
if(zakr_Dema==true)
{
if (iDeMarker(NULL, 0, DeMa_period, 1)<niz_ur)
{
Cls_Dema_Sell=true;
}
if (iDeMarker(NULL, 0, DeMa_period, 1)>verx_ur)
{
Cls_Dema_By=true;
}
}
//CCI:------------------
if(otkr_CCI==true)
{
if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN,0)>CCI_Level)
{
CCI_By =true;
}
if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN,0)<-CCI_Level)
{
CCI_Sell =true;
}
}
if(zakr_CCI==true)
{
if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN, 1)<-CCI_Level) // Not hook.
{
Cls_CCI_Sell=true;
}
if (iCCI(NULL, 0,CCI_period,PRICE_MEDIAN, 1)>CCI_Level)
{
Cls_CCI_By=true;
}
}
//RSI---------------------------------------------------------------------
if(otkr_RSI==true)
{
if (iRSI(NULL,0,RSI_Period,1,0)>RSI_High)
{
RSI_By=true;
}
if (iRSI(NULL,0,RSI_Period,1,0)<RSI_Low)
{
RSI_Sell=true;
}
}
if(zakr_RSI==true)
{
if (iRSI(NULL,0,RSI_Period,1,0)>RSI_High)
{
Cls_RSI_Sell=true;
}
if (iRSI(NULL,0,RSI_Period,1,0)<RSI_Low)
{
Cls_RSI_By=true;
}
}
//MFI-------------------------------
if(otkr_MFI==true)
{
if (iMFI(NULL,0,MFI_Period,0)>MFI_High)
{
MFI_By=true;
}
if (iMFI(NULL,0,MFI_Period,0)<MFI_Low)
{
MFI_Sell=true;
}
}
if(zakr_MFI==true)
{
if (iMFI(NULL,0,MFI_Period,0)>MFI_High/2+MFI_Low/2) // òóò çàêðûòèå ïî ñåðåäèíå
{
Cls_MFI_Sell=true;
}
if (iMFI(NULL,0,MFI_Period,0)<MFI_High/2+MFI_Low/2)
{
Cls_MFI_By=true;
}
}
//WPR--------------------------------
if(otkr_WPR==true)
{
if (iWPR(NULL,0,WPR_Period,WPR_Shift)>-20)
{
WPR_By=true;
}
if (iWPR(NULL,0,WPR_Period,0)<-80)
{
WPR_Sell=true;
}
}
if(zakr_WPR==true)
{
if (iWPR(NULL,0,WPR_Period,0)>-20) // I hope you get it.
{
Cls_WPR_Sell=true;
}
if (iWPR(NULL,0,WPR_Period,0)<-80)
{
Cls_WPR_By=true;
}
}
//MACD-------------------------------
if(otkr_MACD==true)
{
if (iMACD(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0,0)>0)
{
MACD_By=true;
}
if (iMACD(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0,0)<0)
{
MACD_Sell=true;
}
}
if(zakr_MACD==true)
{
if (iMACD(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0,0)>0)
{
Cls_MACD_Sell=true;
}
if (iMACD(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0,0)<0)
{
Cls_MACD_By=true;
}
}
//OsMA-------------------------------
if(otkr_OsMA==true)
{
if (iOsMA(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0)>0)
{
MACD_By=true;
}
if (iOsMA(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0)<0)
{
MACD_Sell=true;
}
}
if(zakr_OsMA==true)
{
if (iOsMA(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0)>0)
{
Cls_MACD_Sell=true;
}
if (iOsMA(NULL,0,MACD_Fast,MACD_Slow,MACD_Signal,1,0)<0)
{
Cls_MACD_By=true;
}
}
//ADX-------------------------------
if(otkr_ADX==true)
{
if (iADX(NULL,0,ADX_Period,1,0,0)>70)
{
ADX_By=true;
}
if (iADX(NULL,0,ADX_Period,1,0,0)<30)
{
ADX_Sell=true;
}
}
if(zakr_ADX==true)
{
if (iADX(NULL,0,ADX_Period,1,0,0)>70)
{
Cls_ADX_Sell=true;
}
if (iADX(NULL,0,ADX_Period,1,0,0)<30)
{
Cls_ADX_By=true;
}
}
//SAR-------------------------------
if(otkr_SAR==true)
{
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,0)>Close[0])
{
SAR_By=true;
}
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,0)<Close[0])
{
SAR_Sell=true;
}
}
if(zakr_SAR==true)
{
if (iSAR(NULL,0,SAR_Step,SAR_MaxStep,0)>Close[0])
{
Cls_SAR_Sell=true;
}
if(iSAR(NULL,0,SAR_Step,SAR_MaxStep,0)<Close[0])
{
Cls_SAR_By=true;
}
}
// A-a-a-nd the custom indicators. I bet you were searching for some newbie-for possibility to use custom indicators.
//--------Custom_1__------------------
if(otkr_Custom_1==true)
{
if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE) // You know, you're supposed to tune the custom indicator by yourself.
{ // I mean, all the tunes are saved in code (as basiccal\standard)
Custom_1__By=true; // As a rule, the custom inds don't need any tunes... mostly...
} // Well, if any problems, you just need to edit an indicator simply by changing the digits "in case".
//"Theese \/ ones" // Snippet: between name ("ZZ") and last two (,0,0)) digits you can put variables
if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
{
Custom_1__Sell=true;
}
}
if(zakr_Custom_1==true)
{
if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE)
{
Cls_Custom_1__By=true;// _1__ , because there were up to 16 custom inds aviliable - you could find _10_, _16_, _9__...
}
if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
{
Cls_Custom_1__Sell=true;
}
}
//--------Custom_2__------------------
if(otkr_Custom_2==true)
{
if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE)
{
Custom_2__By=true;
}
if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
{
Custom_2__Sell=true;
}
}
if(zakr_Custom_2==true)
{
if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE) // Lamest ever :)
{
Cls_Custom_2__By=true;
}
if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
{
Cls_Custom_2__Sell=true;
}
}
//--------Custom_3__------------------
if(otkr_Custom_3==true)
{
if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE)
{
Custom_3__By=true;
}
if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
{
Custom_3__Sell=true;
}
}
if(zakr_Custom_3==true)
{
if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE)
{
Cls_Custom_3__By=true;
}
if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
{
Cls_Custom_3__Sell=true;
}
}
//--------Custom_4__------------------
if(otkr_Custom_4==true)
{
if(iCustom(NULL,0,"MestoDlyaIndicatora",0,0)>PRICE_CLOSE) // Çàìåíà: Íàçâàíèå çàãðóæåííîãî èíäèêàòîðà íà ìåñòî áèðþçîâîé íàäïèñè.
{
Custom_4__By=true;
}
if(iCustom(NULL,0,"MestoDlyaIndicatora",0,0)<PRICE_CLOSE)
{
Custom_4__Sell=true;
}
}
if(zakr_Custom_4==true)
{
if(iCustom(NULL,0,"MestoDlyaIndicatora",0,0)>PRICE_CLOSE)
{
Cls_Custom_4__By=true;
}
if(iCustom(NULL,0,"MestoDlyaIndicatora",0,0)<PRICE_CLOSE)
{
Cls_Custom_4__Sell=true;
}
}
//--------Custom_5__-Custom_16_ are earsed. They all are supposed to be restored here maunally. I. E. "copy, paste, change some digits"
// Here are only 5th and 16th. Other ones may be simply copied and pasted.
//--------Custom__5------------------
//if(otkr_Custom__5==true)
// {
// if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE)
// {
// Custom__5_By=true;
// }
//
// if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
// {
// Custom__5_Sell=true;
// }
//
// }
//
//if(zakr_Custom__5==true)
// {
// if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE) - 16th is here as an example. Try to barely de"//" it, then solve the "errors" occured.
// {
// Cls_Custom__5_By=true;
// }
//
// if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
// {
// Cls_Custom__5_Sell=true;
// }
//
// }
//--------Custom_16_------------------
//if(otkr_Custom_16==true)
// {
// if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE)
// {
// Custom_16_By=true;
// }
//
// if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
// {
// Custom_16_Sell=true;
// }
//
// }
//
//if(zakr_Custom_16==true)
// {
// if(iCustom(NULL,0,"ZigZag",0,0)>PRICE_CLOSE) - 16th is here as an example. Try to barely de"//" it, then solve the "errors" occured.
// {
// Cls_Custom_16_By=true;
// }
//
// if(iCustom(NULL,0,"ZigZag",0,0)<PRICE_CLOSE)
// {
// Cls_Custom_16_Sell=true;
// }
//
// }
//--------------------------------Open Buy and Sell------------------------------------------ 7 ----//
if (MA_By ==true||otkr_MA==false &&
Stoh_By ==true||otkr_Stoh==false&&
AO_By ==true||otkr_AO==false &&
Fractals_By ==true||otkr_Fractals==false&&
AC_By ==true||otkr_AC==false &&
Dema_By ==true||otkr_Dema==false&&
CCI_By ==true||otkr_CCI==false &&
RSI_By ==true||otkr_RSI==false &&
MFI_By ==true||otkr_MFI==false &&
WPR_By ==true||otkr_WPR==false &&
MACD_By==true||otkr_MACD==false &&
OsMA_By==true||otkr_OsMA==false &&
ADX_By ==true||otkr_ADX==false &&
SAR_By ==true||otkr_SAR==false &&
Custom_1__By==true||otkr_Custom_1==false&&
Custom_2__By==true||otkr_Custom_2==false&&
Custom_3__By==true||otkr_Custom_3==false&&
Custom_4__By==true||otkr_Custom_4==false
//&& // Ëèøíåå îòêëþ÷åíî.
// Custom_5__By==true||otkr_Custom_5==false&& // Íà ñëó÷àé. åñëè 4 èíäèêàòîðîâ ìàëî...
// Custom_6__By==true||otkr_Custom_6==false&&
// Custom_7__By==true||otkr_Custom_7==false&&
// Custom_8__By==true||otkr_Custom_8==false&&
// Custom_9__By==true||otkr_Custom_9==false&&
// Custom_10_By==true||otkr_Custom_10==false&&
// Custom_11_By==true||otkr_Custom_11==false&&
// Custom_12_By==true||otkr_Custom_12==false&&
// Custom_13_By==true||otkr_Custom_13==false&&
// Custom_14_By==true||otkr_Custom_14==false&&
// Custom_15_By==true||otkr_Custom_15==false&&
// Custom_16_By==true||otkr_Custom_16==false
)
{
Opn_B=true;
}
//---------
if ( MA_Sell==true||otkr_MA==false &&
Stoh_Sell ==true||otkr_Stoh==false &&
AO_Sell ==true||otkr_AO==false &&
Fractals_Sell==true||otkr_Fractals==false &&
AC_Sell ==true||otkr_AC==false &&
Dema_Sell ==true||otkr_Dema==false &&
CCI_Sell ==true||otkr_CCI==false &&
RSI_Sell ==true||otkr_RSI==false &&
MFI_Sell ==true||otkr_MFI==false &&
WPR_Sell ==true||otkr_WPR==false &&
MACD_Sell==true||otkr_MACD==false &&
OsMA_Sell==true||otkr_OsMA==false &&
ADX_Sell ==true||otkr_ADX==false &&
SAR_Sell ==true||otkr_SAR==false &&
Custom_1__Sell==true||otkr_Custom_1==false&&
Custom_2__Sell==true||otkr_Custom_2==false&&
Custom_3__Sell==true||otkr_Custom_3==false&&
Custom_4__Sell==true||otkr_Custom_4==false
//&&
// Custom_5__Sell==true||otkr_Custom_5==false&& // Íà ñëó÷àé. åñëè 4 èíäèêàòîðîâ ìàëî...
// Custom_6__Sell==true||otkr_Custom_6==false&&
// Custom_7__Sell==true||otkr_Custom_7==false&&
// Custom_8__Sell==true||otkr_Custom_8==false&&
// Custom_9__Sell==true||otkr_Custom_9==false&&
// Custom_10_Sell==true||otkr_Custom_10==false&&
// Custom_11_Sell==true||otkr_Custom_11==false&&
// Custom_12_Sell==true||otkr_Custom_12==false&&
// Custom_13_Sell==true||otkr_Custom_13==false&&
// Custom_14_Sell==true||otkr_Custom_14==false&&
// Custom_15_Sell==true||otkr_Custom_15==false&&
// Custom_16_Sell==true||otkr_Custom_16==false
)
{
Opn_S=true;
}
//--------------------------------Closing-----------------------------------------------//
if (Cls_MA_By ==true||zakr_MA==false &&
Cls_Stoh_By==true||zakr_Stoh==false&&
Cls_AO_By ==true||zakr_AO==false &&
Cls_Fractals_By==true||zakr_Fractals==false &&
Cls_AC_By ==true||zakr_AC==false &&
Cls_Dema_By==true||zakr_Dema==false&&
Cls_CCI_By ==true||zakr_CCI==false &&
Cls_RSI_By ==true||zakr_RSI==false &&
Cls_MFI_By ==true||zakr_MFI==false &&
Cls_WPR_By ==true||zakr_WPR==false &&
Cls_MACD_By==true||zakr_MACD==false&&
Cls_OsMA_By==true||zakr_OsMA==false &&
Cls_ADX_By ==true||zakr_ADX==false &&
Cls_SAR_By ==true||zakr_SAR==false &&
Cls_Custom_1__By==true||zakr_Custom_1==false&&
Cls_Custom_2__By==true||zakr_Custom_2==false&&
Cls_Custom_3__By==true||zakr_Custom_3==false&&
Cls_Custom_4__By==true||zakr_Custom_4==false
//&&
// Cls_Custom_5__By==true||zakr_Custom_5==false&&
// Cls_Custom_6__By==true||zakr_Custom_6==false&&
// Cls_Custom_7__By==true||zakr_Custom_7==false&&
// Cls_Custom_8__By==true||zakr_Custom_8==false&&
// Cls_Custom_9__By==true||zakr_Custom_9==false&&
// Cls_Custom_10_By==true||zakr_Custom_10==false&&
// Cls_Custom_11_By==true||zakr_Custom_11==false&&
// Cls_Custom_12_By==true||zakr_Custom_12==false&&
// Cls_Custom_13_By==true||zakr_Custom_13==false&&
// Cls_Custom_14_By==true||zakr_Custom_14==false&&
// Cls_Custom_15_By==true||zakr_Custom_15==false&&
// Cls_Custom_16_By==true||zakr_Custom_16==false
)
{
Cls_B=true;
}
if (Cls_MA_Sell ==true||zakr_MA==false &&
Cls_Stoh_Sell ==true||zakr_Stoh==false&&
Cls_AO_Sell ==true||zakr_AO==false &&
Cls_Fractals_Sell==true||zakr_Fractals==false &&
Cls_AC_Sell ==true||zakr_AC==false &&
Cls_Dema_Sell==true||zakr_Dema==false&&
Cls_CCI_Sell==true||zakr_CCI==false &&
Cls_RSI_Sell==true||zakr_RSI==false &&
Cls_MFI_Sell==true||zakr_MFI==false &&
Cls_WPR_Sell==true||zakr_WPR==false &&
Cls_MACD_Sell==true||zakr_MACD==false&&
Cls_OsMA_Sell==true||zakr_OsMA==false&&
Cls_ADX_Sell==true||zakr_ADX==false &&
Cls_SAR_Sell==true||zakr_SAR==false &&
Cls_Custom_1__Sell==true||zakr_Custom_1==false&&
Cls_Custom_2__Sell==true||zakr_Custom_2==false&&
Cls_Custom_3__Sell==true||zakr_Custom_3==false&&
Cls_Custom_4__Sell==true||zakr_Custom_4==false
// &&
// Cls_Custom_5__Sell==true||zakr_Custom_5==false&&
// Cls_Custom_6__Sell==true||zakr_Custom_6==false&&
// Cls_Custom_7__Sell==true||zakr_Custom_7==false&&
// Cls_Custom_8__Sell==true||zakr_Custom_8==false&&
// Cls_Custom_9__Sell==true||zakr_Custom_9==false&&
// Cls_Custom_10_Sell==true||zakr_Custom_10==false&&
// Cls_Custom_11_Sell==true||zakr_Custom_11==false&&
// Cls_Custom_12_Sell==true||zakr_Custom_12==false&&
// Cls_Custom_13_Sell==true||zakr_Custom_13==false&&
// Cls_Custom_14_Sell==true||zakr_Custom_14==false&&
// Cls_Custom_15_Sell==true||zakr_Custom_15==false&&
// Cls_Custom_16_Sell==true||zakr_Custom_16==false
) // - there must be the parenthis
{
Cls_S=true;
}
//-----------------------------Closing the orders (by signals from previous part :) )---------------------------------- 8 --
//-----------------------------Çàêðûòèå îðäåðîâ---------------------------------- 6 --
while(true) // Öèêë çàêðûòèÿ îðä.
{
if (Tip==0 && Cls_B==true) // Îòêðûò îðäåð Buy..Óñëîâèÿ çàêðûòèÿ Buy
{ //è åñòü êðèòåðèé çàêð
Alert("Ïîïûòêà çàêðûòü Buy ",Ticket,". Îæèäàíèå îòâåòà..");
RefreshRates(); // Îáíîâëåíèå äàííûõ
Ans=OrderClose(Ticket,Lot,Bid,2); // Çàêðûòèå Buy
if (Ans==true) // Ïîëó÷èëîñü :)
{
Alert ("Çàêðûò îðäåð Buy ",Ticket);
break; // Âûõîä èç öèêëà çàêð
}
if (Fun_Error(GetLastError())==1) // Îáðàáîòêà îøèáîê
continue; // Ïîâòîðíàÿ ïîïûòêà
return; // Âûõîä èç start()
}
if (Tip==1 && Cls_S==true) // Îòêðûò îðäåð Sell..Óñëîâèÿ çàêðûòèÿ Sell
{ // è åñòü êðèòåðèé çàêð
Alert("Ïîïûòêà çàêðûòü Sell ",Ticket,". Îæèäàíèå îòâåòà..");
RefreshRates(); // Îáíîâëåíèå äàííûõ
Ans=OrderClose(Ticket,Lot,Ask,2); // Çàêðûòèå Sell
if (Ans==true) // Ïîëó÷èëîñü :)
{
Alert ("Çàêðûò îðäåð Sell ",Ticket);
break; // Âûõîä èç öèêëà çàêð
}
if (Fun_Error(GetLastError())==1) // Îáðàáîòêà îøèáîê
continue; // Ïîâòîðíàÿ ïîïûòêà
return; // Âûõîä èç start()
}
break; // Âûõîä èç while
}
//-----------------------------Ñòîèìîñòü îðäåðîâ---------------------------------- 7 --
RefreshRates(); // Îáíîâëåíèå äàííûõ
int time = 0;double profit = 0; //îáüÿâëÿåì íåîáõîäèìûå íàì ïåðåìåííûå êóäà ìû ïîëîæèì èíòåðåñóþùèå íàñ õàðàêòåðèñòèêè îðäåðà
for(int t = OrdersHistoryTotal();t>=0;t--) // Ïåðåáèðàåì âñå çàêðûòûå îðäåðà
{
if(OrderSelect(t,SELECT_BY_POS,MODE_HISTORY))//åñëè îðäåð ñ òàêèì íîìåðîì (i) â ñïèñêå çàêðûòûõ îðäåðîâ åñòü ( íå ïóòàòü ñ òèêåòîì)
{
if(OrderSymbol() == Symbol()) //åñëè âûáðàííûé îðäåð áûë îòêðûò ïî íàøåé âàëþòíîé ïàðå
{
if(time<OrderCloseTime()) //(ñðàâíèâàåì åãî ñ õðàíÿùèìñÿ â ïåðîåìåííîé time)
{
time=OrderCloseTime(); //åñëè âðåìÿ çàêðûòèÿ îðäåðà áîëüøå - ëîæèì åãî â ïåðåìåííóþ
profit=OrderProfit(); //è çàîäíî çàïîìèíàåì ïðèáûëü îðäåðà
lot =OrderLots(); // Êîëè÷åñòâî ëîòîâ
}
}
}
}
//-------------------------Money Management Block -------------------- 10 ---
//-----------------
if (Opn_B==true||Opn_S==true)
{
if (StakeMode==1&&OrdersTotal()<1)Lts=Lts1;
if (StakeMode==3&&OrdersTotal()<1)Lts=NormalizeDouble(AccountEquity()*Percents/100/1000, 2); // èç "hardprofit" EA (by chris10).
{
if(profit == 0 && StakeMode==2 && OrdersTotal()<1) {Lts=Lts1;} //
if(profit >= 0 && StakeMode==2 && OrdersTotal()<1) {Lts=Lts1;} //
if(profit < 0 && StakeMode==2 && OrdersTotal()<1) {Lts=lot*IK;} //Òàêîé âîò Ìàðòèíãåéë.
}
}
if (Lts*One_Lot > Free) // Ëîò äîðîæå ñâîáîäí.
{
Alert(" Íå õâàòàåò äåíåã íà ", Lts," ëîòîâ");
return; // Âûõîä èç start()
}
//------------------------------------------------------------------------------
//------------------------------Îòêðûòèå îðäåðîâ--------------------------------- 8 --
while(true) // Öèêë îòêðûòèÿ îðä.
{
if (Total==0 && Opn_B==true && Cls_B==false) // Îòêðûòûõ îðä. íåò +
{ // êðèòåðèé îòêð. Buy
RefreshRates(); // Îáíîâëåíèå äàííûõ
SL=Bid - New_Stop(StopLoss)*Point; // Âû÷èñëåíèå SL îòêð.
TP=Bid + New_Stop(TakeProfit)*Point; // Âû÷èñëåíèå TP îòêð.
Alert("Ïîïûòêà îòêðûòü Buy. Îæèäàíèå îòâåòà..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,3,SL,TP);//Îòêðûòèå Buy
if (Ticket > 0) // Ïîëó÷èëîñü :)
{
Alert ("Îòêðûò îðäåð Buy ",Ticket);
return; // Âûõîä èç start()
}
if (Fun_Error(GetLastError())==1) // Îáðàáîòêà îøèáîê
continue; // Ïîâòîðíàÿ ïîïûòêà
return; // Âûõîä èç start()
}
if (Total==0 && Opn_S==true && Cls_S==false) // Îòêðûòûõ îðä. íåò +
{ // êðèòåðèé îòêð. Sell
RefreshRates(); // Îáíîâëåíèå äàííûõ
SL=Ask + New_Stop(StopLoss)*Point; // Âû÷èñëåíèå SL îòêð.
TP=Ask - New_Stop(TakeProfit)*Point; // Âû÷èñëåíèå TP îòêð.
Alert("Ïîïûòêà îòêðûòü Sell. Îæèäàíèå îòâåòà..");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,SL,TP);//Îòêðûòèå Sel
if (Ticket > 0) // Ïîëó÷èëîñü :)
{
Alert ("Îòêðûò îðäåð Sell ",Ticket);
return; // Âûõîä èç start()
}
if (Fun_Error(GetLastError())==1) // Îáðàáîòêà îøèáîê
continue; // Ïîâòîðíàÿ ïîïûòêà
return; // Âûõîä èç start()
}
break; // Âûõîä èç while
}
return; // Âûõîä èç start()
}
//------------------------------------------------------------------------------
//--------------------------Ô-èÿ îáðàáîò îøèáîê------------------------------------ 10 --
int Fun_Error(int Error)
{
switch(Error)
{ // Ïðåîäîëèìûå îøèáêè
case 4: Alert("Òîðãîâûé ñåðâåð çàíÿò. Ïðîáóåì åù¸ ðàç..");
Sleep(3000); // Ïðîñòîå ðåøåíèå
return(1); // Âûõîä èç ôóíêöèè
case 130:Alert("Íåïðàâèëüíûå ñòîïû");
while(RefreshRates()==false) // Äî íîâîãî òèêà
Sleep(1); // Çàäåðæêà â öèêëå
return(1); // Âûõîä èç ôóíêöèè
case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
RefreshRates(); // Îáíîâèì äàííûå
return(1); // Âûõîä èç ôóíêöèè
case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
while(RefreshRates()==false) // Äî íîâîãî òèêà
Sleep(1); // Çàäåðæêà â öèêëå
return(1); // Âûõîä èç ôóíêöèè
case 137:Alert("Áðîêåð çàíÿò. Ïðîáóåì åù¸ ðàç..");
Sleep(3000); // Ïðîñòîå ðåøåíèå
return(1); // Âûõîä èç ôóíêöèè
case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
Sleep(500); // Ïðîñòîå ðåøåíèå
return(1); // Âûõîä èç ôóíêöèè
// Êðèòè÷åñêèå îøèáêè
case 2: Alert("Îáùàÿ îøèáêà.");
return(0); // Âûõîä èç ôóíêöèè
case 5: Alert("Ñòàðàÿ âåðñèÿ òåðìèíàëà.");
Work=false; // Áîëüøå íå ðàáîòàòü
return(0); // Âûõîä èç ôóíêöèè
case 64: Alert("Ñ÷åò çàáëîêèðîâàí.");
Work=false; // Áîëüøå íå ðàáîòàòü
return(0); // Âûõîä èç ôóíêöèè
case 133:Alert("Òîðãîâëÿ çàïðåùåíà.");
return(0); // Âûõîä èç ôóíêöèè
case 134:Alert("Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè.");
return(0); // Âûõîä èç ôóíêöèè
default: Alert("Âîçíèêëà îøèáêà ",Error); // Äðóãèå âàðèàíòû
return(0); // Âûõîä èç ôóíêöèè
}
}
//-------------------------------------------------------------- 11 --
int New_Stop(int Parametr) // Ïðîâåðêà ñòîï-ïðèê.
{
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Ìèíèì. äèñòàíöèÿ
if (Parametr<Min_Dist) // Åñëè ìåíüøå äîïóñò.
{
Parametr=Min_Dist; // Óñòàíîâèì äîïóñò.
Alert("Óâåëè÷åíà äèñòàíöèÿ ñòîï-ïðèêàçà.");
}
return(Parametr); // Âîçâðàò çíà÷åíèÿ
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void TrailingPositions(){double pBid, pAsk, pp;
pp = MarketInfo(OrderSymbol(), MODE_POINT);if (OrderType()==OP_BUY){
pBid = MarketInfo(OrderSymbol(),MODE_BID );
if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp){
if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp){
ModifyStopLoss(pBid-TrailingStop*pp);return;}}}if (OrderType()==OP_SELL){
pAsk = MarketInfo(OrderSymbol(),MODE_ASK );
if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp){
if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0){
ModifyStopLoss(pAsk+TrailingStop*pp);return;}}}}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void ModifyStopLoss(double ldStopLoss){bool modify;
modify=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,Red);}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//---------------------------
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---