Orders Execution
Indicators Used
Miscellaneous
1
Views
0
Downloads
0
Favorites
qstr5_8_1
ÿþ//+------------------------------------------------------------------+
//| qstr5_8.mq4 |
//| Copyright 2018, QstrQstr |
//| https://www.qstr.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, QstrQstr"
#property link "https://www.qstr.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert initialization function
//-:A?5@B 4;O >4=>3> "$ @02=>3> ?5@8>4C >B:@KB>3> >:=0
// 01>B05< =04 B>G:>9 2E>40
// |
//+------------------------------------------------------------------+
//--- input parameters
//+-----------------------------------------------------------------------------+
extern int TakeProfit = 4500;
extern int StopLoss = 50;
extern double Lots=1; // 5AB:> 7040==>5 :>;8G. ;>B>2
extern double Prots=0.07; // @>F5=B A2>1>4=KE A@54AB2
// 038G5A:89 =><5@ >B:@KB>3> >@45@0
extern int Magic=12345;
//+-----------------------------------------------------------------------------+
sinput string MA = "0AB@>9:8 8=48:0B>@0 Moving average";
extern int ma_period = 20;
extern int ma_shift = 0;
extern ENUM_MA_METHOD ma_method = MODE_EMA;
extern ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;
extern int shift = 0;
extern int Period_MA_1=14; // 5@8>4 1
extern int Period_MA_2=30; // 5@8>4 2
extern int Period_MA_3=120; // 5@8>4 3
extern int v14=1; // 8=. :>@>ABL 87<5=5=8O 2 ?C=:B0E =0 10@ :0: >?@545;5=85 D;5B0
extern int v30=1; // 8=. :>@>ABL 87<5=5=8O 2 ?C=:B0E =0 10@ :0: >?@545;5=85 D;5B0
extern int v120=1; // 8=. :>@>ABL 87<5=5=8O 2 ?C=:B0E =0 10@ :0: >?@545;5=85 D;5B0
extern int n=12; // @0B=>ABL C<5=LH5=8O "$ 8 C25;8G5=8O ?5@8>40 ?@>AG5B0
extern double Rastvor=28.0; // 0AAB>O=85 <564C
datetime tx, tcl;
string
Symb; // A8<2>; 2K1@0==>3> >@45@0
int
cnt=0, // ><5@ >@45@0
Total, // >;8G5AB2> >@45@>2 2 >:=5
Tip=-1, // "8? 2K1@0=. >@45@0 (B=0,S=1 -1 =5B >@45@0)
Ticket, // "8:5B >@45@0
Or=-1, // !>AB>O=85 -1 =5B =0H8E >@45@>2, 645< A83=0;0 >B:@KB8O 109 8;8 A5;;,
// 0 >B:@KB >@45@ 109, 645< A83=0;0 70:@KB8O >@45@0 109,
// 1 >B:@KB >@45@ A5;;, 645< A83=0;8 70:@KB8O A5;;
TrOr=-1,// !83=0; >B:@KB8O >@45@>2 ?>
OpOr=-1,// !83=0; >B:@KB8O >@45@>2 -1 =5B, 0 109, 1 A5;; A >BA5G5=85< 548=8G=KE >H81>:
ClOr=-1,// !83=0; 70:@KB8O >@45@0 -1 =5B, 0 109, 1 A5;;
Handle,
Handle1,
Handle2;// $09;>2K9 >?8A0B5;L
uint
Qnt_Symb,
Qnt_Symb1,
Qnt_Symb2; // >;8G5AB2> 70?8A0==KE A8<2.
string File_Name="QstrV.csv"; // <O D09;0
string File_Name1="QstrV1.csv"; // <O D09;0
string File_Name2="QstrV2.csv"; // <O D09;0
double MA2[26],MA14[26],MA30[26],MA120[26],MA480[26],//>10@=K5 7=0G5=8O 4;O G0A>2>3> B09<D@59<0
//MA2n[26],MA14n[26],MA30n[26],MA120n[26],MA480n[26],// >10@=K5 7=0G5=8O 4;O "$ 5<8= A ?@82545==K< CA@54=5=85< : 1 G0AC
//MA2_5n[26],VMA2_5n[26],// =0G5=85 4;O "$ 5<8= =0 2 10@0E 8 A:>@>ABL 87<5=5=8O =0 ?5@2>< 10@5
VMA2[26],VMA14[26],VMA30[26],VMA120[26],VMA480[26],// !:>@>AB8 87<5=5=8O 2 ?C=:B0E =0 10@ 4;O "$ 1 G0A
//VMA2n[26],VMA14n[26],VMA30n[26],VMA120n[26],VMA480n[26],//!:>@>AB8 87<5=5=8O _n 2 ?C=:B0E =0 10@ 4;O "$ 5<8=
//A CA@54 =0 1G0A
RMA2_14[26],RMA14_30[26],RMA30_120[26],RMA120_480[26],//@07=8F0 2-14, 14-30, 30-120, 120-480
//RMAn2_14[26],RMAn14_30[26],RMAn30_120[26],RMAn120_480[26],// 07=8F0 2n-MA14n, MA14n-MA30n, MA30n-MA120n =0 ?5@2>< 10@5
VRMAn2_14[26],VRMAn14_30[26],VRMAn30_120[26],VRMAn120_480[26]// !:>@>ABL 87<5=5=8O @07=8FK RMAn2_14, RMAn14_30, RMAn30_120,
//RMAn120_480 =0 10@
;
double Ru[66], Rd[66],Bd[66],Bu[66], // 8=B5@20; @>AB0, ?045=8O 2 ?C=:B0E, @0AAB>O=8O 2 10@0E <564C <8= <0E
Mx[66],Mn[66], Max[66],Min[66],Mxn, // <0E, <8= ?> =><5@0< 2 ?C=:B0E
RMx[66],RMn[66],RMxNb[66],RMnNb[66], // @07=8F0 <564C =0945==K< 8 ?@54K4CI8< <8=, <0: 8 ?C=:B0E 8 10@0E 1 C@>2=O
MxNb[66],MnNb[66], MaxNb[66],MinNb[66], // =><5@0 10@>2 <8= 8 <0E
// 2B>@>9 C@>25=L <8= <0E
Ru1[66], Rd1[66],Bd1[66],Bu1[66], // 8=B5@20; @>AB0, ?045=8O 2 ?C=:B0E, @0AAB>O=8O 2 10@0E <564C <8= <0E
Mx1[66],Mn1[66], Mnmx1[66],Mxmn1[66], Mxn1,Nb1, // <0E, <8= ?> =><5@0< 2 ?C=:B0E
RMx1[66],RMn1[66],RMxNb1[66],RMnNb1[66], // @07=8F0 <564C =0945==K< 8 ?@54K4CI8< <8=, <0: 8 ?C=:B0E 8 10@0E 2 C@>2=O
MxNb1[66],MnNb1[66], MnxNb1[66],MxnNb1[66], // =><5@0 10@>2 <8= 8 <0E, MnxNb1 =><5@ <8=8<C<0 <0:A8<>2 1 C@>2=O
Nmxd1[66],Nmxu1[66],Nmnd1[66],Nmnu1[66], //:>;8G5AB2> <8= <0E ?5@2>3> C@>2=O <564C <8= <0E 2B>@>3> C@>2=O
// B@5B89 C@>25=L <8= <0E (?>@O4>:)
Ru2[66], Rd2[66],Bd2[66],Bu2[66], // 8=B5@20; @>AB0, ?045=8O 2 ?C=:B0E, @0AAB>O=8O 2 10@0E <564C <8= <0E
Mx2[66],Mn2[66], Mnmx2[66],Mxmn2[66], Mxn2,Nb2, // <0E, <8= ?> =><5@0< 2 ?C=:B0E
RMx2[66],RMn2[66],RMxNb2[66],RMnNb2[66], // @07=8F0 <564C =0945==K< 8 ?@54K4CI8< <8=, <0: 8 ?C=:B0E 8 10@0E 2 C@>2=O
MxNb2[66],MnNb2[66], MnxNb2[66],MxnNb2[66], // =><5@0 10@>2 <8= 8 <0E, MnxNb1 =><5@ <8=8<C<0 <0:A8<>2 1 C@>2=O
Nmxd2[66],Nmxu2[66],Nmnd2[66],Nmnu2[66] //:>;8G5AB2> <8= <0E ?5@2>3> C@>2=O <564C <8= <0E 2B>@>3> C@>2=O
;
int m,bd,bu,mn,mx,nb,m1,mn1,mx1,
m2,mn2,mx2,m3,mn3,mx3,n1,n2,n3 // m ?>@O4:>2K5 =><5@0 <8=, <0E//bd,bu @0AAB>O=85 2 10@0E <564C <8= <0E//nb =><5@ <8= <0E
;
int Tr=-1, TrOpen=-1,// =0G5=8O B@5=40 , -1 D45B >6840=85, 0 225@E 09, 1 2=87 !5;;
Tr0,Tr1,Tr2,Tr3,Tr4, // =0G5=8O B@5=40 ?>B8:>2> =0 5 B8:0E, 4;O C18@0=8O 548=8G=>9 >H81:8 =0G0;L=KE 7=0G5=89 =0 =>2>< 10@5
TrOpen0,TrOpen1,TrOpen2,TrOpen3,TrOpen4; // =0G5=8O B@5=40 ?>B8:>2> =0 5 B8:0E
double
MA_1_t, // =0G5=. _1 B5:CI55
MA_2_t, // =0G5=. _2 B5:CI55
Lot, // >;8G. ;>B>2 2 2K1@0=.>@45@5
Lts, // >;8G. ;>B>2 2 >B:@K2.>@45@5
Min_Lot, // 8=8<0;L=>5 :>;8G5AB2> ;>B>2
Step, // (03 87<5=5=8O @07<5@0 ;>B0
Free, // "5:CI85 A2>1>4=K5 A@54AB20
One_Lot, // !B>8<>ABL >4=>3> ;>B0
Price, // &5=0 2K1@0==>3> >@45@0
SL, // SL 2K1@0==>3> >@45@0
TP, // TP 2K1@0==>3> >@45@0
ProfB, // ?@>D8B 109 ?@8 >B:@KB>< >@45@5 109
ProfS, // ?@>D8B A5;; ?@8 >B:@KB>< >@45@5 A5;;
MxProfB, // 0:A8<0;L=9 ?@>D8B 109 ?@8 >B:@KB>< >@45@5 109
MxProfS, // 0:A8<0;L=K9 ?@>D8B A5;; ?@8 >B:@KB>< >@45@5 A5;;
MaxAsk = 0, // 0:A8<0;L=0O F5=0 ?@8 >B:@KB>< >@45@5 109
MinBid = 1000, // 8=8<0;L=0O F5=0 ?@8 >B:@KB>< >@45@5 A5;;
kx = 50, // :>MD A@010BK20=8O 70:@KB8O >@45@0
point // 1@0B=0O 25;8G8=0 Point
;
bool
Ans =false, // B25B A5@25@0 ?>A;5 70:@KB8O
Cls_B=false, // @8B5@89 4;O 70:@KB8O Buy
Cls_S=false, // @8B5@89 4;O 70:@KB8O Sell
Opn_B=false, // @8B5@89 4;O >B:@KB8O Buy
Opn_S=false, // @8B5@89 4;O >B:@KB8O Sell
Work=true; // @8B5@89 @01>BK, 5A;8 :@8B8G5A:0O >H81:0 8;8 :>;8G5AB2> =0H8E >@45@>2 1>;55 1
bool sel=false;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
Countinit();// DC=:F8O ?>4AG5B0 >B:@KBKE >@45@>2 8 ?>8A: A =0H8< <038:
//----------
FileTest();
FileTest1();
FileTest2();// DC=:F8O >B:@KB8O D09;0 70?8A8 40==KE
point = 1/Point; // GB>1K =5 45;8BL =0 ?>9=B
tx=TimeCurrent();// 7040=85 2@5<5=8 =0G0;0 @01>BK A>25B=8:0
//--- create timer
EventSetTimer(60);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
FileClose( Handle ); // 0:@K205< D09;
Alert("$09; ",File_Name," 70:@KB.");// !>>1I5=85
FileClose( Handle1 ); // 0:@K205< D09;
Alert("$09; ",File_Name1," 70:@KB.");// !>>1I5=85
FileClose( Handle2 ); // 0:@K205< D09;
Alert("$09; ",File_Name2," 70:@KB.");// !>>1I5=85
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
Total=Count();// >4AG5B >B:@KBKE >@45@>2 A =0H8< <038:, 5A;8 1>;55 1 :>=5F
// @5420@8B.>1@01>B:0
if(Bars<Period_MA_2) // 54>AB0B>G=> 10@>2
{
Alert("54>AB0B>G=> 10@>2 2 >:=5. -:A?5@B =5 @01>B05B.");
return; // KE>4 87 start()
}
if(Work==false) // @8B8G5A:0O >H81:0
{
Alert("@8B8G5A:0O >H81:0. -:A?5@B =5 @01>B05B.");
return; // KE>4 87 start()
}
//--------------------------------------------------------------- 4 --
// >B8:>2>5 ?@8A2>5=85 B@5=40
Tr4=Tr3;
Tr3=Tr2;
Tr2=Tr1;
Tr1=Tr0;
Tr0=Tr;
TrOpen4=TrOpen3;
TrOpen3=TrOpen2;
TrOpen2=TrOpen1;
TrOpen1=TrOpen0;
TrOpen0=TrOpen;
// 2K7>2 DC=:F89 B@5=40, D;030 >B:@KB8O >@45@>2
Tr=IMA();
TrOr=TROR();
TrOpen=TROPEN();
TREND();
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
Print("Tr= ",Tr," 14[1]= ",MA14[1]," V14[1]= ",VMA14[1],
"120[1]= ",MA120[1]," V120[1]= ",VMA120[1]," VR30_120[1]= ",VRMAn30_120[1]);
Comment(">;-2> =0H8E >@45@>2 = ",Total," "8? = ",Tip," ",OrderType()," Or = ",Or," sel = ",sel,
"Magic ",OrderMagicNumber(),"@45@>2 2A53> ",OrdersTotal()," 0@>2 ",Bars,"\n",
""@5=4 = ",Tr,"\n",
"$;03 " = ",TrOr,"\n",
"&5=0 Ask = ",Ask,"\n",
" 07<5@ ?C=:B0 = ",Point,"\n",
">;8G5AB2> 7=0:>2, ?>A;5 70?OB>9 = ",Digits,"\n",
"><5@ 2K1@0==. >@4 ",cnt," = ","\n",// .
""8:5B 2K1@0==. >@4 ",Ticket," = ",OrderTicket(),
"&5=0 2K1@0==. >@4. ",Price," = ",OrderOpenPrice(),"\n",//
" SL 2K1@0==>3> >@4. ",SL," = ",OrderStopLoss(),"\n",//
"TP 2K1@0==>3> >@4. ",TP," = ",OrderTakeProfit(),"\n",//
">;8G5AB2> ;>B>2 ",Lot," = ",OrderLots() //
);
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb1=FileWrite(Handle1,var1," Or= ",Or," Tip= ",Tip," 2:= ",Ask,
" Price= ",Price," ProfB = ",ProfB,
" MxProfB = ",MxProfB," ProfS = ",ProfS,
" MxProfS = ",MxProfS, " kx = ",kx
);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
tx=tm;
};
//---
if(tcl!=tm && tm>=tcl+1620 && ClOr==-1)
{
if(Or==-1)
{
if(TrOr==0 //&& TrV==0 && TrS==0
)
{
MinBid=1000;
MxProfS=0;
ProfS=0;
MaxAsk=0;
MxProfB=0;
ProfB=0;
kx = 50;
OpOr=0;
Or=OpenOr(OpOr);
return;
}
if(TrOr==1 //&& TrV==1 && TrS==1
)
{
MaxAsk=0;
MxProfB=0;
ProfB=0;
MinBid=1000;
MxProfS=0;
ProfS=0;
kx = 50;
OpOr=1;
Or=OpenOr(OpOr);
return;
}
OpOr=-1;
return;
}
}
//-------------------------------------------------------------------------------------
// @>?CA: 545=8G=>3> 87<5=5=8O >@45@0 =0 A<5=5 10@0 8 ?@8 A<5=5 B@5=40 70:@KB85 >@45@0
//---------------------------------------------------------------------------------------
if(Or==0)
{
ProfB = round((Ask-Price)*point);
if( Ask>MaxAsk )
{MaxAsk=Ask;
MxProfB=round((MaxAsk-Price)*point);
}
if( MxProfB > 800 )
{ kx=1.1; }
if( MxProfB > 700 && MxProfB <= 800 )
{ kx=1.25; }
if( MxProfB > 180 && MxProfB <= 700 )
{ kx=5; }
if( MxProfB > 80 && MxProfB <= 180 )
{ kx=8; }
if(
(ProfB > 4 && ProfB * kx < MxProfB) || ProfB > 100 // || MxProfB > 40 && MxProfB * -1 < ProfB && ProfB < -4
)
{
ClOr=0;
Or=CloseOr(ClOr);
MaxAsk=0;
MxProfB=0;
ProfB=0;
MinBid=1000;
MxProfS=0;
ProfS=0;
kx = 50;
tcl=tm;
return;
}
if( MxProfB <= 80 )
{return; }
}
if(Or==1)
{
ProfS = round((Price - Bid) *point);
if( Bid<MinBid )
{MinBid=Bid;
MxProfS=round((Price - MinBid)*point);
}
if( MxProfS > 800 )
{ kx=1.1; }
if( MxProfS > 700 && MxProfS <= 800 )
{ kx=1.25; }
if( MxProfS > 180 && MxProfS <= 700 )
{ kx=5; }
if( MxProfS > 80 && MxProfS <= 180 )
{ kx=8; }
if(
(ProfS > 4 && ProfS * kx < MxProfS) || ProfS > 100 // || MxProfS > 40 && MxProfS * -1 < ProfS && ProfS < -4
)
{
ClOr=1;
Or=CloseOr(ClOr);
MaxAsk=0;
MxProfB=0;
ProfB=0;
MinBid=1000;
MxProfS=0;
ProfS=0;
kx = 50;
tcl=tm;
return;
}
if( MxProfS <= 80 )
{return; }
}
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
}
//+------------------------------------------------------------------+
int Countinit() // !G5BG8: >@45@>2 ?@8 8=8F80;870F88, >72@0I05B :>;8G5AB2> >@45@>2 A =0H8< <038:
{
int Totalin=0;
for(int cin=0; cin<OrdersTotal(); cin++)
{
if(sel=OrderSelect(cin,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
Totalin++;
}
}
if(Totalin>0) // 5 1>;55 >4=>3> >@45@0 A =0H8< <038: 2 =0G0;5 @01>BK M:A?5@B0
{
Alert(">;8G5AB2> >@45@>2 A =0H8< <038: = ",Totalin," ><5=O9B5 <038: 8;8 C40;8B5 >@45@0. -:A?5@B =5 @01>B05B.");
Comment("I81:0 - :>;8G5AB2> >@45@>2 A =0H8< 038: = ",Totalin);
Work=false;
return(Totalin); // KE>4 87 Countinit()
}
Work=true;
return(Totalin);
}
//>=5F ?>4AG5B0 >@45@>2 ?@8 8=8F80;870F88 M:A?5@B0+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int Count() // !G5BG8: >@45@>2, >72@0I05B 7=0G5=8O =0H53> >@45@0 8 :>;8G5AB2> >@45@>2 A =0H8< <038:
{
Total=0;
Ticket=0; // ><5@ 2K1@0==. >@4.
Symb=""; //=AB@C<5=B >@45@0
Tip=-1; // "8? 2K1@0==>3> >@4.
Price=0; // &5=0 2K1@0==. >@4.
SL=0; // SL 2K1@0==>3> >@4.
TP=0; // TP 2K1@0==>3> >@4.
Lot=0; // >;8G5AB2> ;>B>2
for(cnt=0; cnt<OrdersTotal(); cnt++)
{
if(sel=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
Total++;
}
}
// Alert(Total);
if(Total>1) // 5 1>;55 >4=>3> >@4
{
Alert("@45@>2 A =0H8< <038: 1>;LH5 >4=>3> = ",Total," ><5=O9B5 <038: 8;8 C40;8B5 >@45@0. -:A?5@B =5 @01>B05B.");
Comment("I81:0 2> 2@5<O @01>BK, :>;8G5AB2> >@45@>2 A =0H8< 038: = ",Total);
Work=false;
return(Total); // KE>4 87 Count()
}
if(Total==1)
{
Ticket=OrderTicket(); // ><5@ 2K1@0==. >@4.
Tip =OrderType(); // "8? 2K1@0==>3> >@4.
Symb= Symbol(); //=AB@C<5=B 2K1@0==>3> >@45@0;
Price =OrderOpenPrice(); // &5=0 2K1@0==. >@4.
SL =OrderStopLoss(); // SL 2K1@0==>3> >@4.
TP =OrderTakeProfit(); // TP 2K1@0==>3> >@4.
Lot =OrderLots(); // >;8G5AB2> ;>B>2
if(Tip==OP_BUY)Or=0;
if(Tip==OP_SELL)Or=1;
if(Tip==OP_BUYSTOP)Or=4;
if(Tip==OP_SELLSTOP )Or=5;
Work=true;
return(Total); // KE>4 87 Count()
}
if(Total==0)
{
Or=-1;
Total=0;
Ticket=0; // ><5@ 2K1@0==. >@4.
Symb=""; //=AB@C<5=B >@45@0
Tip=-1; // "8? 2K1@0==>3> >@4.
Price=0; // &5=0 2K1@0==. >@4.
SL=0; // SL 2K1@0==>3> >@4.
TP=0; // TP 2K1@0==>3> >@4.
Lot=0; // >;8G5AB2> ;>B>2
Work=true;
}
return(Total);
}
//>=5F ?>4AG5B0 >@45@>2+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//>4AG5B A:>;L7OI8E A@54=8E ?>10@=>, 2>72@0I05B B@5=4 Tr -1 D;5B, 0 225@E 09, 1 2=87 !5;;
int IMA()
{
for(int i=0; i<22; i++)
{
MA2[i]=NormalizeDouble((iMA(NULL,0,2,ma_shift,ma_method,applied_price,i)),7);
// MA2n[i]=NormalizeDouble((iMA(NULL,Period()/n,14,ma_shift,ma_method,applied_price,i)),7);
// MA2_5n[i]=NormalizeDouble((iMA(NULL,Period()/n,2,ma_shift,ma_method,applied_price,i)),7);
MA14[i]=NormalizeDouble((iMA(NULL,0,14,ma_shift,ma_method,applied_price,i)),7);
// MA14n[i]=NormalizeDouble((iMA(NULL,Period()/n,14*n,ma_shift,ma_method,applied_price,i)),7);
MA30[i]=NormalizeDouble((iMA(NULL,0,30,0,ma_method,applied_price,i)),7);
// MA30n[i]=NormalizeDouble ((iMA(NULL,Period()/n,30*n, ma_shift,ma_method,applied_price,i)),7);
MA120[i]=NormalizeDouble((iMA(NULL,0,120,ma_shift,ma_method,applied_price,i)),7);
// MA120n[i]=NormalizeDouble((iMA(NULL,Period()/n,120*n,ma_shift,ma_method,applied_price,i)),7);
MA480[i]=NormalizeDouble((iMA(NULL,0,480,ma_shift,ma_method,applied_price,i)),7);
// MA480n[i]=NormalizeDouble((iMA(NULL,Period()/n,480*n,ma_shift,ma_method,applied_price,i)),7);
}
for(int i=0; i<22; i++)
{
// VMA2_5n[i]=NormalizeDouble(((MA2_5n[i]-MA2_5n[i+1])/Point),2);
// VMA2n[i]=NormalizeDouble(((MA2n[i]-MA2n[i+1])/Point),2);
// VMA14n[i]=NormalizeDouble(((MA14n[i]-MA14n[i+1])/Point),2);
// VMA30n[i]=NormalizeDouble(((MA30n[i]-MA30n[i+1])/Point),2);
// VMA120n[i]=NormalizeDouble(((MA120n[i]-MA120n[i+1])/Point),2);
// VMA480n[i]=NormalizeDouble(((MA480n[i]-MA480n[i+1])/Point),2);
VMA2[i]=NormalizeDouble(((MA2[i]-MA2[i+1])*point),2);
VMA14[i]=NormalizeDouble(((MA14[i]-MA14[i+1])*point),2);
VMA30[i]=NormalizeDouble(((MA30[i]-MA30[i+1])*point),2);
VMA120[i]=NormalizeDouble(((MA120[i]-MA120[i+1])*point),2);
VMA480[i]=NormalizeDouble(((MA480[i]-MA480[i+1])*point),2);
RMA120_480[i]=NormalizeDouble((MA120[i]-MA480[i])*point,2);
RMA30_120[i]=NormalizeDouble((MA30[i]-MA120[i])*point,2);
RMA14_30[i]=NormalizeDouble((MA14[i]-MA30[i])*point,2);
RMA2_14[i]=NormalizeDouble((MA2[i]-MA14[i])*point,2);
// RMAn2_14[i]=NormalizeDouble((MA2n[i]-MA14n[i])/Point,2);
// RMAn14_30[i]=NormalizeDouble((MA14n[i]-MA30n[i])/Point,2);
// RMAn30_120[i]=NormalizeDouble((MA30n[i]-MA120n[i])/Point,2);
// RMAn120_480[i]=NormalizeDouble((MA120n[i]-MA480n[i])/Point,2);
VRMAn2_14[i]=NormalizeDouble((RMA2_14[i]-RMA2_14[i+1]),2);
VRMAn14_30[i]=NormalizeDouble((RMA14_30[i]-RMA14_30[i+1]),2);
VRMAn30_120[i]=NormalizeDouble((RMA30_120[i]-RMA30_120[i+1]),2);
VRMAn120_480[i]=NormalizeDouble((RMA120_480[i]-RMA120_480[i+1]),2);
}
// @>25@:0 D;5B0 8 =5CAB>9G82>3> B@5=40
if(
(MathAbs(RMA30_120[1])<100 && MathAbs(VMA120[1])<1.2 && MathAbs(VMA14[1])<0.2 && MathAbs(VMA30[1])<0.2) ||
( VMA14[1]>=0 && VMA30[1]>0 && VMA120[1]<0 && MathAbs(RMA30_120[1])<=340) ||
( VMA14[1]<=0 && VMA30[1]<0 && VMA120[1]>0 && MathAbs(RMA30_120[1])<=340) ||
(VMA14[1]>0 && VMA30[1]<0 && MathAbs(VMA120[1])<1.8 && MathAbs(RMA30_120[1])<=340) ||
(VMA14[1]<0 && VMA30[1]>0 && MathAbs(VMA120[1])<1.8 && MathAbs(RMA30_120[1])<=340)
)
{
Tr=-1;
return(Tr);
}
// @>25@:0 CAB>9G82>3> B@5=40
if(
( RMA30_120[1]>=600 && VMA120[1]>=1) ||
( RMA30_120[1]>=500 && RMA14_30[1]>=30 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=400 && RMA14_30[1]>=50 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=300 && RMA14_30[1]>=80 && VMA14[1]>=-0.4 && VMA30[1]>=0.01 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=200 && RMA14_30[1]>=60 && VMA14[1]>=-0.2 && VMA30[1]>=0.1 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=100 && RMA14_30[1]>=30 && VMA14[1]>=-0.1 && VMA30[1]>=0.2 && VMA120[1]>=1.8 )
)
{
Tr=0;
return(Tr);
}
if(
(RMA30_120[1]<=-600 && VMA120[1]<=-1) ||
( RMA30_120[1]<=-500 && RMA14_30[1]<=-30 && VMA120[1]<=-1.8 ) ||
( RMA30_120[1]<=-400 && RMA14_30[1]<=-50 && VMA120[1]<=-1.8 ) ||
( RMA30_120[1]<=-300 && RMA14_30[1]<=-80 && VMA14[1]<=0.4 && VMA30[1]<=-0.01 && VMA120[1]<=-1.8 ) ||
( RMA30_120[1]<=-200 && RMA14_30[1]<=-60 && VMA14[1]<=0.2 && VMA30[1]<=-0.1 && VMA120[1]<=-1.8 ) ||
(RMA30_120[1]<=-100 && RMA14_30[1]<=-30 && VMA14[1]<=0.1 && VMA30[1]<=-0.2 && VMA120[1]<=-1.8)
)
{
Tr=1;
return(Tr);
}
// @>25@:0 A@54=53> B@5=40 8;8 53> =0G0;0
// if(
// VMA120n[1]>1.8 &&
// VMA30n[1]>1 &&
// VMA14n[1]>2 &&
// VRMAn12[1]>=0.5
// )
// {
// Tr=0;
// return(Tr);
// }
// if(
// VMA120n[1]<-1.8 &&
// VMA30n[1]<-1 &&
// VMA14n[1]<-2 &&
// VRMAn12[1]<=-0.5
// )
// {
// Tr=1;
// return(Tr);
// }
Tr=-1;
return(Tr);
}
//>=5F ?>4AG5B0 8 >?@545;5=85 B@5=40 4;O A>AB>O=8O 157 >@45@>2-----------+
// CAB0=>2:0 D;030 >B:@KB8O >@45@0
int TROR()
{
if(
VMA2[1]>0&&
VMA14[1]>0&&
VMA30[1]>0&&
VMA120[1]>0&&
RMA2_14[1]<20&&
// Close[1]<MA14[1]&&
Close[0]>MA14[1]
)
{
TrOr=0;
return(TrOr);
}
if(
VMA2[1]<0&&
VMA14[1]<0&&
VMA30[1]<0&&
VMA120[1]<0&&
RMA2_14[1]<20&&
// Close[1]>MA14[1]&&
Close[0]<MA14[1]
)
{
TrOr=1;
return(TrOr);
}
TrOr=-1;
return(TrOr);
}
//+------------------------------------------------------------------+
//?@545;5=85 B@5=40 ?@8 >B:@KB>< >@45@5-------------------------------------+
int TROPEN()
{
if(
( RMA30_120[1]>=600 && VMA120[1]>=1) ||
( RMA30_120[1]>=500 && RMA14_30[1]>=30 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=400 && RMA14_30[1]>=50 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=300 && RMA14_30[1]>=80 && VMA14[1]>=-0.4 && VMA30[1]>=0.01 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=200 && RMA14_30[1]>=60 && VMA14[1]>=-0.2 && VMA30[1]>=0.1 && VMA120[1]>=1.8 ) ||
( RMA30_120[1]>=100 && RMA14_30[1]>=30 && VMA14[1]>=-0.1 && VMA30[1]>=0.2 && VMA120[1]>=1.8 )
)
{
TrOpen=0;
return(TrOpen);
}
if(
(RMA30_120[1]<=-600 && VMA120[1]<=-1) ||
(RMA30_120[1]<=-500 && RMA14_30[1]<=-30 && VMA120[1]<=-1.8 ) ||
( RMA30_120[1]<=-400 && RMA14_30[1]<=-50 && VMA120[1]<=-1.8 ) ||
( RMA30_120[1]<=-300 && RMA14_30[1]<=-80 && VMA14[1]<=0.4 && VMA30[1]<=-0.01 && VMA120[1]<=-1.8 ) ||
( RMA30_120[1]<=-200 && RMA14_30[1]<=-60 && VMA14[1]<=0.2 && VMA30[1]<=-0.1 && VMA120[1]<=-1.8 ) ||
(RMA30_120[1]<=-100 && RMA14_30[1]<=-30 && VMA14[1]<=0.1 && VMA30[1]<=-0.2 && VMA120[1]<=-1.8)
)
{
TrOpen=1;
return(TrOpen);
}
TrOpen=-1;
return(TrOpen);
}
//>=5F CG5B0 D;03> >B:@KB8O >@45@>2+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//
//+------------------------------------------------------------------+
//>4AG5B 4;8B5;L=>AB8 @>AB0 ?045=89, <0:A, <8= 8 >?@545;5=85 B@5=40
int TREND()
{
//--------------------<0:A8<C<K <8=8<C<K ?5@2>3> ?>@O4:0 -----------------------------------
m=1;mn=1;mx=1;bu=1;bd=1;Mxn=Close[1];Mx[0]=Close[1];Mn[0]=Close[1];Max[0]=Close[1];Min[0]=Close[1];
for(int i=1; i<132; i++)
{
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
if(
Close[i]>=Close[i+1] && Close[i+1]>=Close[i+2]
)
{bu++;} // :>;8G5AB2> 10@>2 @>AB0 4> <8=8<C<0, AG5B 2 10@0E 845B =0704 ?> 2@5<5=8, ?>MB><C =0>1>@>B
if(
Close[i]<=Close[i+1] && Close[i+1]<=Close[i+2]
)
{bd++;} // :>;8G5AB2> 10@>2 ?045=8O 4> <0:A8<C<0
//-------------------- <0:A8<C<K ?5@2>3> ?>@O4:0 -----------------------------------
if(
Close[i]<Close[i+1] && Close[i+1]>Close[i+2]
)
{
Mx[mx]=Close[i+1]; // C@>25=L <0:A8<C<0
Bd[mx]=bd; //:>;8G5AB2> 10@>2 <564C ?@54K4CH8< <8= 8 =0945==K< <0:A, ?5@2K9 <8= <0E @02=K C@>2=N ?5@2>3> 10@0
Rd[mx]=round((Mxn-Mx[mx])/Point); // @07=8F0 2 ?C=:B0E <564C ?@54K4CI8< <8=8<C<>< 8 =0945==K< <0:A8<C<><
MxNb[mx]=i+1; // =><5@ 10@0 <0:A8<C<0
RMx[mx]=round(( Mx[mx-1]- Mx[mx])/Point); //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<><, >B@8F0B ?045=85 ?>;>68B @>AB
RMxNb[mx]= MxNb[mx]- MxNb[mx-1]; //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<><
Mxn=Mx[mx]; // ?@8A20820=85 7=0G5=8O C@>2=O 4;O ?>4AG5B0 @07=8FK 2 ?C=:B0E A> A;54CNI8< <8=8<C<>< 8;8 <0:A8<C<><
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb2=FileWrite(Handle2,var1," Max ",m," mx ",mx," / ", Mx[mx]," / ",Bd[mx]," / ",Rd[mx],
" / ",MxNb[mx], " RMx ",RMx[mx]," RMxNb ",RMxNb[mx]
);//0?8AL 2 D09;
if(Qnt_Symb2<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
n1 = i+1;
string ns1 = string (i+1);
string tm = string (Time[i+1]);
if(n1<132)
{
string NameObjmx="Max_" + ns1 + "_"+ tm;
bool created=ObjectCreate(0,NameObjmx,OBJ_ARROW_THUMB_DOWN,0,Time[i+1],High[i+1]);
if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3
{
//--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@
ObjectSetInteger(0,NameObjmx,OBJPROP_ANCHOR,ANCHOR_BOTTOM);
//--- ?>A;54=89 HB@8E - ?>:@0A8<
ObjectSetInteger(0,NameObjmx,OBJPROP_COLOR,clrRed);
}
}
// if()
m++;mx++; // 2 :>=F5 m :>;8G5AB2> M:AB@5<C<>2, mx :>;8G5AB2> <0:A8<C<>2
bu=1;bd=1;
}
//--------------------<8=8<C<K ?5@2>3> ?>@O4:0 -----------------------------------
if(
Close[i]>Close[i+1] && Close[i+1]<Close[i+2]
)
{
Mn[mn]=Close[i+1]; // C@>25=L <8=8<C<0
Bu[mn]=bu; //:>;8G5AB2> 10@>2 <564C ?@54K4CH8< <0E 8 =0945==K< <8=, ?5@2K9 <8= <0E @02=K C@>2=N 13> 10@0
Ru[mn]=round((Mxn-Mn[mn])/Point); // @07=8F0 2 ?C=:B0E <564C ?@54K4CI8< <0:A8<C<>< 8 =0945==K< <8=88<C<><
MnNb[mn]=i+1; // =><5@ 10@0 =0945==>3> <8=88<C<0
RMn[mn]=round((Mn[mn-1]- Mn[mn])/Point); //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <8=8<C<><, >B@8F0B ?045=85 ?>;>68B @>AB
RMnNb[mn]= MnNb[mn]- MnNb[mn-1]; //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <8=8<C<><
Mxn=Mn[mn];
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb2=FileWrite(Handle2,var1," Min ",m," mn ",mn," / ", Mn[mn]," / ",Bu[mn]," / ",Ru[mn],
" / ",MnNb[mn]," RMn ",RMn[mn]," RMnNb ",RMnNb[mn]
);//0?8AL 2 D09;
if(Qnt_Symb2<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
int n11 = i+1;
string ns11 = string (i+1);
string tm = string (Time[i+1]);
if(n11<132)
{
string NameObjmn="Min_" + ns11 + "_"+tm;
bool created=ObjectCreate(0,NameObjmn,OBJ_ARROW_THUMB_DOWN,0,Time[i+1],Low[i+1]);
if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3
{
//--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@
ObjectSetInteger(0,NameObjmn,OBJPROP_ANCHOR,ANCHOR_TOP);
//--- ?>A;54=89 HB@8E - ?>:@0A8<
ObjectSetInteger(0,NameObjmn,OBJPROP_COLOR,clrBlue);
}
}
m++; mn++;
bu=1;bd=1;
}
}
m1=m; mx1=mx; mn1=mn; // :>;8G5AB2> M:AB@5<C<>2, <0:A8<C<>2 8 <8=8<C<>2 13> ?>@O4:0
//-------------------- <0:A8<C<K <8=8<C<K 2B>@>3> ?>@O4:0-----------------------------------
//--------------------AG8B05< @>AB ?045=85 A@548 <0:A8<C<>2 ?5@2>3> ?>@O4:0----------------------------------------------
m=1;mn=1;mx=1;bu=1;bd=1;Nb1=1;int Nbxn1=1;Mxn1=Mx[1];Mx1[0]=Mx[1];Mn1[0]=Mn[1];
Mnmx1[0]=Mx[1];Mxmn1[0]=Mn[1];MxNb1[0]=MxNb[1];MnxNb1[0]=MxNb[1];
for(int i=1; i<mx1-2; i++)
{
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
if(
Mx[i]>=Mx[i+1] && Mx[i+1]>=Mx[i+2]
)
{bu++;}
if(
Mx[i]<=Mx[i+1] && Mx[i+1]<=Mx[i+2]
)
{bd++;}
//-------------------- 8I5< <0:A8<C<K 2 ?>@O4:0 A@548 <0:A8<C<>2 1 ?>@O4:0-------------------
if(
Mx[i]<Mx[i+1] && Mx[i+1]>Mx[i+2]
)
{
Mx1[mx]=Mx[i+1]; //C@>25=L =0945==>3> <0:A8<C<0 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 (F5=0)
MxNb1[mx]=MxNb[i+1]; //=><5@ 10@0 =0945==>3> <0:A8<C<0 2 ?>@O4:0
Nmxd1[mx]=bd; // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0
Bd1[mx]=MxNb1[mx]-Nb1; // :>;8G5AB2> 10@>2 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0
Rd1[mx]=round((Mxn1-Mx1[mx])/Point); // ?045=85 2 ?C=:B0E >B =0945==>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CH53> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0
RMx1[mx]=round(( Mx1[mx]- Mx1[mx-1])/Point); //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB
RMxNb1[mx]= MxNb1[mx]- MxNb1[mx-1]; //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0
Mxn1=Mx1[mx];
Nb1=MxNb1[mx];
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb1=FileWrite(Handle1,var1," Maxmx1 ",m," mx ",mx," / ", Mx1[mx]," / ",Bd1[mx]," / ",Rd1[mx],
" / ",MxNb1[mx]," Nmxd1 ",Nmxd1[mx]," RMx1 ",RMx1[mx]," RMxNb1 ",RMxNb1[mx]
);//0?8AL 2 D09;
if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
string ns2=string (Nb1);
string tm2 = string (Time[n2]);
// string ns2 = string Nb1;
string NameObjmx1="Max2_"+ns2+"_"+tm2;
bool created=ObjectCreate(0,NameObjmx1,OBJ_ARROW_THUMB_DOWN,0,Time[n2],High[n2]+(15*Point));
if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3
{
//--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@
ObjectSetInteger(0,NameObjmx1,OBJPROP_ANCHOR,ANCHOR_BOTTOM);
//--- ?>A;54=89 HB@8E - ?>:@0A8<
ObjectSetInteger(0,NameObjmx1,OBJPROP_COLOR,clrPeru);
}
// if()
m++;mx++;
bu=1;bd=1;
}
//-------------------- 8I5< <8=<<0;L=K5 <0:A8<C<K 2 ?>@O4:0 A@548 <0:A8<C<>2 1 ?>@O4:0-------------------
if(
Mx[i]> Mx[i+1] && Mx[i+1]<Mx[i+2] // 8I5< <8=<0EA A@548 <0:A<8<>2 1 ?>@O4:0
)
{
Mnmx1[mn]=Mx[i+1]; // 8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)
MnxNb1[mn]=MxNb[i+1]; // <8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 =><5@ 10@0
Nmxu1[mn]=bu; // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0
Bu1[mn]=MnxNb1[mn]-Nbxn1; //:>;8G5AB2> 10@>2 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@5;K;CH8< <0:A8<C<>< 2 ?>@O4:0
Ru1[mn]=round((Mxn1-Mnmx1[mn])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CI53> <0:A8<C<0 2 ?>@O4:0
Mxn1=Mnmx1[mn];
Nbxn1=int (MnxNb1[mn]);
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb1=FileWrite(Handle1,var1," Minmx1 ",m," mn ",mn," / ", Mnmx1[mn]," / ",Bu1[mn]," / ",Ru1[mn],
" / ",MnxNb1[mn]," / ", Nmxu1[mn]
);//0?8AL 2 D09;
if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
m++;mn++;
bu=1;bd=1;
}
}
mx2=mx; //:>;8G5AB2> <0:A8<C<>2 2 ?>@O4:0
m2=m; //:>;8G5AB2> M:AB@5<C<>2 2 <0:A8<C<0E 2 ?>@O4:0
//-------------------- 8=8<C<K 2 ?>@O4:0 -----------------------------------
m=1;mn=1;mx=1;bu=1;bd=1;Nb1=1;Nbxn1=1;Mxn1=Mn[1];Mx1[0]=Mx[1];Mn1[0]=Mn[1];Mnmx1[0]=Mx[1];
Mxmn1[0]=Mn[1];MxNb1[0]=MxNb[0];MnxNb1[0]=MxNb[0];
for(int i=1; i<mn1-2; i++)
{
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
if(
Mn[i]>=Mn[i+1] && Mn[i+1]>=Mn[i+2]
)
{bu++;}
if(
Mn[i]<=Mn[i+1] && Mn[i+1]<=Mn[i+2]
)
{bd++;}
//-------------------- 8I5< <8=<<C<K 2 ?>@O4:0 A@548 <8=8<C<>2 1 ?>@O4:0-------------------
if(
Mn[i]>Mn[i+1] && Mn[i+1]<Mn[i+2]
)
{
Mn1[mn]=Mn[i+1]; //C@>25=L =0945==>3> <0:A8<C<0 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 (F5=0)
MnNb1[mn]=MnNb[i+1]; //=><5@ 10@0 =0945==>3> <0:A8<C<0 2 ?>@O4:0
Nmnu1[mn]=bu; // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0
Bu1[mn]=MnNb1[mn]-Nb1; // :>;8G5AB2> 10@>2 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0
Ru1[mn]=round((Mxn1-Mn1[mn])/Point); // ?045=85 2 ?C=:B0E >B =0945==>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CH53> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0
RMn1[mn]=round(( Mn1[mn]- Mn1[mn-1])/Point); //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB
RMnNb1[mn]= MnNb1[mn]- MnNb1[mn-1]; //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0
Mxn1=Mn1[mn];
Nb1=MnNb1[mn];
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb1=FileWrite(Handle1,var1," Minmn1 ",m," mn ",mn," / ", Mn1[mn]," / ",Bu1[mn]," / ",Ru1[mn],
" / ",MnNb1[mn]," Nmnd1 ",Nmnd1[mn]," RMn1 ",RMn1[mn]," RMnNb1 ",RMnNb1[mn]
);//0?8AL 2 D09;
if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
n2=int (Nb1);
string ns22 = string (n2);
string tm22 = string (Time[n2]);
string NameObjmn1="Min2_"+ns22+"_"+tm22;
bool created=ObjectCreate(0,NameObjmn1,OBJ_ARROW_THUMB_DOWN,0,Time[n2],Low[n2]-(15*Point));
if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3
{
//--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@
ObjectSetInteger(0,NameObjmn1,OBJPROP_ANCHOR,ANCHOR_TOP);
//--- ?>A;54=89 HB@8E - ?>:@0A8<
ObjectSetInteger(0,NameObjmn1,OBJPROP_COLOR,clrAquamarine);
}
m++;mn++;
bu=1;bd=1;
}
//-------------------- 8I5< <0:A8<0;L=K5 <8=<<C<K 2 ?>@O4:0 A@548 <8=8<C<>2 1 ?>@O4:0-------------------
if(
Mn[i]< Mn[i+1] && Mn[i+1]> Mn[i+2]
)
{
Mxmn1[mx]=Mn[i+1]; // 8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)
MxnNb1[mx]=MnNb[i+1]; // <8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 =><5@ 10@0
Nmnd1[mx]=bd; // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0
Bd1[mn]=MxnNb1[mx]-Nbxn1; //:>;8G5AB2> 10@>2 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@5;K;CH8< <0:A8<C<>< 2 ?>@O4:0
Rd1[mn]=round((Mxn1-Mxmn1[mx])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CI53> <0:A8<C<0 2 ?>@O4:0
Mxn1=Mxmn1[mx];
Nbxn1= int (MxnNb1[mx]);
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb1=FileWrite(Handle1,var1," Maxmn1 ",m," mx ",mx," / ", Mxmn1[mx]," / ",Bd1[mx]," / ",Rd1[mx]," / ",
MxnNb1[mx]," / ", Nmnd1[mx]
);//0?8AL 2 D09;
if(Qnt_Symb1<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
m++;mx++;
bu=1;bd=1;
}
}
mn2=mn; // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0
m2=m2+m; // :>;8G5AB2> M:AB@5<C<>2 2 <8=8<C<0E 8 <0:A8<C<0E 2 ?>@O4:0
//------------------------------------------------------------------------------
//-------------------- <0:A8<C<K <8=8<C<K "@5BL53> ?>@O4:0-----------------------------------
//--------------------AG8B05< @>AB ?045=85 A@548 <0:A8<C<>2 2B>@>3> ?>@O4:0----------------------------------------------
m=1;mn=1;mx=1;bu=1;bd=1;Nb2=1;int Nbxn2=1;Mxn2=Mx1[1];Mx2[0]=Mx1[1];Mn2[0]=Mn1[1];
Mnmx2[0]=Mnmx1[1];Mxmn2[0]=Mxmn1[1];MxNb2[0]=MxNb1[1];MnxNb2[0]=MnxNb1[1];
for(int i=1; i<mx2-1; i++)
{
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
if(
Mx1[i]>=Mx1[i+1] && Mx1[i+1]>=Mx1[i+2]
)
{bu++;}
if(
Mx1[i]<=Mx1[i+1] && Mx1[i+1]<=Mx1[i+2]
)
{bd++;}
//-------------------- 8I5< <0:A8<C<K 3 ?>@O4:0 A@548 <0:A8<C<>2 2 ?>@O4:0-------------------
if(
Mx1[i]<Mx1[i+1] && Mx1[i+1]>Mx1[i+2]
)
{
Mx2[mx]=Mx1[i+1]; //C@>25=L =0945==>3> <0:A8<C<0 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 (F5=0)
MxNb2[mx]=MxNb1[i+1]; //=><5@ 10@0 =0945==>3> <0:A8<C<0 2 ?>@O4:0
Nmxd2[mx]=bd; // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0
Bd2[mx]=MxNb2[mx]-Nb2; // :>;8G5AB2> 10@>2 <564C =0945==K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0
Rd2[mx]=round((Mxn2-Mx2[mx])/Point); // ?045=85 2 ?C=:B0E >B =0945==>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CH53> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0
RMx2[mx]=round(( Mx2[mx]- Mx2[mx-1])/Point); //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB
RMxNb2[mx]= MxNb2[mx]- MxNb2[mx-1]; //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0
Mxn2=Mx2[mx];
Nb2=MxNb2[mx];
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb=FileWrite(Handle,var1," Maxmx2 ",m," mx ",mx," / ", Mx2[mx]," / ",Bd2[mx]," / ",Rd2[mx],
" / ",MxNb2[mx]," Nmxd2 ",Nmxd2[mx]," RMx2 ",RMx2[mx]," RMxNb2 ",RMxNb2[mx]
);//0?8AL 2 D09;
if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
n3= int (Nb2);
string ns3 = string (n3);
string tm3 = string (Time[n3]);
string NameObjmx2="Max3_"+ns3+"_"+tm3;
bool created=ObjectCreate(0,NameObjmx2,OBJ_ARROW_THUMB_DOWN,0,Time[n3],High[n3]+(30*Point));
if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3
{
//--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@
ObjectSetInteger(0,NameObjmx2,OBJPROP_ANCHOR,ANCHOR_BOTTOM);
//--- ?>A;54=89 HB@8E - ?>:@0A8<
ObjectSetInteger(0,NameObjmx2,OBJPROP_COLOR,clrYellow);
}
m++;mx++;
bu=1;bd=1;
}
//-------------------- 8I5< <8=<<0;L=K5 <0:A8<C<K 3 ?>@O4:0 A@548 <0:A8<C<>2 2 ?>@O4:0-------------------
if(
Mx1[i]> Mx1[i+1] && Mx1[i+1]<Mx1[i+2] // 8I5< <8=<0EA A@548 <0:A<8<>2 2 ?>@O4:0
)
{
Mnmx2[mn]=Mx1[i+1]; // 8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)
MnxNb2[mn]=MxNb1[i+1]; // <8=<0:A 2 ?>@O4:0 <564C <0:A8<C<0<8 1 ?>@O4:0 =><5@ 10@0
Nmxu2[mn]=bu; // :>;8G5AB2> <0:A8<C<>2 1 ?>@O4:0 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@54K4CI8< <0:A8<C<>< 2 ?>@O4:0
Bu2[mn]=MnxNb2[mn]-Nbxn2; //:>;8G5AB2> 10@>2 <564C =0945==K< <8=8<0;L=K< <0:A8<C<>< 2 ?>@O4:0 8 ?@5;K;CH8< <0:A8<C<>< 2 ?>@O4:0
Ru2[mn]=round((Mxn2-Mnmx2[mn])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<0;L=>3> <0:A8<C<0 2 ?>@O4:0 4> ?@54K4CI53> <0:A8<C<0 2 ?>@O4:0
Mxn2=Mnmx2[mn];
Nbxn2= int (MnxNb2[mn]);
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb=FileWrite(Handle,var1," Minmx2 ",m," mn ",mn," / ", Mnmx2[mn]," / ",Bu2[mn]," / ",Ru2[mn],
" / ",MnxNb2[mn]," / ", Nmxu2[mn]
);//0?8AL 2 D09;
if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
m++;mn++;
bu=1;bd=1;
}
}
mx3=mx; //:>;8G5AB2> <0:A8<C<>2 3 ?>@O4:0
m3=m; //:>;8G5AB2> M:AB@5<C<>2 2 <0:A8<C<0E 3 ?>@O4:0
//-------------------- 8=8<C<K 3 ?>@O4:0 -----------------------------------
m=1;mn=1;mx=1;bu=1;bd=1;Nb2=1;Nbxn2=1;Mxn2=Mn1[1];Mx2[0]=Mx1[1];Mn2[0]=Mn1[1];
Mnmx2[0]=Mnmx1[1];Mxmn2[0]=Mxmn1[1];MnNb2[0]=MnNb1[1];MxnNb2[0]=MxnNb1[1];
for(int i=1; i<mn2-1; i++)
{
string var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
if(
Mn1[i]>=Mn1[i+1] && Mn1[i+1]>=Mn1[i+2]
)
{bu++;}
if(
Mn1[i]<=Mn1[i+1] && Mn1[i+1]<=Mn1[i+2]
)
{bd++;}
//-------------------- 8I5< <8=<<C<K 3 ?>@O4:0 A@548 <8=8<C<>2 2 ?>@O4:0-------------------
if(
Mn1[i]>Mn1[i+1] && Mn1[i+1]<Mn1[i+2]
)
{
Mn2[mn]=Mn1[i+1]; //C@>25=L =0945==>3> <8=8<C<0 3 ?>@O4:0 <564C <8=8<C<0<8 2 ?>@O4:0 (F5=0)
MnNb2[mn]=MnNb1[i+1]; //=><5@ 10@0 =0945==>3> <8=88<C<0 3 ?>@O4:0
Nmnu2[mn]=bu; // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0 <564C =0945==K< <8=8<C<>< 3 ?>@O4:0 8 ?@54K4CI8< <0:A8<0;L=K< <8=8<C<>< 3 ?>@O4:0
Bu2[mn]=MnNb2[mn]-Nb2; // :>;8G5AB2> 10@>2 <564C =0945==K< <8=8<C<>< 3 ?>@O4:0 8 ?@54K4CI8< <0:A8<0;L=K< <8=8<C<>< 3 ?>@O4:0
Ru2[mn]=round((Mxn2-Mn2[mn])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <8=8<C<0 3 ?>@O4:0 4> ?@54K4CH53> <0:A8<0;L=>3> <8=8<C<0 3 ?>@O4:0
RMn2[mn]=round(( Mn2[mn]- Mn2[mn-1])/Point); //@07=8F0 2 ?C=:B0E <564C =0945==K< 8 ?@54K4CI8< <8=8<C<>< 3 ?>@O4:0, >B@8F0B ?045=85 ?>;>68B @>AB
RMnNb2[mn]= MnNb2[mn]- MnNb2[mn-1]; //:>;8G5AB2> 10@>2 <564C =0945==K< 8 ?@54K4CI8< <8=8<C<>< 3 ?>@O4:0
Mxn2=Mn2[mn];
Nb2=MnNb2[mn];
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb=FileWrite(Handle,var1," Minmn2 ",m," mn ",mn," / ", Mn2[mn]," / ",Bu2[mn]," / ",Ru2[mn],
" / ",MnNb2[mn]," Nmnd2 ",Nmnd2[mn]," RMn2 ",RMn2[mn]," RMnNb2 ",RMnNb2[mn]
);//0?8AL 2 D09;
if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
int n4=int (Nb2);
string ns4 = string (n4);
string tm4 = string (Time[n4]);
string NameObjmn2="Min3_"+ns4+"_"+tm4;
bool created=ObjectCreate(0,NameObjmn2,OBJ_ARROW_THUMB_DOWN,0,Time[n4],Low[n4]-(30*Point));
if(created)// 5A;8 A>740;AO - A45;05< 5<C BN=8=3
{
//--- B>G:0 ?@82O7:8 A25@EC, GB>1K =5 =05760BL =0 10@
ObjectSetInteger(0,NameObjmn2,OBJPROP_ANCHOR,ANCHOR_TOP);
//--- ?>A;54=89 HB@8E - ?>:@0A8<
ObjectSetInteger(0,NameObjmn2,OBJPROP_COLOR,clrMagenta);
}
m++;mn++;
bu=1;bd=1;
}
//-------------------- 8I5< <0:A8<0;L=K5 <8=<<C<K 3 ?>@O4:0 A@548 <8=8<C<>2 2 ?>@O4:0-------------------
if(
Mn1[i]< Mn1[i+1] && Mn1[i+1]> Mn1[i+2]
)
{
Mxmn2[mx]=Mn1[i+1]; // 0:A8<0;L=K9 <8=8<C< (<0:A<8=) 3 ?>@O4:0 <564C <8=8<C<0<8 2 ?>@O4:0 7=0G5=85 C@>2=O (F5=0)
MxnNb2[mx]=MnNb1[i+1]; // <0:A<8= 3 ?>@O4:0 <564C <8=8<C<0<8 2 ?>@O4:0 =><5@ 10@0
Nmnd2[mx]=bd; // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0 <564C =0945==K< <0:A<8= 3 ?>@O4:0 8 ?@54K4CI8< <8=8<C<>8 3 ?>@O4:0
Bd2[mn]=MxnNb2[mx]-Nbxn2; //:>;8G5AB2> 10@>2 <564C =0945==K< <0:A<8= 3 ?>@O4:0 8 ?@5;K;CH8< <8=8<C<>< 3 ?>@O4:0
Rd2[mn]=round((Mxn2-Mxmn2[mx])/Point); // @>AB 2 ?C=:B0E >B =0945==>3> <0:A<8= 3 ?>@O4:0 4> ?@54K4CI53> <8=8<C<0 3 ?>@O4:0
Mxn2=Mxmn2[mx];
Nbxn2= int (MxnNb2[mx]);
/*
datetime tm=TimeCurrent();
if(tx!=tm && tm>=tx+100)
{
Qnt_Symb=FileWrite(Handle,var1," Maxmn2 ",m," mx ",mx," / ", Mxmn2[mx]," / ",Bd2[mx]," / ",Rd2[mx]," / ",
MxnNb2[mx]," / ", Nmnd2[mx]
);//0?8AL 2 D09;
if(Qnt_Symb<0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
};
*/
m++;mx++;
bu=1;bd=1;
}
}
mn3=mn; // :>;8G5AB2> <8=8<C<>2 2 ?>@O4:0
m3=m3+m; // :>;8G5AB2> M:AB@5<C<>2 2 <8=8<C<0E 8 <0:A8<C<0E 2 ?>@O4:0
//------------------------------------------------------------------------------
return(m);
}
//----------------------------:>=5F "@5=4()---------------------------------
//
//+------------------------------------------------------------------+
// B:@KB85 >@45@>2
int OpenOr(int Op)
{
//@>25@:0 E20B05B ;8 45=53
double free_margin=AccountFreeMarginCheck(Symb,OP_BUY,Lots);
//-- 5A;8 45=53 =5 E20B05B
if(free_margin<0)
{
Print("Not enough money for "," ",Lots, " ", Symb, " Error code=",GetLastError());
return(false);
}
//-- ?@>25@:0 ?@>H;0 CA?5H=>
// B:@KB85 >@45@>2
while(true) // &8:; >B:@KB8O >@4.
{
if(Total==0 && OpOr==0) // B:@KBKE >@4. =5B + :@8B5@89 >B:@. Buy
{ //
RefreshRates(); // 1=>2;5=85 40==KE
SL=Bid - New_Stop(StopLoss)*Point; // KG8A;5=85 SL >B:@.
TP=Bid + New_Stop(TakeProfit)*Point; // KG8A;5=85 TP >B:@.
Alert(">?KB:0 >B:@KBL Buy. 6840=85 >B25B0..");
Ticket=OrderSend(Symb,OP_BUY,Lots,Ask,2,SL,TP,"QstrBuy",Magic,0,Blue);//B:@KB85 Buy
if(Ticket>0) // >;CG8;>AL :)
{
Price = Ask;
Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ Buy ?> F5=5 ",Ask,"Ticket = ",Ticket);
Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"B:@KB >@45@ Buy ?> F5=5 ",Ask,
"Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB, " ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"B:@KB >@45@ Buy ?> F5=5 ",Ask,
"Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Or=0;
return(Or); // KE>4 87 start()
}
if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:
continue; // >2B>@=0O ?>?KB:0
return(Or); // KE>4 87 start()
}
if(Total==0 && OpOr==1) // B:@KBKE >@4. =5B + :@8B5@89 >B:@. Sell
{ //
RefreshRates(); // 1=>2;5=85 40==KE
SL=Ask + New_Stop(StopLoss)*Point; // KG8A;5=85 SL >B:@.
TP=Ask - New_Stop(TakeProfit)*Point; // KG8A;5=85 TP >B:@.
Alert(">?KB:0 >B:@KBL Sell. 6840=85 >B25B0..");
Ticket=OrderSend(Symb,OP_SELL,Lots,Bid,2,SL,TP,"QstrSell",Magic,0,Blue);//B:@KB85 Sel
if(Ticket>0) // >;CG8;>AL :)
{
Price = Bid;
Alert(Symbol()," "$ ",Period(),"B:@KB >@45@ Sell ?> F5=5 ",Bid,"Ticket = ",Ticket);
Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"B:@KB >@45@ Sell ?> F5=5 ",Bid,
"Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"B:@KB >@45@ Sell ?> F5=5 ",Bid,
"Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Or=1;
return(Or); // KE>4 87 start()
}
if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:
continue; // >2B>@=0O ?>?KB:0
return(Or); // KE>4 87 start()
}
break; // KE>4 87 while
}
//--------------------------------------------------------------- 9 --
return(Or); // KE>4 87 start()
}
//-------------------------------------------------------------- 10 --
//+------------------------------------------------------------------+
int CloseOr(int Cls)
{
// 0:@KB85 >@45@>2
while(true) // &8:; 70:@KB8O >@4.
{
if(Or==0 && ClOr==0) // B:@KB >@45@ Buy..
{ //8 5ABL :@8B5@89 70:@
Alert(">?KB:0 70:@KBL Buy ",Ticket,". 6840=85 >B25B0..");
RefreshRates(); // 1=>2;5=85 40==KE
Ans=OrderClose(Ticket,Lots,Bid,2); // 0:@KB85 Buy
if(Ans==true) // >;CG8;>AL :)
{
Alert(Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 = ",Bid,"Ticket = ",Ticket,
" ProfB=",ProfB," MxProfB=",MxProfB);
Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 ",Bid,
"Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 ",Bid,
"Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Or=-1;
ClOr=-1;
break; // KE>4 87 F8:;0 70:@
}
if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:
Qnt_Symb=FileWrite(Handle,Symbol()," Fun_Error ",GetLastError(),"0:@KB85 >@45@0 Buy >H81:0 ",Bid,
"Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
continue; // >2B>@=0O ?>?KB:0
return(Or); // KE>4 87 start()
}
if(Or==1 && ClOr==1) // B:@KB >@45@ Sell..
{ // 8 5ABL :@8B5@89 70:@
Alert(">?KB:0 70:@KBL Sell ",Ticket,". 6840=85 >B25B0..");
RefreshRates(); // 1=>2;5=85 40==KE
Ans=OrderClose(Ticket,Lots,Ask,2); // 0:@KB85 Sell
if(Ans==true) // >;CG8;>AL :)
{
Alert(Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,"Ticket = ",Ticket,
" ProfS=",ProfS," MxProfS=",MxProfS);
Qnt_Symb=FileWrite(Handle,Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,
"Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Qnt_Symb1=FileWrite(Handle1,Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,
"Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS," ProfB=",ProfB," MxProfB=",MxProfB);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
Or=-1;
ClOr=-1;
break; // KE>4 87 F8:;0 70:@
}
if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:
Qnt_Symb=FileWrite(Handle,Symbol()," Fun_Error ",GetLastError(),"0:@KB85 >@45@0 Sell H81:0 ",Ask,
"Ticket = ",Ticket," ProfS=",ProfS," MxProfS=",MxProfS);//0?8AL 2 D09;
if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL
{
Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85
};
continue; // >2B>@=0O ?>?KB:0
return(Or); // KE>4 87 start()
}
break; // KE>4 87 while
}
return(Or);
}
//+------------------------------------------------------------------+
//-------------------------------------------------------------- 10 --
int Fun_Error(int Error) // $-8O >1@01>B >H81>:
{
switch(Error)
{ // @5>4>;8<K5 >H81:8
case 4: Alert("">@3>2K9 A5@25@ 70=OB. @>1C5< 5IQ @07..");
Sleep(3000); // @>AB>5 @5H5=85
return(1); // KE>4 87 DC=:F88
case 135:Alert("&5=0 87<5=8;0AL. @>1C5< 5IQ @07..");
RefreshRates(); // 1=>28< 40==K5
return(1); // KE>4 87 DC=:F88
case 136:Alert("5B F5=. 4Q< =>2K9 B8:..");
while(RefreshRates()==false) // > =>2>3> B8:0
Sleep(1); // 045@6:0 2 F8:;5
return(1); // KE>4 87 DC=:F88
case 137:Alert("@>:5@ 70=OB. @>1C5< 5IQ @07..");
Sleep(3000); // @>AB>5 @5H5=85
return(1); // KE>4 87 DC=:F88
case 146:Alert(">4A8AB5<0 B>@3>2;8 70=OB0. @>1C5< 5IQ..");
Sleep(500); // @>AB>5 @5H5=85
return(1); // KE>4 87 DC=:F88
// @8B8G5A:85 >H81:8
case 2: Alert("1I0O >H81:0.");
return(0); // KE>4 87 DC=:F88
case 5: Alert("!B0@0O 25@A8O B5@<8=0;0.");
Work=false; // >;LH5 =5 @01>B0BL
return(0); // KE>4 87 DC=:F88
case 64: Alert("!G5B 701;>:8@>20=.");
Work=false; // >;LH5 =5 @01>B0BL
return(0); // KE>4 87 DC=:F88
case 133:Alert("">@3>2;O 70?@5I5=0.");
return(0); // KE>4 87 DC=:F88
case 134:Alert("54>AB0B>G=> 45=53 4;O A>25@H5=8O >?5@0F88.");
return(0); // KE>4 87 DC=:F88
default: Alert(">7=8:;0 >H81:0 ",Error); // @C385 20@80=BK
return(0); // KE>4 87 DC=:F88
}
}
//-------------------------------------------------------------- 11 --
//-------------------------------------------------------------- 11 --
double New_Stop(double Parametr) // @>25@:0 AB>?-?@8:.
{
double Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// 8=8<. 48AB0=F8O
if(Parametr<Min_Dist) // A;8 <5=LH5 4>?CAB.
{
Parametr=Min_Dist; // #AB0=>28< 4>?CAB.
Alert("#25;8G5=0 48AB0=F8O AB>?-?@8:070.");
}
return(Parametr); // >72@0B 7=0G5=8O
}
//-------------------------------------------------------------- 12 --
int FileTest()
{
Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0
if(Handle==-1) // 5C40G0 ?@8 >B:@KB88 D09;0
{
Alert("H81:0 ?@8 >B:@KB88 D09;0. ",// !>>1I5=85 >1 >H81:5
">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");
}
return(Handle);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int FileTest1()
{
Handle1=FileOpen(File_Name1,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0
if(Handle1==-1) // 5C40G0 ?@8 >B:@KB88 D09;0
{
Alert("H81:0 ?@8 >B:@KB88 D09;0. ",File_Name1,// !>>1I5=85 >1 >H81:5
">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");
return(Handle1);
}
return(Handle1);
}
//+------------------------------------------------------------------+
int FileTest2()
{
Handle2=FileOpen(File_Name2,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0
if(Handle==-1) // 5C40G0 ?@8 >B:@KB88 D09;0
{
Alert("H81:0 ?@8 >B:@KB88 D09;0. ",File_Name2,// !>>1I5=85 >1 >H81:5
">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");
return(Handle2);
}
return(Handle2);
}
//+------------------------------------------------------------------+
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
---