//+------------------------------------------------------------------+ //| _Open_SELL.mq4 | //| "ÑÊÐÈÏÒÛ ÄËß ËÅÍÈÂÎÃÎ" | //| Ñêðèïò îòêðûâàåò SELL íà çàäàâàåìóþ ÷àñòü FreeMargin | //| | //| Òîëüêî äëÿ ïàð USD... è ...USD | //| (áëàãàäàðþ komposter çà ïîäñêàçêó) | //| | //| Bookkeeper, 2006, yuzefovich@gmail.com | //+------------------------------------------------------------------+ #property copyright "" #property link "" #property show_inputs // Åñëè åñòü æåëàíèå ìåíÿòü ýêñòåðíû â ïðîöåññå //+------------------------------------------------------------------+ extern int Interest = 100; // Âûäåëèòü ÷àñòü FreeMargin íà ïîçó: // = 0 îòêðûòü ìèíèìàëüíûì ëîòîì // = 100 îòêðûòü ñî âñåé äóðè extern int DistSL = 35; // Ðàññòîÿíèå äî SL extern int DistTP = 35; // Ðàññòîÿíèå äî TP extern int Slippage = 5; // Ïðîñêàëüçûâàíèå extern bool StopLoss = true; // Ñòàâèòü èëè íåò extern bool TakeProfit = true; // Ñòàâèòü èëè íåò //+------------------------------------------------------------------+ void start() { int ticket; double SL=0,TP=0,Stake,StepDgts,Share,QQ=1.0; double Step=MarketInfo(Symbol(),MODE_MINLOT); int Dgts=MarketInfo(Symbol(),MODE_DIGITS); string FirstPart=StringSubstr(Symbol(), 0, 3 ); string SecondPart=StringSubstr(Symbol(), 3, 3 ); Share=0.01*Interest; if(SecondPart == "USD") QQ=Bid; else { if(FirstPart != "USD") Alert("OpenSELL: Who is that - "+Symbol()+"? I do not know..."); // :) } if(AccountFreeMargin()<Step*1000*Bid) { Alert("OpenSELL: No maney..."); return; } if(Share>1.0) Share=1.0; // ×àñòü íå áûâàåò áîëüøå öåëîãî if(Share<0) Share=0; // (???) if(Step<0.1) StepDgts=2; else { if(Step<1.0) StepDgts=1; else StepDgts=0; } Stake=NormalizeDouble(AccountFreeMargin()*Share/1000/QQ,StepDgts); if(AccountFreeMargin()<Stake*1000*QQ) // Îêðóãëåíèå áûâàåò è ââåðõ Stake=NormalizeDouble(Stake-Step,StepDgts); // Òåïåðü ëèøêó íå áóäåò //Åñëè âûäåëåííàÿ ÷àñòü äåïî áóäåò ìåíüøå ìèíèìàëüíî äîïóñòèìîãî ëîòà, //ïîçà áóäåò îòêðûòà íà ìèíèìàëüíûé ëîò if(Stake<Step) Stake=Step; if(StopLoss==true) SL=Ask+DistSL*Point; if(TakeProfit==true) TP=Bid-2*DistTP*Point; ticket=OrderSend(Symbol(),OP_SELL,Stake,Bid,Slippage, NormalizeDouble(SL,Dgts), NormalizeDouble(TP,Dgts), "",0,0,CLR_NONE); if(ticket<=0) Alert("Error Open_SELL: ",GetLastError()); return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features:
It issuies visual alerts to the screen