Orders Execution
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
ModStopReverse_v_7_aligator
//+------------------------------------------------------------------+
//| ModStopReverse |
//| Copyright 2012, Infoplus |
//| http://www.infoplus.ipsys.net |
//+------------------------------------------------------------------+
#property copyright "Infoplus"
#property link "http://www.infoplus.ipsys.net"
#include <stdlib.mqh>
//------- Âíåøíèå ïàðàìåòðû ñîâåòíèêà --------------------------------
extern string _Parameters_Trade="----- Ïàðàìåòðû òîðãîâëè";
extern bool Continue=True; // Ðàáîòàòü èëè îñòàíîâèòüñÿ ïîñëå îêîí÷àíèÿ ñåðèè
extern int MAGIC= 1000; // Ìàäæèê ñîâåòíèêà
extern int TrailingStop=20; // Ôèêñèðîâàííûé ðàçìåð òðàëà
extern int TrailingStep=1; // Øàã òðàëà
extern int Slippage = 3; // Ïðîñêàëüçûâàíèå öåíû
extern double Lott_0 = 1; // Íà÷àëüíûé ðàçìåð ëîòà
extern int Delta = 30; // Ðàññòîÿíèå äëÿ ñòîï-îðäåðîâ
extern double KK=1.7; // Êîýôôèöèåíò óìíîæåíèÿ ëîòà
extern int NoLoss=30; //Óñòàíîâêà áåçóáûòêà â ïï
extern int ProfClose=10; // Çàêðûòü âñå ïðè ïðîôèòå
extern int TimeStart=9; //îãðàíè÷åíèå âðåìåíè ðàáîòû ñîâåòíèêà
extern int TimeEnd= 22; //íå îòêðûâàåì îðäåðà è çàêðûâàåì îòëîæêè åñëè âðåìÿ íå ìåæäó TimeStart è TimeEnd
extern string _Parameters_Expert="----- Ïàðàìåòðû ñîâåòíèêà";
extern bool UseSound = True; // Èñïîëüçîâàòü çâóêîâîé ñèãíàë
extern string NameFileSound = "expert.wav"; // Íàèìåíîâàíèå çâóêîâîãî ôàéëà
extern color clOpenBuy = LightBlue; // Öâåò îòêðûòèÿ ïîêóïêè
extern color clOpenSell = LightCoral; // Öâåò îòêðûòèÿ ïðîäàæè
extern color clModifyBuy = Aqua; // Öâåò ìîäèôèêàöèè ïîêóïêè
extern color clModifySell = Tomato; // Öâåò ìîäèôèêàöèè ïðîäàæè
extern color clCloseBuy = Blue; // Öâåò çàêðûòèÿ ïîêóïêè
extern color clCloseSell = Red; // Öâåò çàêðûòèÿ ïðîäàæè
//---- Ãëîáàëüíûå ïåðåìåííûå ñîâåòíèêà -------------------------------
int g_fontsize_544=10;
int g_color_548 = Gold;
int g_color_547 = Red;
int g_color_5=Gold;
int FRBarUp=-1;
int FRBarDn=-1;
double BStopLoss;
double SStopLoss;
double LottB,LottS;
bool TradesAlow=false;
bool BUYOK=true;
bool SELLOK=true;
int flagTrStartB=0;
int flagTrStartS=0;
int KolB;
int PrStop=0;
int preKolB;
int KolS;
int preKolS;
double PrBuy=0;
double PrSell=0;
double priceBid;
double priceAsk;
double HistoryZeroPrice,ZeroPrice,StopOutPrice;
//-----------
extern string Symbol_1="GBPJPY";
extern string Symbol_2="USDCHF";
extern string Symbol_3="EURUSD";
extern string Symbol_4="EURGBP";
extern string Symbol_5="GBPUSD";
extern string Symbol_6="EURCHF";
extern string Symbol_7="EURJPY";
extern string Symbol_8="GPBPCHF";
extern string Symbol_9="AUDJPY";
extern string Symbol_10="AUDUSD";
extern string Symbol_11="NZDUSD";
extern string Symbol_12="NZDJPY";
extern string Symbol_13="CHFJPY";
extern string Symbol_14="USDCHF";
extern int ÐàçìåðØðèôòà=10;
//----
double LotS,ProfitS;
double LotB,ProfitB;
double LotT,ProfitT;
double ProfitHistory;
double PartEquity;
color Color;
int pos,orderremit,TotalOrders,Symb;
string text;
int File;
string FileName;
int CountDate;
double LL;
double Lott;
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void init()
{
Comment("");
LL=Lott;
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
void start()
{
if(IsTrade())
{
if(!ExistOrder(1))
{
flagTrStartB=0; KolB=0; preKolB=0; BStopLoss=0; TradesAlow=false; LottS=Lott;
DeleteAllOrders(1); CloseAll(1); RR();
if(Continue){CalcLots(); SetOrders(1);}
}
if(!ExistOrder(2))
{
flagTrStartS=0; KolS=0; preKolS=0; SStopLoss=0; TradesAlow=false; LottB=Lott;
DeleteAllOrders(2); CloseAll(2); RR();
if(Continue){CalcLots(); SetOrders(2);}
}
}
for(int i=3;i<=33;i=i+2)
{
if(!ExistOrder(i)) {if(ExistOrderTr(i-2)) {SetOrders(i); }}
}
for(int j=4;j<=32;j=j+2)
{
if(!ExistOrder(j)) {if(ExistOrderTr(j-2)) {SetOrders(j); }}
}
KolB=CheckLots("B");
if(preKolB!=KolB)
{
preKolB=KolB;
BStopLoss=0; flagTrStartB=0; StopOutPrice=0; ZeroPrice=0;
}
KolS=CheckLots("S");
if(preKolS!=KolS)
{
preKolS=KolS;
SStopLoss=0; flagTrStartS=0; StopOutPrice=0; ZeroPrice=0;
}
if(flagTrStartB==1) {TrailingPositions(1); }
if(flagTrStartS==1) {TrailingPositions(2); }
TrailingPositions(0);
RefreshRates(); Show();
IndikatorLots(); //NotOut(); No_Loss(111); No_Loss(222);
}
//+------------------------------------------------------------------+
//| Ïîäñ÷åò êîë-âà îðäåðîâ |
//+------------------------------------------------------------------+
int CheckLots(string mn)
{
int ko=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderComment()==mn)
{
if(OrderType()==OP_BUY)
{
ko=ko+1;
}
}
if(OrderSymbol()==Symbol() && OrderComment()==mn)
{
if(OrderType()==OP_SELL)
{
ko=ko+1;
}
}
}
}
return(ko);
}
//+------------------------------------------------------------------+
//| Ôðàêòàëüíûé øàã |
//+------------------------------------------------------------------+
int RR()
{
double u,d,U,D;
int cu,cd;
//----
for(int i=3;i<=Bars-3;i++)
{
u=iFractals(NULL,0,MODE_UPPER,i);
d=iFractals(NULL,0,MODE_LOWER,i);
if(u>0) {U+=u;cu++;}
if(d>0) {D+=d;cd++;}
}
U/=cu; D/=cd;
int V=(U-D)/Point; Delta=NormalizeDouble(V,0); if(Delta<30) {Delta=30;}
Comment(Symbol()," TF=",Period()," ",V+" Delta - "+Delta);
return(0);
}
//+------------------------------------------------------------------+
//| Ëîê ïðîñåâøåé ñåðèè |
//+------------------------------------------------------------------+
void NotOut()
{
if(AccountMargin()!=0)
{
if(AccountEquity()/AccountMargin()*100<2000)
{
bool fc=false,fb=false;
if(LotT>0 && !ExistOrder(111))
{
// while(fc==False) {
fc=OrderSend(Symbol(),OP_SELLSTOP,NormalizeDouble(3*LotB,2),Bid-Delta*Point,3,0,0,"Lock_BUY",MAGIC+111,0,clOpenSell);
EE();//}
}
if(LotT<0 && !ExistOrder(222))
{
// while(fb==False) {
fc=OrderSend(Symbol(),OP_BUYSTOP,NormalizeDouble(3*LotS,2),Ask+Delta*Point,3,0,0,"Lock_SELL",MAGIC+222,0,clOpenSell);
EE();//}
}
}
}
}
//+------------------------------------------------------------------+
//| Óñòàíîâêà îðäåðîâ |
//+------------------------------------------------------------------+
void SetOrders(int nn)
{
bool fc; SellorBuy();
if(nn==1)
{
if((isFractalDn(3)!=-1) && BUYOK)
{
fc=false;
while(fc==false)
{
fc=OrderSend(Symbol(),OP_BUY,LottB,Ask,Slippage,0,0,"B",MAGIC+1,0,clOpenBuy); EE();
}
return;
}
}
if(nn==2)
{
if((isFractalUp(3)!=-1) && SELLOK)
{
fc=false;
while(fc==false)
{
fc=OrderSend(Symbol(),OP_SELL,LottS,Bid,Slippage,0,0,"S",MAGIC+2,0,clOpenSell); EE();
}
return;
}
}
if(MathMod(nn,2)!=0)
{
priceBid=Ask+Delta*Point; fc=false; Checks(nn-2);
if(TradesAlow)
{
while(fc==false)
{
fc=OrderSend(Symbol(),OP_BUYSTOP,NormalizeDouble(KK*Checks(nn-2),2),priceBid,Slippage,0,0,"B",MAGIC+nn,0,clOpenBuy);
}
TradesAlow=false;
}
}
if(MathMod(nn,2)==0)
{
priceBid=Bid-Delta*Point; fc=false; Checks(nn-2);
if(TradesAlow)
{
while(fc==false)
{
fc=OrderSend(Symbol(),OP_SELLSTOP,NormalizeDouble(KK*Checks(nn-2),2),priceBid,Slippage,0,0,"S",MAGIC+nn,0,clOpenSell);
}
TradesAlow=false;
}
}
}
//+------------------------------------------------------------------+
//| Ðàñ÷åò ëîòîâ |
//+------------------------------------------------------------------+
void CalcLots()
{
Lott=NormalizeDouble(AccountFreeMargin()/(1/Lott_0*10000),2); ProfClose=Lott*10;
if(AccountMargin()!=0)
{
if(AccountEquity()/AccountMargin()*100<3000)
{
Lott=LL;
ProfClose=10;
}
}
}
//+------------------------------------------------------------------+
//| Ïîäñ÷åò ïðîôèòà |
//+------------------------------------------------------------------+
string ShowProfit()
{
double Proff=0; PrBuy=0; PrSell=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && (OrderComment()=="B" || OrderComment()=="S" || OrderComment()=="Lock_SELL" || OrderComment()=="Lock_BUY"))
{
Proff=Proff+OrderProfit()+OrderSwap();
if(OrderType()==OP_BUY)
{
PrBuy=PrBuy+OrderProfit()+OrderSwap();
}
if(OrderType()==OP_SELL)
{
PrSell=PrSell+OrderProfit()+OrderSwap();
}
}
}
}
if(AccountMargin()!=0)
{
if(AccountEquity()/AccountMargin()*100<500)
{
if(Proff>=ProfClose)
{
CloseAll(0);
DeleteAllOrders(0);
}
}
}
if(PrBuy>=ProfClose && BStopLoss==0)
{
flagTrStartB=1;
BStopLoss=Bid;
} else if(PrSell>=ProfClose && SStopLoss==0) {
flagTrStartS=1; SStopLoss=Ask;
} else if(ExistOrder(1) && ExistOrder(2) && Proff>=ProfClose) {
if(AccountMargin()!=0)
{
if(AccountEquity()/AccountMargin()*100<1000)
{
flagTrStartB=0;
flagTrStartS=0;
CloseAll(0); DeleteAllOrders(0);
}
}
}
return(Proff);
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ îðäåðà èëè ïîçèöèè ïî íîìåðó |
//+------------------------------------------------------------------+
bool ExistOrder(int mn)
{
bool Exist=False;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC+mn)
{
Exist=True; break;
}
}
}
return(Exist);
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò ôëàã ñóùåñòâîâàíèÿ îòêðûòîãî îðäåðà ïî íîìåðó |
//+------------------------------------------------------------------+
bool ExistOrderTr(int mn)
{
bool Exist=False;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC+mn)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
Exist=True; break;
}
}
}
}
return(Exist);
}
//+------------------------------------------------------------------+
//| Ïîäñ÷åò ëîòà ïîñëåäíåãî îòêðûòîãî îðäåðà |
//+------------------------------------------------------------------+
double Checks(int mn)
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && (OrderMagicNumber()==MAGIC+mn))
{
double OL=OrderLots();
if(OrderType()==OP_SELL)
{
if(Bid-OrderOpenPrice()>2*Delta*Point)
{
TradesAlow=true;
}
}
if(OrderType()==OP_BUY)
{
if(OrderOpenPrice()-Ask>2*Delta*Point)
{
TradesAlow=true;
}
}
}
}
}
return(OL);
}
//+------------------------------------------------------------------+
//| Òèï îðäåðà |
//+------------------------------------------------------------------+
int Tipus()
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && (OrderMagicNumber()==MAGIC+1))
{
int OPL=OrderType();
}
}
}
return(OPL);
}
//+------------------------------------------------------------------+
//| Çàêðûòèå âñåõ ïîçèöèé ïî ðûíî÷íîé öåíå |
//+------------------------------------------------------------------+
void CloseAll(int pp)
{
bool fc; int i;
if(pp==0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && (OrderComment()=="B" || OrderComment()=="S" || OrderComment()=="Lock_SELL" || OrderComment()=="Lock_BUY"))
{
if(OrderType()==OP_BUY)
{
fc=False;
while(fc==False)
{
fc=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clCloseBuy); EE();
}
}
if(OrderType()==OP_SELL)
{
fc=False;
while(fc==False)
{
fc=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clCloseSell); EE();
}
}
if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT)
{
fc=OrderDelete(OrderTicket());
}
if(fc && UseSound) PlaySound(NameFileSound);
}
}
}
}
if(pp==1)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && (OrderComment()=="B" || OrderComment()=="Lock_BUY"))
{
if(OrderType()==OP_BUY)
{
fc=False;
while(fc==False)
{
fc=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clCloseBuy); EE();
}
}
if(OrderType()==OP_SELL)
{
fc=False;
while(fc==False)
{
fc=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clCloseSell); EE();
}
}
if(OrderType()==OP_BUYSTOP)
{
fc=OrderDelete(OrderTicket());
}
if(fc && UseSound) PlaySound(NameFileSound);
}
}
}
}
if(pp==2)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && (OrderComment()=="S" || OrderComment()=="Lock_SELL"))
{
if(OrderType()==OP_SELL)
{
fc=False;
while(fc==False)
{
fc=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clCloseSell); EE();
}
}
if(OrderType()==OP_BUY)
{
fc=False;
while(fc==False)
{
fc=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clCloseBuy); EE();
}
}
if(OrderType()==OP_SELLSTOP)
{
fc=OrderDelete(OrderTicket());
}
if(fc && UseSound) PlaySound(NameFileSound);
}
}
}
}
}
//+------------------------------------------------------------------+
//| âûÿâëåíèå îøèáîê |
//+------------------------------------------------------------------+
void EE()
{
int EError=GetLastError(); // Íå ïîëó÷èëîñü :(
switch(EError) // Ïðåîäîëèìûå îøèáêè
{
case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
RefreshRates(); // Îáíîâèì äàííûå
case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
while(RefreshRates()==false) // Äî íîâîãî òèêà
Sleep(1); // Çàäåðæêà â öèêëå
// continue; // Íà ñëåä. èòåðàöèþ
case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
Sleep(500); // Ïðîñòîå ðåøåíèå
RefreshRates(); // Îáíîâèì äàííûå
}
}
//+------------------------------------------------------------------+
//| Óäàëåíèå âñåõ îðäåðîâ |
//+------------------------------------------------------------------+
void DeleteAllOrders(int mn)
{
bool fd; int i;
if(mn==1)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderComment()=="B")
{
if(OrderType()==OP_BUYSTOP)
{
fd=OrderDelete(OrderTicket());
if(fd && UseSound) PlaySound(NameFileSound);
}
}
}
}
}
if(mn==2)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderComment()=="S")
{
if(OrderType()==OP_SELLSTOP)
{
fd=OrderDelete(OrderTicket());
if(fd && UseSound) PlaySound(NameFileSound);
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Ñòîï-îðäåðíûé òðàëë |
//+------------------------------------------------------------------+
void TrailingPositions(int mn)
{
int i;
if(mn==1)
{
for(i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MAGIC+1))
{
if(BStopLoss<Bid-(TrailingStop+TrailingStep-1)*Point)
{
BStopLoss=BStopLoss+TrailingStep*Point;
if(OrderType()==OP_SELL)
{
ModifyStopLoss(0,BStopLoss,clModifyBuy); BUYOK=true; SELLOK=false;
} else {
ModifyStopLoss(BStopLoss,0,clModifyBuy); BUYOK=true; SELLOK=false;
}
}
}
}
}
}
if(mn==2)
{
for(i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MAGIC+2))
{
if(SStopLoss> Ask+(TrailingStop+TrailingStep-1)*Point)
{
SStopLoss=SStopLoss-TrailingStep*Point;
if(OrderType()==OP_BUY)
{
ModifyStopLoss(0,SStopLoss,clModifySell); SELLOK=true; BUYOK=false;
} else {
ModifyStopLoss(SStopLoss,0,clModifySell); SELLOK=true; BUYOK=false;
}
}
}
}
}
}
if(mn==0)
{
for(i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_SELLSTOP)
{
if(Bid-OrderOpenPrice()>Delta*Point)
{
if(OrderOpenPrice()<Bid-(Delta+TrailingStep-1)*Point)
{
double newpr=Bid-Delta*Point;
ModStopOrders(newpr,OP_SELLSTOP);
}
}
}
if(OrderType()==OP_BUYSTOP)
{
if(OrderOpenPrice()-Ask>Delta*Point)
{
if(OrderOpenPrice()>Ask+(Delta+TrailingStep-1)*Point)
{
double newprBS=Ask+Delta*Point;
ModStopOrders(newprBS,OP_BUYSTOP);
}
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Ìîäèôèêàöèÿ îòë.îðäåðà |
//+------------------------------------------------------------------+
void ModStopOrders(double newprice,string OP)
{
bool fm;
double SL=OrderStopLoss();
if(OP==OP_BUYSTOP)
{
SL=SL+TrailingStep*Point;
}
if(OP==OP_SELLSTOP)
{
SL=SL-TrailingStep*Point;
}
fm=OrderModify(OrderTicket(),newprice,0,0,0,Red);
if(fm && UseSound) {PlaySound(NameFileSound); }
}
//+------------------------------------------------------------------+
//| Ïåðåíîñ óðîâíÿ StopLoss |
//| Ïàðàìåòðû: |
//| ldStopLoss - óðîâåíü StopLoss |
//| clModify - öâåò ìîäèôèêàöèè |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStop,double ldTake,color clModify)
{
bool fm=false; //DeleteAllOrders();
double ldOpen=OrderOpenPrice(); //Comment("BStopLoss - "+ldStop);
while(fm==false) {fm=OrderModify(OrderTicket(),ldOpen,ldStop,ldTake,0,clModify);}
if(fm && UseSound) {PlaySound(NameFileSound); }
}
//+------------------------------------------------------------------+
//| Áåçóáûòîê |
//+------------------------------------------------------------------+
void No_Loss(int mn)
{
double OOP,OSL;
int tip;
bool error=true;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS))
{
tip=OrderType();
if((tip<2 && OrderSymbol()==Symbol()) && (OrderMagicNumber()==MAGIC+mn))
{
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
OSL = NormalizeDouble(OrderStopLoss(),Digits);
// if (OrderMagicNumber()==MAGIC+1&& BStopLoss !=0) {OOP=BStopLoss;}
// if (OrderMagicNumber()==MAGIC+2 && SStopLoss !=0) {OOP=SStopLoss;}
if(tip==0)
{
if((Bid-OOP)/Point>=NoLoss && OOP>OSL)
error=OrderModify(OrderTicket(),OOP,OOP+2*Point,OrderTakeProfit(),0,White);
}
if(tip==1)
{
if((OOP-Ask)/Point>=NoLoss && (OOP<OSL || OSL==0))
error=OrderModify(OrderTicket(),OOP,OOP-2*Point,OrderTakeProfit(),0,White);
}
if(!error) Alert("Error No_Loss ",GetLastError()," ",Symbol());
}
}
}
}
//+------------------------------------------------------------------+
//| Èíôîðìïàíåëü |
//+------------------------------------------------------------------+
void Show()
{
string name_8="5";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,36);
}
ObjectSetText(name_8,"Áàëàíñ: "+DoubleToStr(AccountBalance(),2),g_fontsize_544,"Courier New",g_color_548);
name_8="6";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,56);
}
ObjectSetText(name_8,"Ñðåäñòâà: "+DoubleToStr(AccountFreeMargin(),2),g_fontsize_544,"Courier New",g_color_548);
name_8="7";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,60);
ObjectSet(name_8,OBJPROP_YDISTANCE,76);
}
if(AccountMargin()==0)
{
StopOutPrice=0; ZeroPrice=0;
ObjectSetText(name_8,"Óðîâåíü: ",g_fontsize_544,"Courier New",g_color_548);
}
else
{
if(AccountEquity()/AccountMargin()*100<2000) {g_color_5=Red;} else {g_color_5=Gold;}
ObjectSetText(name_8,"Óðîâåíü: "+DoubleToStr(AccountEquity()/AccountMargin()*100,2),g_fontsize_544,"Courier New",g_color_5);
}
name_8="8";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,60);
ObjectSet(name_8,OBJPROP_YDISTANCE,96);
}
ObjectSetText(name_8,"Ïðîôèò: "+DoubleToStr(ShowProfit(),2),g_fontsize_544,"Courier New",g_color_548);
name_8="13";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,136);
}
ObjectSetText(name_8,"STOPOUT: "+DoubleToStr(StopOutPrice,4),g_fontsize_544,"Courier New",g_color_547);
name_8="14";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,156);
}
ObjectSetText(name_8,"ZEROPRICE: "+DoubleToStr(ZeroPrice,4),g_fontsize_544,"Courier New",Red);
name_8="15";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,176);
}
// ObjectSetText(name_8,"BUY Lots: "+DoubleToStr(LotB,2),g_fontsize_544,"Courier New",g_color_548);
ObjectSetText(name_8,"BUY Lots: "+KolB,g_fontsize_544,"Courier New",g_color_548);
name_8="16";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,196);
}
// ObjectSetText(name_8,"SELL Lots: "+DoubleToStr(LotS,2),g_fontsize_544,"Courier New",g_color_548);
ObjectSetText(name_8,"SELL Lots: "+KolS,g_fontsize_544,"Courier New",g_color_548);
name_8="17";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,216);
}
ObjectSetText(name_8,"BUY Profit: "+DoubleToStr(ProfitB,2),g_fontsize_544,"Courier New",g_color_548);
//ObjectSetText(name_8,"BUYStopLOSS: "+DoubleToStr(BStopLoss,4),g_fontsize_544,"Courier New",g_color_548);
name_8="18";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,236);
}
ObjectSetText(name_8,"SELL Profit: "+DoubleToStr(ProfitS,2),g_fontsize_544,"Courier New",g_color_548);
//ObjectSetText(name_8,"SELLStopLOSS: "+DoubleToStr(SStopLoss,4),g_fontsize_544,"Courier New",g_color_548);
name_8="19";
if(ObjectFind(name_8)==-1)
{
ObjectCreate(name_8,OBJ_LABEL,0,0,0);
ObjectSet(name_8,OBJPROP_CORNER,1);
ObjectSet(name_8,OBJPROP_XDISTANCE,20);
ObjectSet(name_8,OBJPROP_YDISTANCE,256);
}
ObjectSetText(name_8,"ÏðîôèòClose: "+DoubleToStr(ProfClose,2),g_fontsize_544,"Courier New",g_color_548);
}
//+------------------------------------------------------------------+
//| Íàõîäèì ôðàêòàë UP |
//+------------------------------------------------------------------+
int isFractalUp(int w)
{
for(int i=0; i!=w; i++)
{
FRBarUp=0;
if(iFractals(NULL,0,MODE_UPPER,i)!=NULL) { FRBarUp=i; return(i);}
}
return(-1);
}
//+------------------------------------------------------------------+
//| Íàõîäèì ôðàêòàë DWN |
//+------------------------------------------------------------------+
int isFractalDn(int w)
{
for(int i=0; i!=w; i++)
{
FRBarDn=0;
if(iFractals(NULL,0,MODE_LOWER,i)!=NULL) { FRBarDn=i; return(i);}
}
return(-1);
}
//+------------------------------------------------------------------+
//| Àëëèãàòîð |
//+------------------------------------------------------------------+
void SellorBuy()
{
double jaw_val=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORJAW,1);
double teeth_val=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORTEETH,1);
double lips_val=iAlligator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_GATORLIPS,1);
BUYOK=False;
SELLOK=False;
isFractalDn(7);
isFractalUp(7);
if((jaw_val>High[FRBarUp]) && (teeth_val<High[FRBarUp])/*&& (isFractalUp(3) !=-1)*/)
{
BUYOK=True;
}
if((jaw_val<Low[FRBarDn]) && (teeth_val>Low[FRBarDn])/* && (isFractalDn(3) !=-1)*/)
{
SELLOK=True;
}
}
//+------------------------------------------------------------------+
//| Òîðãîâëÿ ïî âðåìåíè |
//+------------------------------------------------------------------+
bool IsTrade()
{
//---
int TekHour=Hour();
bool Trade;
if(TimeStart<TimeEnd && TekHour>=TimeStart && TekHour<TimeEnd)
{
Trade=true; //Comment("Òîðãîâëÿ ðàçðåøåíà!!! ");
}
else
{
if(TimeStart>TimeEnd && (TekHour>=TimeStart || TekHour<TimeEnd))
{
Trade=true; //Comment("Òîðãîâëÿ ðàçðåøåíà!!! ");
}//òîðãîâëÿ íî÷üþ
else {Trade=false;}
}
if(!Trade)
{
//Comment("Òîðãîâëÿ çàïðåùåíà ïî âðåìåíè ");
}
//---
return(Trade);
}
//+------------------------------------------------------------------+
//| Óðîâíè áåçóáûòêà |
//+------------------------------------------------------------------+
int IndikatorLots()
{
//----
if(AccountBalance()==0)return(0);
//----
double TickVal=MarketInfo(Symbol(),MODE_TICKVALUE);
//---- îïðåäåëåíèå êîëè÷åñòâà èíñòðóìåíòîâ è ðàñïðåäåëåíèå ñðåäñòâ äëÿ íèõ
//---- âûñòàâëåíèå óðîâíÿ ìàðæèíêîëà
if(TotalOrders!=OrdersTotal() && AccountBalance()!=0)
{
TotalOrders=OrdersTotal();
double Lot,Lot_1,Lot_2,Lot_3,Lot_4,Lot_5,Lot_6,Lot_7,Lot_8,Lot_9,Lot_10;
for(pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderType()<=OP_SELL)
{
if(OrderType()==OP_BUY){Lot=OrderLots();}
if(OrderType()==OP_SELL){Lot=-OrderLots();}
if(OrderSymbol()==Symbol_1){Lot_1=NormalizeDouble(Lot_1+Lot,2);}
else if(OrderSymbol()==Symbol_2){Lot_2=NormalizeDouble(Lot_2+Lot,2);}
else if(OrderSymbol()==Symbol_3){Lot_3=NormalizeDouble(Lot_3+Lot,2);}
else if(OrderSymbol()==Symbol_4){Lot_4=NormalizeDouble(Lot_4+Lot,2);}
else if(OrderSymbol()==Symbol_5){Lot_5=NormalizeDouble(Lot_5+Lot,2);}
else if(OrderSymbol()==Symbol_6){Lot_6=NormalizeDouble(Lot_6+Lot,2);}
else if(OrderSymbol()==Symbol_7){Lot_7=NormalizeDouble(Lot_7+Lot,2);}
else if(OrderSymbol()==Symbol_8){Lot_8=NormalizeDouble(Lot_8+Lot,2);}
else if(OrderSymbol()==Symbol_9){Lot_9=NormalizeDouble(Lot_9+Lot,2);}
else if(OrderSymbol()==Symbol_10){Lot_10=NormalizeDouble(Lot_10+Lot,2);}
else
{
Alert("\"Inf_Open_Orders\". Ïîÿâèëñÿ îðäåð ïî íåóêàçàííîìó èíñòðóìåíòó ",OrderSymbol(),"!");
return(0);
}
}
}
else Print("Îøèáêà ",GetLastError());
}
Symb=0;
if(Lot_1!=0){Symb++;}
if(Lot_2!=0){Symb++;}
if(Lot_3!=0){Symb++;}
if(Lot_4!=0){Symb++;}
if(Lot_5!=0){Symb++;}
if(Lot_6!=0){Symb++;}
if(Lot_7!=0){Symb++;}
if(Lot_8!=0){Symb++;}
if(Lot_9!=0){Symb++;}
if(Lot_10!=0){Symb++;}
}
if(Symb!=0)
{
PartEquity=(AccountEquity()-AccountStopoutLevel()/100*AccountMargin())/Symb;//ðàñïðåäåë¸ííûå ñðåäñòâà
}
//---- îïðåäåëåíèå ïðîôèòîâ è îáü¸ìîâ ëîòîâ
LotS=0;
ProfitS=0;
LotB=0;
ProfitB=0;
ProfitT=0;
for(pos=OrdersTotal()-1; pos>=0; pos--)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderSymbol()==Symbol())
{
//----
if(OrderType()==OP_BUY)
{
LotB+=OrderLots();
ProfitB+=OrderProfit()+OrderSwap();
}
//----
if(OrderType()==OP_SELL)
{
LotS+=OrderLots();
ProfitS+=OrderProfit()+OrderSwap();
}
//----
ProfitT+=OrderProfit()+OrderSwap();
//----
}
}
else Print("Îøèáêà ïðè äîñòóïå ê ðåàë áàçå (",GetLastError(),")");
}
//---- îïðåäåëåíèå íà÷àëà îòñ÷¸òà â èñòîðèè îðäåðîâ
if(AccountBalance()!=0)
//----
{
int order;
for(pos=OrdersTotal()-1;pos>=0;pos--)//ïîèñê íàëè÷èÿ îòêðûòûõ îðäåðîâ
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderSymbol()==Symbol() && OrderType()<=OP_SELL)
{
order++;
}
}
else Print("Îøèáêà ïðè äîñòóïå ê ðåàë áàçå (",GetLastError(),")");
}
}
//----
text=StringConcatenate("Total History profit (",TimeToStr(CountDate,TIME_DATE|TIME_MINUTES),")=");
ObjectSetText("Inf_HistoryTotal",text,ÐàçìåðØðèôòà,"Arial",DarkOrange);
//----
ProfitHistory=0;
for(pos=OrdersHistoryTotal()-1;pos>=0;pos--)//ïîäñ÷¸ò ïðîôèòà èç èñòîðèè
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderSymbol()==Symbol() && OrderOpenTime()>=CountDate)
{
ProfitHistory+=OrderProfit()+OrderSwap();
}
}
else Print("Îøèáêà ïðè äîñòóïå ê èñòîðè÷åñêîé áàçå (",GetLastError(),")");
}
ProfitHistory=ProfitHistory+ProfitT;
//---- âûñòàâëåíèå íóëåâûõ è StopOut óðîâíåé
LotT=LotB-LotS;
if(LotT!=0)
{
if(LotT>0)//Buy ëîò ïðeèìóùåñòâî
{
HistoryZeroPrice=NormalizeDouble(Bid-(ProfitHistory/LotT/TickVal*Point),Digits);
ZeroPrice=NormalizeDouble(Bid-(ProfitT/LotT/TickVal*Point),Digits);
StopOutPrice=NormalizeDouble(Bid-(PartEquity/LotT/TickVal*Point),Digits);
}
if(LotT<0)//Sell ëîò ïðeèìóùåñòâî
{
HistoryZeroPrice=NormalizeDouble(Ask-(ProfitHistory/LotT/TickVal*Point),Digits);
ZeroPrice=NormalizeDouble(Ask-(ProfitT/LotT/TickVal*Point),Digits);
StopOutPrice=NormalizeDouble(Ask-(PartEquity/LotT/TickVal*Point),Digits);
}
//---- Âûñòàâëåíèå îáùåãî íóëåâîãî ðåàë óðîâíÿ
if(ObjectFind("Line of the zero price")!=0)//îòñóòñòâèå Line zero â ãëàâíîì îêíå
{
ObjectCreate("Line of the zero price",OBJ_TREND,0,Time[5],ZeroPrice,Time[0]+Period()*60*20,ZeroPrice,0,0);
ObjectSetText("Line of the zero price",DoubleToStr(ZeroPrice,Digits));
ObjectSet("Line of the zero price",OBJPROP_RAY,false);
ObjectSet("Line of the zero price",OBJPROP_STYLE,STYLE_SOLID);
ObjectSet("Line of the zero price",OBJPROP_WIDTH,1);
ObjectSet("Line of the zero price",OBJPROP_COLOR,Gold);
}
else if(ObjectFind("Line of the zero price")==0)//íàëè÷èå Line zero â ãëàâíîì îêíå
{
ObjectSetText("Line of the zero price",DoubleToStr(ZeroPrice,Digits));
ObjectSet("Line of the zero price",OBJPROP_TIME1,Time[5]);
ObjectSet("Line of the zero price",OBJPROP_PRICE1,ZeroPrice);
ObjectSet("Line of the zero price",OBJPROP_TIME2,Time[0]+Period()*60*20);
ObjectSet("Line of the zero price",OBJPROP_PRICE2,ZeroPrice);
}
if(ObjectFind("Zero price")!=0)//îòñóòñòâèå Arrow zero â ãëàâíîì îêíå
{
ObjectCreate("Zero price",OBJ_ARROW,0,Time[5],ZeroPrice,0,0,0,0);
ObjectSet("Zero price",OBJPROP_ARROWCODE,5);
ObjectSet("Zero price",OBJPROP_WIDTH,2);
ObjectSet("Zero price",OBJPROP_COLOR,Gold);
}
else if(ObjectFind("Zero price")==0)//íàëè÷èå Arrow zero â ãëàâíîì îêíå
{
ObjectSet("Zero price",OBJPROP_PRICE1,ZeroPrice);
ObjectSet("Zero price",OBJPROP_TIME1,Time[5]);
}
//---- Âûñòàâëåíèå StopOut óðîâíÿ
if(ObjectFind("Line of the StopOut price")!=0)
{
ObjectCreate("Line of the StopOut price",OBJ_TREND,0,Time[5],StopOutPrice,Time[0]+Period()*60*20,StopOutPrice,0,0);
ObjectSetText("Line of the StopOut price",DoubleToStr(StopOutPrice,Digits));
ObjectSet("Line of the StopOut price",OBJPROP_RAY,false);
ObjectSet("Line of the StopOut price",OBJPROP_STYLE,STYLE_SOLID);
ObjectSet("Line of the StopOut price",OBJPROP_WIDTH,2);
ObjectSet("Line of the StopOut price",OBJPROP_COLOR,Brown);
}
else if(ObjectFind("Line of the StopOut price")==0)
{
ObjectSetText("Line of the StopOut price",DoubleToStr(StopOutPrice,Digits));
ObjectSet("Line of the StopOut price",OBJPROP_TIME1,Time[5]);
ObjectSet("Line of the StopOut price",OBJPROP_PRICE1,StopOutPrice);
ObjectSet("Line of the StopOut price",OBJPROP_TIME2,Time[0]+Period()*60*20);
ObjectSet("Line of the StopOut price",OBJPROP_PRICE2,StopOutPrice);
}
if(ObjectFind("StopOut price")!=0)
{
ObjectCreate("StopOut price",OBJ_ARROW,0,Time[5],StopOutPrice,0,0,0,0);
ObjectSet("StopOut price",OBJPROP_ARROWCODE,5);
ObjectSet("StopOut price",OBJPROP_WIDTH,3);
ObjectSet("StopOut price",OBJPROP_COLOR,Brown);
}
else if(ObjectFind("StopOut price")==0)
{
ObjectSet("StopOut price",OBJPROP_PRICE1,StopOutPrice);
ObjectSet("StopOut price",OBJPROP_TIME1,Time[5]);
}
//----
}
else if(LotT==0)
{
if(ObjectFind("Line of the history zero price")==0)ObjectDelete("Line of the history zero price");
if(ObjectFind("History zero price")==0)ObjectDelete("History zero price");
if(ObjectFind("Line of the zero price")==0)ObjectDelete("Line of the zero price");
if(ObjectFind("Zero price")==0)ObjectDelete("Zero price");
if(ObjectFind("Line of the StopOut price")==0)ObjectDelete("Line of the StopOut price");
if(ObjectFind("StopOut price")==0)ObjectDelete("StopOut price");
}
//---- Âûñòàâëåíèå BUY íóëåâîãî óðîâíÿ
if(LotB>0)
{
double BUYZeroPrice;
BUYZeroPrice=NormalizeDouble(Bid-(ProfitB/LotB/TickVal*Point),Digits);
if(ObjectFind("Line of the BUY zero price")!=0)
{
ObjectCreate("Line of the BUY zero price",OBJ_TREND,0,Time[5],BUYZeroPrice,Time[0]+Period()*60*20,BUYZeroPrice,0,0);
ObjectSetText("Line of the BUY zero price",DoubleToStr(BUYZeroPrice,Digits));
ObjectSet("Line of the BUY zero price",OBJPROP_RAY,false);
ObjectSet("Line of the BUY zero price",OBJPROP_STYLE,STYLE_SOLID);
ObjectSet("Line of the BUY zero price",OBJPROP_WIDTH,1);
ObjectSet("Line of the BUY zero price",OBJPROP_COLOR,Chartreuse);
}
else if(ObjectFind("Line of the BUY zero price")==0)
{
ObjectSetText("Line of the BUY zero price",DoubleToStr(BUYZeroPrice,Digits));
ObjectSet("Line of the BUY zero price",OBJPROP_TIME1,Time[5]);
ObjectSet("Line of the BUY zero price",OBJPROP_PRICE1,BUYZeroPrice);
ObjectSet("Line of the BUY zero price",OBJPROP_TIME2,Time[0]+Period()*60*20);
ObjectSet("Line of the BUY zero price",OBJPROP_PRICE2,BUYZeroPrice);
}
if(ObjectFind("BUY Zero price")!=0)
{
ObjectCreate("BUY Zero price",OBJ_ARROW,0,Time[5],BUYZeroPrice,0,0,0,0);
ObjectSet("BUY Zero price",OBJPROP_ARROWCODE,5);
ObjectSet("BUY Zero price",OBJPROP_WIDTH,2);
ObjectSet("BUY Zero price",OBJPROP_COLOR,Chartreuse);
}
else if(ObjectFind("BUY Zero price")==0)
{
ObjectSet("BUY Zero price",OBJPROP_PRICE1,BUYZeroPrice);
ObjectSet("BUY Zero price",OBJPROP_TIME1,Time[5]);
}
}
else if(LotB==0)
{
if(ObjectFind("Line of the BUY zero price")==0)ObjectDelete("Line of the BUY zero price");
if(ObjectFind("BUY Zero price")==0)ObjectDelete("BUY Zero price");
}
//---- Âûñòàâëåíèå SELL íóëåâîãî óðîâíÿ
if(LotS>0)
{
double SELLZeroPrice;
SELLZeroPrice=NormalizeDouble(Ask+(ProfitS/LotS/TickVal*Point),Digits);
if(ObjectFind("Line of the SELL zero price")!=0)
{
ObjectCreate("Line of the SELL zero price",OBJ_TREND,0,Time[5],SELLZeroPrice,Time[0]+Period()*60*20,SELLZeroPrice,0,0);
ObjectSetText("Line of the SELL zero price",DoubleToStr(SELLZeroPrice,Digits));
ObjectSet("Line of the SELL zero price",OBJPROP_RAY,false);
ObjectSet("Line of the SELL zero price",OBJPROP_STYLE,STYLE_SOLID);
ObjectSet("Line of the SELL zero price",OBJPROP_WIDTH,1);
ObjectSet("Line of the SELL zero price",OBJPROP_COLOR,DeepPink);
}
else if(ObjectFind("Line of the SELL zero price")==0)
{
ObjectSetText("Line of the SELL zero price",DoubleToStr(SELLZeroPrice,Digits));
ObjectSet("Line of the SELL zero price",OBJPROP_TIME1,Time[5]);
ObjectSet("Line of the SELL zero price",OBJPROP_PRICE1,SELLZeroPrice);
ObjectSet("Line of the SELL zero price",OBJPROP_TIME2,Time[0]+Period()*60*20);
ObjectSet("Line of the SELL zero price",OBJPROP_PRICE2,SELLZeroPrice);
}
if(ObjectFind("SELL Zero price")!=0)
{
ObjectCreate("SELL Zero price",OBJ_ARROW,0,Time[5],SELLZeroPrice,0,0,0,0);
ObjectSet("SELL Zero price",OBJPROP_ARROWCODE,5);
ObjectSet("SELL Zero price",OBJPROP_WIDTH,2);
ObjectSet("SELL Zero price",OBJPROP_COLOR,DeepPink);
}
else if(ObjectFind("SELL Zero price")==0)
{
ObjectSet("SELL Zero price",OBJPROP_PRICE1,SELLZeroPrice);
ObjectSet("SELL Zero price",OBJPROP_TIME1,Time[5]);
}
}
else if(LotS==0)
{
if(ObjectFind("Line of the SELL zero price")==0)ObjectDelete("Line of the SELL zero price");
if(ObjectFind("SELL Zero price")==0)ObjectDelete("SELL Zero price");
}
//---- çàïîëíåíèå ñòðîê èíôîðìàöèåé
ProfitB=NormalizeDouble(ProfitB,0);
ProfitS=NormalizeDouble(ProfitS,0);
ProfitHistory=NormalizeDouble(ProfitHistory,0);
//ñòðîêà Buy
if(LotB>0)
{
text=DoubleToStr(LotB,2);
}
else if(LotB==0){text="";}
ObjectSetText("Inf_BuyLots",text,ÐàçìåðØðèôòà,"Arial",Aqua);
if(LotB>0)
{
if(ProfitB<0)Color=Red;
if(ProfitB>0)Color=Green;
if(ProfitB==0)Color=Gold;
text=DoubleToStr(ProfitB,0);
}
else if(LotB==0){text="";}
ObjectSetText("Inf_BuyProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//ñòðîêà Sell
if(LotS>0)
{
text=DoubleToStr(LotS,2);
}
else if(LotS==0){text="";}
ObjectSetText("Inf_SellLots",text,ÐàçìåðØðèôòà,"Arial",OrangeRed);
if(LotS>0)
{
if(ProfitS<0)Color=Red;
if(ProfitS>0)Color=Green;
if(ProfitS==0)Color=Gold;
text=DoubleToStr(ProfitS,0);
}
else if(LotS==0){text="";}
ObjectSetText("Inf_SellProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//ñòðîêà òîòàë
if(LotS>0 || LotB>0)
{
LotT=NormalizeDouble(LotB-LotS,2);
if(LotT<0)Color=OrangeRed;
if(LotT>0)Color=Aqua;
if(LotT==0)Color=Gold;
text=DoubleToStr(LotT,2);
}
else if(LotS==0 && LotB==0){text="";}
ObjectSetText("Inf_TotalLots",text,ÐàçìåðØðèôòà,"Arial",Color);
if(LotS>0 || LotB>0)
{
if(ProfitB+ProfitS<0)Color=Red;
if(ProfitB+ProfitS>0)Color=Green;
if(ProfitB+ProfitS==0)Color=Gold;
text=DoubleToStr(ProfitB+ProfitS,0);
}
else if(LotS==0 && LotB==0){text="";}
ObjectSetText("Inf_TotalProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//ñòðîêà History òîòàë
if(LotS>0 || LotB>0)
{
if(ProfitHistory<0)Color=Red;
if(ProfitHistory>0)Color=Green;
if(ProfitHistory==0)Color=Gold;
text=DoubleToStr(ProfitHistory,0);
}
else if(LotS==0 && LotB==0){text="";}
ObjectSetText("Inf_HistoryTotalProfit",text,ÐàçìåðØðèôòà,"Arial",Color);
//----
return(0);
}
//+------------------------------------------------------------------+
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
---