本帖最后由 shawnyau 于 2009-10-27 21:07 编辑 }0X:F`Y-
U}PiY"S<
Mql5-TradingControler-II yRfSJbzaf\
1PP $XJtyD
//+------------------------------------------------------------------+ W>p-u6u%E|
//| ManualTrading.mqh | (m:Zk$
//+------------------------------------------------------------------+ 5_z33,q2
class CManualTrading _Gjk;|Sx<I
{ vOc 9ZE
private: :C65-[PSdO
MqlTradeRequest request; yz LpK;
MqlTradeResult result; /i-J&*6_
public: ]5$eAYq
CManualTrading(){}; u(wGl_
bool CloseAll(); B{C??g8/
bool CloseProfit(); Q'YH>oGh^
bool CloseLoss(); (s7;^)}zx
bool OpenBuy(string symbol,double lots,int tp,int sl); [I$BmGQ
bool OpenSell(string symbol,double lots,int tp,int sl); Tp-l^?O-p
}; ae0>
W
//+------------------------------------------------------------------+ SOi*SwQ8
bool CManualTrading::CloseAll() <Gt2(;
{ -sjd&)~S[
string symbol; w[!^;#
int positions=PositionsTotal(); W'.s\e?gh
for(int ip=0;ip<positions;ip++) I*IhwJFl/
{ b r^_'1
symbol=PositionGetSymbol(ip); PG_0\'X)/w
if(PositionSelect(symbol)==true) L\&<sy"H
{ bV8!"{
request.action=TRADE_ACTION_DEAL; +S R+x/?z
request.symbol=symbol; @:U+9[
request.volume=PositionGetDouble(POSITION_VOLUME); |iR T!
]
request.tp=0.0; )Lwc
request.sl=0.0; |pmZ.r
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); OnF3l Cmu
if(request.deviation==0) ltgc:&=|@
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); O=$~O\}b
request.type_filling=ORDER_FILLING_CANCEL; h~p>re
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) L dm?JrU
{
l"!Ko G7
request.type=ORDER_TYPE_SELL; K,w"_T
request.price=SymbolInfoDouble(symbol,SYMBOL_BID); XvE9b5}
} ;Wl+zw
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) ,WG<hgg-U)
{ B"v.*
%"&/
request.type=ORDER_TYPE_BUY; Z0*ljT5|
request.price=SymbolInfoDouble(symbol,SYMBOL_ASK); {O,{c\
} FP>)&3>_
OrderSend(request,result); dpFVN[\oK
} .%^]9/4
} <]T` 3W9
return(true); Cz W:L&t
} Q\WC+,_%
//+------------------------------------------------------------------+ GHHav12][
bool CManualTrading::CloseProfit() ~O]]N;>72"
{ !
/NG.Wf
string symbol; Ezi-VGjr]
int positions=PositionsTotal(); ,i0b)=!o
for(int ip=0;ip<positions;ip++) !j\" w p
{ b.@P%`@a.
symbol=PositionGetSymbol(ip); Qq@G\eRo
if(PositionSelect(symbol)==true && PositionGetDouble(POSITION_PROFIT)>0.0) x+h~gckLb
{ sz9G3artK&
request.action=TRADE_ACTION_DEAL; 8NU`^L:1
request.symbol=symbol; c(/VYMJZ&
request.volume=PositionGetDouble(POSITION_VOLUME); [ G
e=kFB
request.tp=0.0; 78Aa|AJU
request.sl=0.0; yR~R:
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); qU,c~C=Qf
if(request.deviation==0) xEltwuDd?
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); 1N\D5g3
request.type_filling=ORDER_FILLING_CANCEL; 8`]=C~G
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) `?y<>m*
{ 9M /SH$Qy
request.type=ORDER_TYPE_SELL; jr /lk
request.price=SymbolInfoDouble(symbol,SYMBOL_BID); ;ml
3
} `' 153M]
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) Ox#Q2W@Uy
{ ;@nFVy>U
request.type=ORDER_TYPE_BUY; {u\%hpD_
request.price=SymbolInfoDouble(symbol,SYMBOL_ASK); ;c-3g]
} %y<ejM
OrderSend(request,result); *<'M!iRC
} $ C0TD7=
} C*X
G_b ]
return(true); O%f8I'u$
} ` r']^
,
//+------------------------------------------------------------------+ vU*x2fVb}
bool CManualTrading::CloseLoss() q+a.G2S
{ + q''y
string symbol; nW+YOX|+
int positions=PositionsTotal(); l12$l<x&M
for(int ip=0;ip<positions;ip++) ?G08[aNR
{ Sg]
J7;]
symbol=PositionGetSymbol(ip); nN3$\gHp8i
if(PositionSelect(symbol)==true && PositionGetDouble(POSITION_PROFIT)<0.0) \;]kYO}
{ ^*^/]vM
request.action=TRADE_ACTION_DEAL; z{BA4sn
request.symbol=symbol; )~rB}>^Z
request.volume=PositionGetDouble(POSITION_VOLUME); cX
A t:m
request.tp=0.0; xq!IbVV/h
request.sl=0.0; YCw('i(|
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); E=/[s]@5
if(request.deviation==0) c-5jYwV
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); >]}yXg=QK+
request.type_filling=ORDER_FILLING_CANCEL; ?Ay3u^X
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) OCHm;
{ K@@9:T$
request.type=ORDER_TYPE_SELL; (G4'(6
request.price=SymbolInfoDouble(symbol,SYMBOL_BID); W>L@j(
} el'j&I
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) E' %lxr
{ St>`p-
request.type=ORDER_TYPE_BUY; bZ#X9fT
request.price=SymbolInfoDouble(symbol,SYMBOL_ASK); viuiqs5[Bi
} *=vlqpG
OrderSend(request,result); `Lz1{#F2G
} \>)f5 gV@
} w3#`1T`N
return(true); <lOaor
c
} pN$;!
//+------------------------------------------------------------------+ \n@V-b
bool CManualTrading::OpenBuy(string symbol,double lots,int tp,int sl) L#j|2H|
{ ogeRYq,g
request.action=TRADE_ACTION_DEAL; 6wpU6NU
request.symbol=symbol; Dq`~XS*
request.type=ORDER_TYPE_BUY; ny`(f,)u*
request.price=SymbolInfoDouble(symbol,SYMBOL_ASK); d~<QAh#rG
request.volume=lots; gPUo25@pn*
request.tp=SymbolInfoDouble(symbol,SYMBOL_ASK)+tp*SymbolInfoDouble(symbol,SYMBOL_POINT); <9\,QR)
request.sl=SymbolInfoDouble(symbol,SYMBOL_ASK)-sl*SymbolInfoDouble(symbol,SYMBOL_POINT); u&SZlkf6%
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); vfXJYw+6_
if(request.deviation==0) QSmJ`Bm
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); s$3`X(Pn
request.type_filling=ORDER_FILLING_CANCEL; RH=$h! 5
OrderSend(request,result); <~O}6HQ#
return(true); ~BQV]BJ7
} <N5rv3
s
//+------------------------------------------------------------------+ kdBV1E+:C
bool CManualTrading::OpenSell(string symbol,double lots,int tp,int sl) K>LpN')d
{ ?C~X@sq
request.action=TRADE_ACTION_DEAL; /4H[4m]I
request.symbol=symbol; p6[#f96^u
request.type=ORDER_TYPE_SELL; CfY7<o1>
request.price=SymbolInfoDouble(symbol,SYMBOL_BID); X/wmKi
request.volume=lots; &PSTwZd
request.tp=SymbolInfoDouble(symbol,SYMBOL_BID)-tp*SymbolInfoDouble(symbol,SYMBOL_POINT); _^b@>C>O
request.sl=SymbolInfoDouble(symbol,SYMBOL_BID)+sl*SymbolInfoDouble(symbol,SYMBOL_POINT); s~)L_ p
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); S{ey@X(
if(request.deviation==0) IyT?-R
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); aSTFcz"
request.type_filling=ORDER_FILLING_CANCEL; &:q[-K@!
OrderSend(request,result); FXeV6zfrE
return(true); 7:h<`_HT(X
} &q"'_4
//+------------------------------------------------------------------+ ;hkro$
l`G(O$ct
6mi$.'
qP
//+------------------------------------------------------------------+ a6k(9ZF
//| AutoTrading.mqh | )>?! xx_`
//+------------------------------------------------------------------+ 7F=2t_2O
#include \"ManualTrading.mqh\" {zY`h6d
class CAutoTrading c1PViko,>
{ Y:rJK|m
private: Fgskb"k/
MqlTradeRequest request; 2rF?Q?$,B
MqlTradeResult result; ss/h[4h4h
CManualTrading *Manual; N?\bBt@
public: k\nH&nb
CAutoTrading(){Manual=new CManualTrading;}; ZGA)r0]
P`
bool CloseAndBuy(string symbol,double lots,int tp,int sl); \5t`p67Ve_
bool CloseAndSell(string symbol,double lots,int tp,int sl); "3\oQvi.
}; mXQl;
//+------------------------------------------------------------------+ A<mj8qz
bool CAutoTrading::CloseAndBuy(string symbol,double lots,int tp,int sl) dFdlB`L
{ }Q!h ov
if(PositionSelect(symbol)==true) TNyK@~#m
{ fL(':W&n-
request.action=TRADE_ACTION_DEAL; zv$Gma_
request.symbol=symbol; Y0 @'za^y
request.type=ORDER_TYPE_BUY; l#X=]xQf
request.price=SymbolInfoDouble(symbol,SYMBOL_ASK); {9h`$e=
request.volume=PositionGetDouble(POSITION_VOLUME)*2; >]:N?[Y_~}
request.tp=SymbolInfoDouble(symbol,SYMBOL_ASK)+tp*SymbolInfoDouble(symbol,SYMBOL_POINT); S9$o
request.sl=SymbolInfoDouble(symbol,SYMBOL_ASK)-sl*SymbolInfoDouble(symbol,SYMBOL_POINT); }l,T~Pjb
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); Z[a O_6L
if(request.deviation==0) mY$nI -P
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); IUluJ.sXIf
request.type_filling=ORDER_FILLING_CANCEL; DkDw>Nx<rs
OrderSend(request,result); aSn0o_4bD
} B@ZqJw9J[
else Py|H?
, 6=
{ g2+l@$W
Manual.OpenBuy(symbol,lots,tp,sl); 4y|xUO:
} a9yIV5_N
return(true); ?R|fS*e2EB
} ?D RFsA
//+------------------------------------------------------------------+ N,WI{*
bool CAutoTrading::CloseAndSell(string symbol,double lots,int tp,int sl) xB?S#5G}
{ c*y$bf<
if(PositionSelect(symbol)==true) :)KTZ
{ 1VhoJGH;C
request.action=TRADE_ACTION_DEAL; }4bB7,j
request.symbol=symbol; N oX_?
request.type=ORDER_TYPE_SELL; ;whFaQi 4
request.price=SymbolInfoDouble(symbol,SYMBOL_BID); A2g"=x[1@K
request.volume=PositionGetDouble(POSITION_VOLUME)*2; j33P~H~
request.tp=SymbolInfoDouble(symbol,SYMBOL_BID)-tp*SymbolInfoDouble(symbol,SYMBOL_POINT); 6.
+[
z
request.sl=SymbolInfoDouble(symbol,SYMBOL_BID)+sl*SymbolInfoDouble(symbol,SYMBOL_POINT); % j[O&[s}
request.deviation=(ulong)(SymbolInfoInteger(symbol,SYMBOL_SPREAD)); GW>7R6i
if(request.deviation==0) &rl]$Mtt
request.deviation=(ulong)((SymbolInfoDouble(symbol,SYMBOL_ASK)-SymbolInfoDouble(symbol,SYMBOL_BID))/SymbolInfoDouble(symbol,SYMBOL_POINT)); xJ[k#?T'
request.type_filling=ORDER_FILLING_CANCEL; O84v*=u A
OrderSend(request,result); %nDPM? aO
} 2FZ0c/[&
else 2fj0 I
{ Vq\..!y
Manual.OpenSell(symbol,lots,tp,sl); 48 c
D3w
} zCBtD_@
return(true); ?l\gh1{C
} LH3N}J({
//+------------------------------------------------------------------+ *f0.= ?
'K;4102\
//+------------------------------------------------------------------+ RB lOTQjv
//| TradingControler.mq5 | Ww'TCWk@
//+------------------------------------------------------------------+ Kh:#S|
#property description \"Trading Controler\" }Ll3AR7\
#property version \"2.00\" 4P O%qO
#include <TradingControler\ManualTrading.mqh> 5,0wj0l
#include <TradingControler\AutoTrading.mqh> 8zCGMhd
int TakeProfit=50; BqLtTo ?'
int StopLoss=30; |L.~Amd
double Lots=0.1; U>L=.\\|
CManualTrading *Manual; skR,M=F~
CAutoTrading *Auto; !dbA (
bool AutoFlag=false; /SPAJHh
intMAOpenHandle,MACloseHandle,MacdHandle; I*vj26qvg
double MAOpenBuffer[]; k@t,[
double MACloseBuffer[]; XC$+ `?
double MacdBuffer[]; U&w5&W{F}
//+------------------------------------------------------------------+ -9H!j4]T?
int OnInit() /K1$_
{ !7ZfT?&
if(Digits()==5) .~A"Wyu\
{ t5jhpPVf
TakeProfit=500; 2,XqslB)
StopLoss=300; ~\)&{'
} uu@'02G8
else if(Digits()==4) kXZV%mnT7
{ E?m#S
TakeProfit=50; O 44IH`SI
StopLoss=30; i3kI2\bd/
} Y^jnlS)h
Manual=new CManualTrading; <k-@R!K~JC
Auto=new CAutoTrading; 3 ?|; on
ANpY qV
CreateTradeObject(); j=jrzG+`
InitEA(); E]eqvT NH
ChartRedraw(); RkH oT^
return(0); +} ! F(c
} a4a[pX,5
//+------------------------------------------------------------------+ #L4Kwy
void OnDeinit(const int reason) i;'X}KW
{ w6In{uO-Z
ObjectDelete(0,\"CloseAll\"); 7E75s)KH
ObjectDelete(0,\"CloseProfit\"); zc,9Qfn
ObjectDelete(0,\"CloseLoss\"); ??%T
ObjectDelete(0,\"OpenBuy\"); >yT@?!/Q>'
ObjectDelete(0,\"OpenSell\"); z.9FDQLp
q(PT'z
ObjectDelete(0,\"LotsLabel\"); eGypXf%
ObjectDelete(0,\"Lots\"); 2hA66ar{$
ObjectDelete(0,\"LotsIncrease\"); [@)z $W
ObjectDelete(0,\"LotsDecrease\"); `:BQ&T%UQR
aj'8;E+
ObjectDelete(0,\"TPLabel\"); ,N|R/Vk$+E
ObjectDelete(0,\"TP\"); *(q8?x0>
ObjectDelete(0,\"TPIncrease\"); t?H;iBrpxd
ObjectDelete(0,\"TPDecrease\"); eKFc
W5O
;s
B:s9M
ObjectDelete(0,\"SLLabel\"); mhkAI@)>
ObjectDelete(0,\"SL\"); % m5 ^p
ObjectDelete(0,\"SLIncrease\"); ,lS-;.
ObjectDelete(0,\"SLDecrease\"); bOIM0<(h
ObjectDelete(0,\"AutoManual\"); 5b4V/d*
'
G@<lwnvD*J
ChartRedraw(); Vh9s.=*P@
} !#gE'(J;c
//+------------------------------------------------------------------+ wOkJ:k
void OnTick() oUKbzr/C
{ OQ&D?2r
if(AutoFlag==true) d47:2Zj
OpenCloseMacdEA(); +rpd0s49
} XoiYtx53
//+------------------------------------------------------------------+ 7^TXlWn^G
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam) z'D{:q
{ YYr&r.6
if(id==CHARTEVENT_OBJECT_ENDEDIT) ^JVP2L>o*
{ &j@J<*k
OnEndEdit(sparam); .EZ{d
} ;fME4Sp
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"CloseAll\") ugPI1'f
{ O36r
,/X
Manual.CloseAll(); ]hVXFHrR
ObjectSetInteger(0,\"CloseAll\",OBJPROP_STATE,0); %FFm[[nxI
} v4~Xv5|w^F
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"CloseProfit\") zP'pfBgbJW
{ q&6=oss!
Manual.CloseProfit(); Y]Vc}-a(h
ObjectSetInteger(0,\"CloseProfit\",OBJPROP_STATE,0); PR6uw
} }V,M0b>
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"CloseLoss\") $<mL2$.L~
{ 0$ac1;7
Manual.CloseLoss(); o"M^sKz47
ObjectSetInteger(0,\"CloseLoss\",OBJPROP_STATE,0); ,O{ 5
} <qY>d,+E'
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"OpenBuy\") [4rMUS7-m"
{ Qs X 59d
Manual.OpenBuy(Symbol(),Lots,TakeProfit,StopLoss); ^O*hs%eO%
ObjectSetInteger(0,\"OpenBuy\",OBJPROP_STATE,0); |o)
_=Fx
} T-i]O*u
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"OpenSell\") f_XCO=8'v
{ G{=$/&St
Manual.OpenSell(Symbol(),Lots,TakeProfit,StopLoss);
(HKm2JuFG
ObjectSetInteger(0,\"OpenSell\",OBJPROP_STATE,0); SJ+-H83x
} ^:ngHue8~
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"LotsIncrease\") ~kT{O!x}4
{ g``4U3T%X
OnLotsIncrease(); O#Hz5A5
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_STATE,0); R)Fl@
Tn
} E|3aiC,5
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"LotsDecrease\") Te#[+B?
{ qrh7\`,.m/
OnLotsDecrease(); ka%pS
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_STATE,0); n(VMGCZPV
} Lr&BZM
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"TPIncrease\") c7wgjQ[
{ C ( ;7*]
OnTPIncrease(); r'?&VS-Cj
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_STATE,0); SUhP
e+
} R!CUR~F
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"TPDecrease\") WU_Q
7%+QS
{ 6j#5Ag:
OnTPDecrease(); $=R\3:j
ObjectSetInteger(0,\"TPDecrease\",OBJPROP_STATE,0); !<ucwWY,
} r$zXb9a|<
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"SLIncrease\") )\^OI:E
{ ,3u19>2
OnSLIncrease(); zV#k
#/$
ObjectSetInteger(0,\"SLIncrease\",OBJPROP_STATE,0); NunT2JP.
} 1|CO>)*D
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"SLDecrease\") up6LO7drW/
{ LBR_Q0EP
OnSLDecrease(); Emo]I[<&q
ObjectSetInteger(0,\"SLDecrease\",OBJPROP_STATE,0); ^+&}:9Ml
} O^GTPYW
else if(id==CHARTEVENT_OBJECT_CLICK && sparam==\"AutoManual\") ( ;q$cKy
{ '1aOdEZA*
OnAutoManual(); mc$dR,
H0
ObjectSetInteger(0,\"AutoManual\",OBJPROP_STATE,0); l8Ox]%F
} #0tM88Wi
ChartRedraw(); ^`$KN0PY
} [z?XVl<
//+------------------------------------------------------------------+ <e"2<qVi
bool OnEndEdit(string edit) &E~7ty'
{ SVJ3!1B,
if(edit==\"Lots\") g.'4uqU
{ 59LIK&w
Lots=StringToDouble(ObjectGetString(0,\"Lots\",OBJPROP_TEXT)); +VfJ:[q
if(Lots>20.0) |Ia46YS
Lots=20.0; 8K$:9+OY
ObjectSetString(0,\"Lots\",OBJPROP_TEXT,DoubleToString(Lots,2)); w% M0Mu
} (jXgJ" m
else if(edit==\"TP\") V%+KJ}S!Z
{ @|M10r9E
TakeProfit=StringToInteger(ObjectGetString(0,\"TP\",OBJPROP_TEXT)); yRAb
HG,c
if(TakeProfit>1000) R8axdV9(
TakeProfit=1000; edm&,ph]
ObjectSetString(0,\"TP\",OBJPROP_TEXT,IntegerToString(TakeProfit)); 2'++G[z
} \Ew2@dF{O
else if(edit==\"SL\") dJ$}]
{ c=7L)w:I
StopLoss=StringToInteger(ObjectGetString(0,\"SL\",OBJPROP_TEXT)); F3?v&
if(StopLoss>1000) he/FtkU
StopLoss=1000; \2T@]!n
ObjectSetString(0,\"SL\",OBJPROP_TEXT,IntegerToString(StopLoss)); \!-X&ws
} W}KtB1J
return(true); >Z/,DIn,I
} " #JRw
//+------------------------------------------------------------------+ *@/!h2
bool OnLotsIncrease() l("_JI
{ ybfNG@N*
Lots=StringToDouble(ObjectGetString(0,\"Lots\",OBJPROP_TEXT)); zK33.HY
Lots+=0.10; 2@=JIMtc
if(Lots>20.0) ^oj)#(3C
Lots=20.0; WPLAh_fe
ObjectSetString(0,\"Lots\",OBJPROP_TEXT,DoubleToString(Lots,2)); c8#A^q}
return (true); Cdc6<8
} qbmy~\ZY
//+------------------------------------------------------------------+ ><dSwwu
bool OnLotsDecrease() |eJ4"OPC
{ [|e7oNT(Q
Lots=StringToDouble(ObjectGetString(0,\"Lots\",OBJPROP_TEXT)); ]7Tjt A.\q
Lots-=0.10; rk{DrbRx
if(Lots<0.1) 4$@)yZ
Lots=0.1; }_Jr[iaB
ObjectSetString(0,\"Lots\",OBJPROP_TEXT,DoubleToString(Lots,2)); B$sB1M0q
return (true); _da>=^hFJ
} * 3WK`9q
//+------------------------------------------------------------------+ Pqi>,c<&mL
bool OnTPIncrease() 1 f).J
{ nJNdq`y2
TakeProfit=StringToInteger(ObjectGetString(0,\"TP\",OBJPROP_TEXT)); kTt;3 Ia
TakeProfit+=1; 9U^jsb<St>
if(TakeProfit>1000) s`U.h^V
TakeProfit=1000; cK"b0K/M?B
ObjectSetString(0,\"TP\",OBJPROP_TEXT,IntegerToString(TakeProfit)); F_$eu-y
return (true); FE,&_J"
} :Em[>XA
//+------------------------------------------------------------------+ POdk0CuX
bool OnTPDecrease() J*IC&jH:
{ -L}crQl.'c
TakeProfit=StringToInteger(ObjectGetString(0,\"TP\",OBJPROP_TEXT)); `D6Bw=7
TakeProfit-=1; E`}KVi57
if(TakeProfit<0) ,dOd3y'y
TakeProfit=0; ,Y6Me+5B
ObjectSetString(0,\"TP\",OBJPROP_TEXT,IntegerToString(TakeProfit)); -}_-#L!Q
return (true); B[w~bW|K
} )/A IfH
//+------------------------------------------------------------------+ C(qqGK{
bool OnSLIncrease() tQ=M=BPZ
{ jl YnV/ ]
StopLoss=StringToInteger(ObjectGetString(0,\"SL\",OBJPROP_TEXT)); Z6#}6Y{
StopLoss+=1; F$T@OT6
if(StopLoss>1000) ~OO&%\$k
StopLoss=1000; O+ ~.p
ObjectSetString(0,\"SL\",OBJPROP_TEXT,IntegerToString(StopLoss)); hY XH9:
return (true); AC:cV='
} z'OY6
//+------------------------------------------------------------------+ ;dgxeP;mp
bool OnSLDecrease() sJu^deX
{ MW*@fl<@?M
StopLoss=StringToInteger(ObjectGetString(0,\"SL\",OBJPROP_TEXT)); L>VZ-j
StopLoss-=1; .4P5tIn\
if(StopLoss<0) jSNUU.lur
StopLoss=0; zG)XB*c
ObjectSetString(0,\"SL\",OBJPROP_TEXT,IntegerToString(StopLoss)); xrb %-vT
return (true); NGZEUtj
} X-,scm
//+------------------------------------------------------------------+ lYEMrr!KQw
bool OnAutoManual() $=?1>zvF
{ yM}b
AutoFlag=!AutoFlag; =xzDpn>f
if(AutoFlag==true) }@Rq'VPZd
{ ~a@O1MB
ObjectSetInteger(0,\"AutoManual\",OBJPROP_COLOR,DarkRed); e_mUO"
ObjectSetInteger(0,\"AutoManual\",OBJPROP_BGCOLOR,Red); TTB1}j+V6
ObjectSetString(0,\"AutoManual\",OBJPROP_TEXT,\"Auto\"); X]up5tk~
} iEd%8 F h
else Bc1[^{`bq^
{ Np$peT[
ObjectSetInteger(0,\"AutoManual\",OBJPROP_COLOR,Green); N$#518
ObjectSetInteger(0,\"AutoManual\",OBJPROP_BGCOLOR,LightGreen); ?1%/G<
ObjectSetString(0,\"AutoManual\",OBJPROP_TEXT,\"Manual\"); t\YN\`XD
} 2BTFK"=U
return (true); zQY|=4NP
} o#(z*v@
//+------------------------------------------------------------------+ } Ej^M~Vv
void CreateTradeObject() /JaCbT?*T
{ GJlkEWs
//---Close All }9Yd[`
ObjectCreate(0,\"CloseAll\",OBJ_BUTTON,0,0,0,0,0); iCA!=%M@D
ObjectSetInteger(0,\"CloseAll\",OBJPROP_XDISTANCE,10); a`SQcNBf*
ObjectSetInteger(0,\"CloseAll\",OBJPROP_YDISTANCE,10); 96W!~w2xx
ObjectSetInteger(0,\"CloseAll\",OBJPROP_XSIZE,80); B^4D`0G[4
ObjectSetInteger(0,\"CloseAll\",OBJPROP_YSIZE,20); ]7H ?
ObjectSetString(0,\"CloseAll\",OBJPROP_TEXT,\"CloseAll\"); R7'a/
ObjectSetInteger(0,\"CloseAll\",OBJPROP_STATE,0); Z+jgFl
4
//---Close Profit i1ph{;C
ObjectCreate(0,\"CloseProfit\",OBJ_BUTTON,0,0,0,0,0); \SB~rz"A
ObjectSetInteger(0,\"CloseProfit\",OBJPROP_XDISTANCE,10); #ma#oWqF }
ObjectSetInteger(0,\"CloseProfit\",OBJPROP_YDISTANCE,35); I%dFVt@
ObjectSetInteger(0,\"CloseProfit\",OBJPROP_XSIZE,80); *Q=3v
ObjectSetInteger(0,\"CloseProfit\",OBJPROP_YSIZE,20); NZUQ
R`5
ObjectSetString(0,\"CloseProfit\",OBJPROP_TEXT,\"CloseProfit\"); :Ja]Vt
ObjectSetInteger(0,\"CloseProfit\",OBJPROP_STATE,0); ^1d"Rqtv
//---Close Loss RI,Z&kXj2o
ObjectCreate(0,\"CloseLoss\",OBJ_BUTTON,0,0,0,0,0); d'1L#`?
ObjectSetInteger(0,\"CloseLoss\",OBJPROP_XDISTANCE,10); 3:q\]]]S
ObjectSetInteger(0,\"CloseLoss\",OBJPROP_YDISTANCE,60); VUfV=&D-*g
ObjectSetInteger(0,\"CloseLoss\",OBJPROP_XSIZE,80); l=jfgsjc
ObjectSetInteger(0,\"CloseLoss\",OBJPROP_YSIZE,20); eK
}AVz}k
ObjectSetString(0,\"CloseLoss\",OBJPROP_TEXT,\"CloseLoss\"); _ZgIm3p0A
ObjectSetInteger(0,\"CloseLoss\",OBJPROP_STATE,0); $`J'Y>`
//---Open Buy KH4
5A'o
ObjectCreate(0,\"OpenBuy\",OBJ_BUTTON,0,0,0,0,0); zP\n<L5
ObjectSetInteger(0,\"OpenBuy\",OBJPROP_XDISTANCE,10); \/8 I6a=
ObjectSetInteger(0,\"OpenBuy\",OBJPROP_YDISTANCE,90); &_Py{Cv@Dw
ObjectSetInteger(0,\"OpenBuy\",OBJPROP_XSIZE,80); '\[o>n2
ObjectSetInteger(0,\"OpenBuy\",OBJPROP_YSIZE,20); +8+@Az[e0
ObjectSetString(0,\"OpenBuy\",OBJPROP_TEXT,\"OpenBuy\"); &<</[h/B/F
ObjectSetInteger(0,\"OpenBuy\",OBJPROP_STATE,0); MPt:bf#
//---Open Sell {Mt4QA5iZ
ObjectCreate(0,\"OpenSell\",OBJ_BUTTON,0,0,0,0,0); ,X Zo0!
ObjectSetInteger(0,\"OpenSell\",OBJPROP_XDISTANCE,10); _*b1]<
ObjectSetInteger(0,\"OpenSell\",OBJPROP_YDISTANCE,115); P19nF[A
ObjectSetInteger(0,\"OpenSell\",OBJPROP_XSIZE,80); &m=Xg(G~c
ObjectSetInteger(0,\"OpenSell\",OBJPROP_YSIZE,20); ?b?`(JTR
ObjectSetString(0,\"OpenSell\",OBJPROP_TEXT,\"OpenSell\"); ["|' f
ObjectSetInteger(0,\"OpenSell\",OBJPROP_STATE,0); }kg?A oo
//---Lots-Label b2OVg
+3
ObjectCreate(0,\"LotsLabel\",OBJ_LABEL,0,0,0,0,0); 57/9i>
@
ObjectSetInteger(0,\"LotsLabel\",OBJPROP_COLOR,Yellow); odxsF(Q0p
ObjectSetInteger(0,\"LotsLabel\",OBJPROP_XDISTANCE,100); FYIzMp.4
ObjectSetInteger(0,\"LotsLabel\",OBJPROP_YDISTANCE,10); Z5aU7
ObjectSetInteger(0,\"LotsLabel\",OBJPROP_XSIZE,30); 5IeF |#g
ObjectSetInteger(0,\"LotsLabel\",OBJPROP_YSIZE,20); %x_c2
ObjectSetString(0,\"LotsLabel\",OBJPROP_TEXT,\"Lots\"); =j[zMO
ObjectSetInteger(0,\"LotsLabel\",OBJPROP_FONTSIZE,11); h>v;1QO9D
//---Lots-Edit p8<Y5:`
ObjectCreate(0,\"Lots\",OBJ_EDIT,0,0,0,0,0); Skgvnmk[U
ObjectSetInteger(0,\"Lots\",OBJPROP_COLOR,Yellow); B9`^JYT<
ObjectSetInteger(0,\"Lots\",OBJPROP_XDISTANCE,130); [u[`!L=
ObjectSetInteger(0,\"Lots\",OBJPROP_YDISTANCE,10); @-dM'R6C
ObjectSetInteger(0,\"Lots\",OBJPROP_XSIZE,40); 'Z LGt#
ObjectSetInteger(0,\"Lots\",OBJPROP_YSIZE,20); 2kV[A92s
ObjectSetString(0,\"Lots\",OBJPROP_TEXT,DoubleToString(Lots,2)); fsa
ObjectSetInteger(0,\"Lots\",OBJPROP_FONTSIZE,10); YH33E~f
ObjectSetInteger(0,\"Lots\",OBJPROP_SELECTABLE,0); KE\p|X i
//---Lots-+ V6l*!R
ObjectCreate(0,\"LotsIncrease\",OBJ_BUTTON,0,0,0,0,0); O[Xl*9P
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_COLOR,White); L-_dq0T
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_BGCOLOR,Green); t
?8
?Ok
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_XDISTANCE,170); )e.Y"5My
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_YDISTANCE,10); }49X
N
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_XSIZE,20); hNB;29r~
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_YSIZE,10); }K,:aN,44\
ObjectSetString(0,\"LotsIncrease\",OBJPROP_TEXT,\"+\"); |K?fVL
ObjectSetInteger(0,\"LotsIncrease\",OBJPROP_STATE,0); l c)*HYqU
//---Lots-- Bb[%?~
E!
ObjectCreate(0,\"LotsDecrease\",OBJ_BUTTON,0,0,0,0,0); p
D!IB`cA4
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_COLOR,White); K7}EL|Kx
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_BGCOLOR,Red); >B$ZKE
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_XDISTANCE,170); ul~>eZ
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_YDISTANCE,20); MfUG@
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_XSIZE,20); -e#YWMo(
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_YSIZE,10); uEQH6~\{Nl
ObjectSetString(0,\"LotsDecrease\",OBJPROP_TEXT,\"-\"); ey<u
ObjectSetInteger(0,\"LotsDecrease\",OBJPROP_STATE,0); ,c"_X8Fkx$
//---TP-Label xB:,l'\G
ObjectCreate(0,\"TPLabel\",OBJ_LABEL,0,0,0,0,0); }xTTz,Oj$
ObjectSetInteger(0,\"TPLabel\",OBJPROP_COLOR,Yellow); /b,+YyWi%
ObjectSetInteger(0,\"TPLabel\",OBJPROP_XDISTANCE,100); Mj |)KDL
ObjectSetInteger(0,\"TPLabel\",OBJPROP_YDISTANCE,35); c38RE,4U
ObjectSetInteger(0,\"TPLabel\",OBJPROP_XSIZE,30); P(G$@},W
ObjectSetInteger(0,\"TPLabel\",OBJPROP_YSIZE,20); !o~% F5|t
ObjectSetString(0,\"TPLabel\",OBJPROP_TEXT,\"TP\"); 9,Zg'4",d
ObjectSetInteger(0,\"TPLabel\",OBJPROP_FONTSIZE,11); b_-ESs]g
//---TP-Edit p?X.I]=vRv
ObjectCreate(0,\"TP\",OBJ_EDIT,0,0,0,0,0); e8gJ }8Fj
ObjectSetInteger(0,\"TP\",OBJPROP_COLOR,Yellow); *%(8z~(\
ObjectSetInteger(0,\"TP\",OBJPROP_XDISTANCE,130); Y2vzK;
ObjectSetInteger(0,\"TP\",OBJPROP_YDISTANCE,35); w[\*\'Vm0
ObjectSetInteger(0,\"TP\",OBJPROP_XSIZE,40); le yhiL<
ObjectSetInteger(0,\"TP\",OBJPROP_YSIZE,20); `;WiTE)&)
ObjectSetString(0,\"TP\",OBJPROP_TEXT,IntegerToString(TakeProfit)); /S1EQ%_
ObjectSetInteger(0,\"TP\",OBJPROP_FONTSIZE,10); /,$;xt-J35
ObjectSetInteger(0,\"TP\",OBJPROP_SELECTABLE,0); {YWj`K
//---TP-+ t5N@z
ObjectCreate(0,\"TPIncrease\",OBJ_BUTTON,0,0,0,0,0); :s+AIo6
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_COLOR,White); zkn K2e,$
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_BGCOLOR,Green); X}p#9^%N
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_XDISTANCE,170); w{)*'8oCB
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_YDISTANCE,35); xy46].x-
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_XSIZE,20); sp0&"&5
ObjectSetInteger(0,\"TPIncrease\",OBJPROP_YSIZE,10); <