2 Star 5 Fork 4

航耍耍/mql4

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
RO_EA(暴力马丁)-kit.mq4 91.84 KB
一键复制 编辑 原始数据 按行查看 历史
航耍耍 提交于 2021-11-09 08:24 . 123123123123
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410
//EA交易 => ...\MT4\MQL4\Experts
#property copyright "Copyright 2017 RO"
#property link "www.taobao.com"
enum ENUM_Trading_Mode {PendingLimitOrderFollowTrend = 0,PendingLimitOrderReversalTrend = 1,PendingStopOrderFollowTrend = 2,PendingStopOrderReversalTrend = 3 };
enum ENUM_Candlestick_Mode {ToAvoidNews = 0,ToTriggerOrder = 1 };
//------------------
extern ENUM_Trading_Mode TradingMode=3 ;
extern bool UseMM=false ;
extern double Risk=0.1 ;
extern double FixedLots=0.01 ;
extern double LotsExponent=1.1 ;
extern bool UseTakeProfit=false ;
extern int TakeProfit=200 ;
extern bool UseStopLoss=true ;
extern int StopLoss=2500 ;
extern bool AutoTargetMoney=true ;
extern double TargetMoneyFactor=20 ;
extern double TargetMoney=0 ;
extern bool AutoStopLossMoney=false ;
extern double StoplossFactor=0 ;
extern double StoplossMoney=0 ;
extern bool UseTrailing=false ;
extern int TrailingStop=20 ;
extern int TrailingStart=0 ;
extern ENUM_Candlestick_Mode CandlestickMode=0 ;
extern int CandlestickHighLow=500 ;
extern int MaxOrderBuy=150 ;
extern int MaxOrderSell=100 ;
extern int PendingDistance=20 ;
extern int Pipstep=10 ;
extern double PipstepExponent=1 ;
extern double MaxSpreadPlusCommission=50 ;
extern bool HighToLow=true ;
extern double HighFibo=76.4 ;
extern double LowFibo=23.6 ;
extern int StartBar=1 ;
extern int BarsBack=20 ;
extern bool ShowFibo=true ;
extern int Slippage=3 ;
extern int MagicNumber=1 ;
extern string TradeComment="Nuggtes-暴力摩托" ;
extern bool TradeMonday=true ;
extern bool TradeTuesday=true ;
extern bool TradeWednesday=true ;
extern bool TradeThursday=true ;
extern bool TradeFriday=true ;
extern int StartHour=0 ;
extern int StartMinute=0 ;
extern int EndHour=23 ;
extern int EndMinute=59 ;
double 总_do_1 = 10000.0;
double 总_do_2 = 0.236;
double 总_do_3 = 0.382;
double 总_do_4 = 0.5;
double 总_do_5 = 0.618;
double 总_do_6 = 0.764;
double 总_do_7 = 0.0;
double 总_do_8 = 1.0;
uint 总_ui_9 = Blue;
uint 总_ui_10 = DarkGray;
double 总_do11ko[];
double 总_do12ko[];
double 总_do13ko[];
double 总_do14ko[];
double 总_do15ko[];
double 总_do16ko[];
double 总_do17ko[];
double 总_do18ko[];
double 总_do_19 = 0.0;
double 总_do_20 = 0.0;
bool 总_bo_21 = false;
bool 总_bo_22 = false;
int 总_in_23 = 0;
int 总_in_24 = 0;
int 总_in_25 = 0;
int 总_in_26 = 0;
int 总_in_27 = 0;
int 总_in_28 = 0;
double 总_do29si30[30];
int 总_in_30 = 0;
double 总_do_31 = 0.0;
int 总_in_32 = 0;
double 总_do_33 = 0.0;
double 总_do_34 = 0.0;
double 总_do_35 = 0.0;
double 总_do_36 = 0.0;
double 总_do_37 = 0.0;
double 总_do_38 = 0.0;
double 总_do_39 = 0.0;
double 总_do_40 = 0.0;
double 总_do_41 = 0.0;
double 总_do_42 = 0.0;
double 总_do_43 = 0.0;
bool 总_bo_44 = false;
double 总_do_45 = 0.0;
int 总_in_46 = 0;
double 总_do_47 = 0.0;
bool 总_bo_48 = true;
double 总_do_49 = 240.0;
double 总_do_50 = 0.0;
int 总_in_51 = 0;
double 总_do_52 = 0.0;
double 总_do_53 = 0.0;
double 总_do_54 = 0.0;
double 总_do_55 = 0.0;
double 总_do_56 = 0.0;
double 总_do_57 = 0.0;
double 总_do_58 = 0.0;
double 总_do_59 = 0.0;
#import "stdlib.ex4"
string ErrorDescription( int 木_0);
#import
int init()
{
int 子_in_1;
double 子_do_2;
//----- -----
ArrayInitialize(总_do29si30,0.0);
总_in_30 = MarketInfo(NULL,12) ;
总_do_31 = MarketInfo(NULL,11) ;
Print("Digits: " + string(总_in_30) + " Point: " + DoubleToString(MarketInfo(NULL,11),总_in_30));
子_do_2 = MarketInfo(Symbol(),24) ;
总_in_32 = MathLog(子_do_2) / (-2.302585092994) ;
总_do_33 = MathMax(FixedLots,MarketInfo(Symbol(),23)) ;
总_do_34 = MathMin(总_do_1,MarketInfo(Symbol(),25)) ;
总_do_35 = Risk / 100.0 ;
总_do_36 = NormalizeDouble(MaxSpreadPlusCommission * 总_do_31,总_in_30 + 1) ;
总_do_37 = NormalizeDouble(PendingDistance * 总_do_31,总_in_30) ;
总_do_43 = NormalizeDouble(总_do_31 * CandlestickHighLow,总_in_30) ;
总_bo_44 = false ;
总_do_45 = NormalizeDouble(总_do_47 * 总_do_31,总_in_30 + 1) ;
if ( !(IsTesting()) )
{
if ( 总_bo_48 )
{
子_in_1 = Period() ;
switch(Period())
{
case 1 :
总_do_49 = 5.0 ;
break;
case 5 :
总_do_49 = 15.0 ;
break;
case 15 :
总_do_49 = 30.0 ;
break;
case 30 :
总_do_49 = 60.0 ;
break;
case 60 :
总_do_49 = 240.0 ;
break;
case 240 :
总_do_49 = 1440.0 ;
break;
case 1440 :
总_do_49 = 10080.0 ;
break;
case 10080 :
总_do_49 = 43200.0 ;
break;
case 43200 :
总_do_49 = 43200.0 ;
}}
总_do_50 = 0.0001 ;
}
DeleteAllObjects ( );
SetIndexBuffer(0,总_do11ko);
SetIndexBuffer(1,总_do12ko);
SetIndexBuffer(2,总_do13ko);
SetIndexBuffer(3,总_do14ko);
SetIndexBuffer(4,总_do15ko);
SetIndexBuffer(5,总_do16ko);
SetIndexBuffer(6,总_do17ko);
SetIndexBuffer(7,总_do18ko);
SetIndexLabel(0,"Fibo_" + DoubleToString(总_do_7,4));
SetIndexLabel(1,"Fibo_" + DoubleToString(总_do_2,4));
SetIndexLabel(2,"Fibo_" + DoubleToString(总_do_3,4));
SetIndexLabel(3,"Fibo_" + DoubleToString(总_do_4,4));
SetIndexLabel(4,"Fibo_" + DoubleToString(总_do_5,4));
SetIndexLabel(5,"Fibo_" + DoubleToString(总_do_6,4));
SetIndexLabel(7,"Fibo_" + DoubleToString(总_do_8,4));
return(0);
}
//init <<==
//---------- ---------- ---------- ----------
int start()
{
bool 子_bo_1;
string 子_st_2;
datetime 子_da_3;
double 子_do_4;
double 子_do_5;
double 子_do_6;
double 子_do_7;
int 子_in_8;
string 子_st_9;
int 子_in_10;
double 子_do_11;
double 子_do_12;
int 子_in_13;
int 子_in_14;
bool 子_bo_15;
double 子_do_16;
double 子_do_17;
double 子_do_18;
double 子_do_19;
double 子_do_20;
double 子_do_21;
double 子_do_22;
double 子_do_23;
double 子_do_24;
double 子_do_25;
double 子_do_26;
double 子_do_27;
int 子_in_28;
int 子_in_29;
double 子_do_30;
double 子_do_31;
int 子_in_32;
int 子_in_33;
double 子_do_34;
double 子_do_35;
double 子_do_36;
double 子_do_37;
double 子_do_38;
double 子_do_39;
double 子_do_40;
double 子_do_41;
double 子_do_42;
int 子_in_43;
double 子_do_44;
double 子_do_45;
int 子_in_46;
double 子_do_47;
double 子_do_48;
double 子_do_49;
double 子_do_50;
double 子_do_51;
double 子_do_52;
int 子_in_53;
string 子_st_54;
//----- -----
子_bo_1 = IsDemo() ;
if ( !(子_bo_1) )
{
//Alert("You can not use the program with a real account!");
//return(0);
}
子_st_2 = "2016.8.25" ;
子_da_3 = StringToTime(子_st_2) ;
if ( TimeCurrent() >= 子_da_3 )
{
//Alert("The trial version has been expired!");
//return(0);
}
if ( ShowFibo == 1 )
{
CalcFibo();
}
子_do_4 = NormalizeDouble(Pipstep * MathPow(PipstepExponent,CountTradesSell ( )),0) ;
子_do_5 = NormalizeDouble(Pipstep * MathPow(PipstepExponent,CountTradesBuy ( )),0) ;
子_do_6 = FindLastSellPrice_Hilo ( ) ;
子_do_7 = FindLastBuyPrice_Hilo ( ) ;
子_in_8 = 0 ;
子_in_10 = 0 ;
子_do_11 = 0.0 ;
子_do_12 = 0.0 ;
子_in_13 = 0 ;
子_in_14 = 0 ;
子_bo_15 = false ;
子_do_16 = 0.0 ;
子_do_17 = 0.0 ;
子_do_18 = 0.0 ;
子_do_19 = 0.0 ;
子_do_20 = 0.0 ;
子_do_21 = 0.0 ;
子_do_22 = 0.0 ;
子_do_23 = 0.0 ;
子_do_24 = iHigh(NULL,0,0) ;
子_do_25 = iLow(NULL,0,0) ;
子_do_26 = iHigh(NULL,0,1) ;
子_do_27 = iLow(NULL,0,1) ;
子_in_28 = 0 ;
子_in_29 = 0 ;
子_do_30 = 0.0 ;
子_do_31 = 0.0 ;
子_in_32 = iLowest(NULL,0,MODE_LOW,BarsBack,StartBar) ;
子_in_33 = iHighest(NULL,0,MODE_HIGH,BarsBack,StartBar) ;
子_do_34 = 0.0 ;
子_do_35 = 0.0 ;
子_do_31 = High[子_in_33] ;
子_do_30 = Low[子_in_32] ;
总_do_52 = 子_do_31 - 子_do_30 ;
子_do_36 = LowFibo / 100.0 * 总_do_52 + 子_do_30 ;
子_do_37 = 总_do_52 * 0.236 + 子_do_30 ;
子_do_38 = 总_do_52 * 0.382 + 子_do_30 ;
子_do_39 = 总_do_52 * 0.5 + 子_do_30 ;
子_do_40 = 总_do_52 * 0.618 + 子_do_30 ;
子_do_41 = 总_do_52 * 0.764 + 子_do_30 ;
子_do_42 = HighFibo / 100.0 * 总_do_52 + 子_do_30 ;
if ( !(总_bo_44) )
{
for (子_in_43 = OrdersHistoryTotal() - 1 ; 子_in_43 >= 0 ; 子_in_43 = 子_in_43 - 1)
{
if ( !(OrderSelect(子_in_43,SELECT_BY_POS,MODE_HISTORY)) || !(OrderProfit()!=0.0) || !(OrderClosePrice()!=OrderOpenPrice()) || OrderSymbol() != Symbol() ) continue;
总_bo_44 = true ;
子_do_12=MathAbs(OrderProfit() / (OrderClosePrice() - OrderOpenPrice()));
总_do_45 = ( -(OrderCommission())) / 子_do_12 ;
break;
}
}
子_do_17 = NormalizeDouble(AccountBalance() * AccountLeverage() * 总_do_35 / MarketInfo(Symbol(),15),总_in_32) ;
if ( !(UseMM) )
{
子_do_17 = FixedLots ;
}
总_do_57 = 子_do_17 * TargetMoneyFactor * CountTradesSell ( ) * LotsExponent ;
if ( !(AutoTargetMoney) )
{
总_do_57 = TargetMoney ;
}
总_do_56 = 子_do_17 * TargetMoneyFactor * CountTradesBuy ( ) * LotsExponent ;
if ( !(AutoTargetMoney) )
{
总_do_56 = TargetMoney ;
}
总_do_59 = 子_do_17 * StoplossFactor * CountTradesSell ( ) * LotsExponent ;
if ( !(AutoStopLossMoney) )
{
总_do_59 = StoplossMoney ;
}
总_do_58 = 子_do_17 * StoplossFactor * CountTradesBuy ( ) * LotsExponent ;
if ( !(AutoStopLossMoney) )
{
总_do_58 = StoplossMoney ;
}
子_do_44 = Ask - Bid ;
ArrayCopy(总_do29si30,总_do29si30,0,1,29);
总_do29si30[29] = 子_do_44;
if ( 总_in_46 < 30 )
{
总_in_46=总_in_46 + 1;
}
子_do_45 = 0.0 ;
子_in_43 = 29 ;
for (子_in_46 = 0 ; 子_in_46 < 总_in_46 ; 子_in_46 = 子_in_46 + 1)
{
子_do_45 = 子_do_45 + 总_do29si30[子_in_43] ;
子_in_43 = 子_in_43 - 1;
}
子_do_47 = 子_do_45 / 总_in_46 ;
子_do_48 = NormalizeDouble(Ask + 总_do_45,总_in_30) ;
子_do_49 = NormalizeDouble(Bid - 总_do_45,总_in_30) ;
子_do_50 = NormalizeDouble(子_do_47 + 总_do_45,总_in_30 + 1) ;
子_do_51 = 子_do_24 - 子_do_25 ;
子_do_52 = 子_do_26 - 子_do_27 ;
if ( Bid - 子_do_6>=子_do_4 * Point() )
{
总_in_25 = MaxOrderSell ;
}
else
{
总_in_25 = 1 ;
}
if ( 子_do_7 - Ask>=子_do_5 * Point() )
{
总_in_26 = MaxOrderBuy ;
}
else
{
总_in_26 = 1 ;
}
if ( CandlestickMode != 0 )
{
if ( CandlestickMode == 1 && 子_do_51>总_do_43 )
{
if ( Bid>子_do_42 )
{
子_in_13 = -1 ;
}
else
{
if ( Bid<子_do_36 )
{
子_in_13 = 1 ;
}}}}
else
{
if ( 子_do_51<=总_do_43 && 子_do_52<=总_do_43 )
{
if ( Bid>子_do_42 )
{
子_in_13 = -1 ;
}
else
{
if ( Bid<子_do_36 )
{
子_in_13 = 1 ;
}}}}
子_in_53 = 0 ;
for (子_in_43 = 0 ; 子_in_43 < OrdersTotal() ; 子_in_43 = 子_in_43 + 1)
{
if ( !(OrderSelect(子_in_43,SELECT_BY_POS,MODE_TRADES)) || OrderMagicNumber() != MagicNumber ) continue;
子_in_14 = OrderType() ;
if ( 子_in_14 == 0 || 子_in_14 == 1 || OrderSymbol() != Symbol() ) continue;
子_in_53 = 子_in_53 + 1;
switch(子_in_14)
{
case 4 :
子_do_16 = NormalizeDouble(OrderOpenPrice(),总_in_30) ;
子_do_11 = NormalizeDouble(Ask + 总_do_37,总_in_30) ;
if ( !(子_do_11<子_do_16) ) break;
子_do_20 = NormalizeDouble(子_do_11 - StopLoss * Point(),总_in_30) ;
子_do_21 = NormalizeDouble(TakeProfit * Point() + 子_do_11,总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
if ( OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
{
子_bo_15 = OrderModify(OrderTicket(),子_do_11,子_do_23,子_do_22,0,Blue) ;
}
if ( 子_bo_15 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("BUYSTOP Modify Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
case 5 :
子_do_16 = NormalizeDouble(OrderOpenPrice(),总_in_30) ;
子_do_11 = NormalizeDouble(Bid - 总_do_37,总_in_30) ;
if ( !(子_do_11>子_do_16) ) break;
子_do_20 = NormalizeDouble(StopLoss * Point() + 子_do_11,总_in_30) ;
子_do_21 = NormalizeDouble(子_do_11 - TakeProfit * Point(),总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
if ( OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
{
子_bo_15 = OrderModify(OrderTicket(),子_do_11,子_do_23,子_do_22,0,Red) ;
}
if ( 子_bo_15 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("SELLSTOP Modify Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
case 3 :
子_do_16 = NormalizeDouble(OrderOpenPrice(),总_in_30) ;
子_do_11 = NormalizeDouble(Bid + 总_do_37,总_in_30) ;
if ( !(子_do_11<子_do_16) ) break;
子_do_20 = NormalizeDouble(StopLoss * Point() + 子_do_11,总_in_30) ;
子_do_21 = NormalizeDouble(子_do_11 - TakeProfit * Point(),总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
if ( OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
{
子_bo_15 = OrderModify(OrderTicket(),子_do_11,子_do_23,子_do_22,0,Red) ;
}
if ( 子_bo_15 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("BUYLIMIT Modify Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
case 2 :
子_do_16 = NormalizeDouble(OrderOpenPrice(),总_in_30) ;
子_do_11 = NormalizeDouble(Ask - 总_do_37,总_in_30) ;
if ( !(子_do_11>子_do_16) ) break;
子_do_20 = NormalizeDouble(子_do_11 - StopLoss * Point(),总_in_30) ;
子_do_21 = NormalizeDouble(TakeProfit * Point() + 子_do_11,总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
if ( OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol() )
{
子_bo_15 = OrderModify(OrderTicket(),子_do_11,子_do_23,子_do_22,0,Blue) ;
}
if ( 子_bo_15 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("SELLLIMIT Modify Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
}
}
if ( CountTradesBuy ( ) == 0 )
{
总_bo_21 = false ;
}
if ( CountTradesSell ( ) == 0 )
{
总_bo_22 = false ;
}
TotalProfitbuy ( );
TotalProfitsell ( );
ChartComment();
if ( ( ( 总_do_56>0.0 && 总_do_19>=总_do_56 ) || ( -(总_do_58)<0.0 && 总_do_19<= -(总_do_58)) ) )
{
总_bo_21 = true ;
}
if ( 总_bo_21 )
{
OpenOrdClose ( );
}
if ( ( ( 总_do_57>0.0 && 总_do_20>=总_do_57 ) || ( -(总_do_59)<0.0 && 总_do_20<= -(总_do_59)) ) )
{
总_bo_22 = true ;
}
if ( 总_bo_22 )
{
OpenOrdClose2 ( );
}
if ( UseTrailing )
{
MoveTrailingStop();
}
if ( !(TradeMonday) && DayOfWeek() == 1 )
{
return(0);
}
if ( !(TradeTuesday) && DayOfWeek() == 2 )
{
return(0);
}
if ( !(TradeWednesday) && DayOfWeek() == 3 )
{
return(0);
}
if ( !(TradeThursday) && DayOfWeek() == 4 )
{
return(0);
}
if ( !(TradeFriday) && DayOfWeek() == 5 )
{
return(0);
}
switch(TradingMode)
{
case 0 :
if ( Bid<子_do_36 && CountTradesSell ( ) >= 总_in_25 )
{
return(0);
}
if ( !(Bid>子_do_42) || CountTradesBuy ( ) < 总_in_26 ) break;
return(0);
case 2 :
if ( Bid<子_do_36 && CountTradesSell ( ) >= 总_in_25 )
{
return(0);
}
if ( !(Bid>子_do_42) || CountTradesBuy ( ) < 总_in_26 ) break;
return(0);
case 1 :
if ( Bid>子_do_42 && CountTradesSell ( ) >= 总_in_25 )
{
return(0);
}
if ( !(Bid<子_do_36) || CountTradesBuy ( ) < 总_in_26 ) break;
return(0);
case 3 :
if ( Bid>子_do_42 && CountTradesSell ( ) >= 总_in_25 )
{
return(0);
}
if ( !(Bid<子_do_36) || CountTradesBuy ( ) < 总_in_26 ) break;
return(0);
}
switch(TradingMode)
{
case 0 :
if ( 子_in_53 != 0 || 子_in_13 == 0 || !(子_do_50<=总_do_36) || !(f0_4 ( )) ) break;
子_do_17 = AccountBalance() * AccountLeverage() * 总_do_35 / MarketInfo(Symbol(),15) ;
if ( !(UseMM) )
{
子_do_17 = FixedLots ;
}
子_do_18 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesBuy ( )),总_in_30) ;
子_do_18 = MathMax(总_do_33,子_do_18) ;
子_do_18 = MathMin(总_do_34,子_do_18) ;
子_do_19 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesSell ( )),总_in_30) ;
子_do_19 = MathMax(总_do_33,子_do_19) ;
子_do_19 = MathMin(总_do_34,子_do_19) ;
if ( 子_in_13 < 0 )
{
子_do_11 = NormalizeDouble(Ask - 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(子_do_11 - StopLoss * Point(),总_in_30) ;
子_do_21 = NormalizeDouble(TakeProfit * Point() + 子_do_11,总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_BUYLIMIT,子_do_18,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Blue) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("BUYLIMIT Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_18,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
}
子_do_11 = NormalizeDouble(Bid + 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(StopLoss * Point() + 子_do_11,总_in_30) ;
子_do_21 = NormalizeDouble(子_do_11 - TakeProfit * Point(),总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_SELLLIMIT,子_do_19,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Red) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("SELLLIMIT Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_19,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
case 1 :
if ( 子_in_53 != 0 || 子_in_13 == 0 || !(子_do_50<=总_do_36) || !(f0_4 ( )) ) break;
子_do_17 = AccountBalance() * AccountLeverage() * 总_do_35 / MarketInfo(Symbol(),15) ;
if ( !(UseMM) )
{
子_do_17 = FixedLots ;
}
子_do_18 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesBuy ( )),总_in_30) ;
子_do_18 = MathMax(总_do_33,子_do_18) ;
子_do_18 = MathMin(总_do_34,子_do_18) ;
子_do_19 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesSell ( )),总_in_30) ;
子_do_19 = MathMax(总_do_33,子_do_19) ;
子_do_19 = MathMin(总_do_34,子_do_19) ;
if ( 子_in_13 < 0 )
{
子_do_11 = NormalizeDouble(Bid + 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(StopLoss * Point() + 子_do_11,总_in_30) ;
子_do_21 = NormalizeDouble(子_do_11 - TakeProfit * Point(),总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_SELLLIMIT,子_do_19,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Red) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("SELLLIMIT Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_19,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
}
子_do_11 = NormalizeDouble(Ask - 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(子_do_11 - StopLoss * Point(),总_in_30) ;
子_do_21 = NormalizeDouble(TakeProfit * Point() + 子_do_11,总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_BUYLIMIT,子_do_18,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Blue) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("BUYLIMIT Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_18,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
case 2 :
if ( 子_in_53 != 0 || 子_in_13 == 0 || !(子_do_50<=总_do_36) || !(f0_4 ( )) ) break;
子_do_17 = AccountBalance() * AccountLeverage() * 总_do_35 / MarketInfo(Symbol(),15) ;
if ( !(UseMM) )
{
子_do_17 = FixedLots ;
}
子_do_18 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesBuy ( )),总_in_30) ;
子_do_18 = MathMax(总_do_33,子_do_18) ;
子_do_18 = MathMin(总_do_34,子_do_18) ;
子_do_19 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesSell ( )),总_in_30) ;
子_do_19 = MathMax(总_do_33,子_do_19) ;
子_do_19 = MathMin(总_do_34,子_do_19) ;
if ( 子_in_13 < 0 )
{
子_do_11 = NormalizeDouble(Ask + 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(子_do_11 - StopLoss * Point(),总_in_30) ;
子_do_21 = NormalizeDouble(TakeProfit * Point() + 子_do_11,总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_BUYSTOP,子_do_18,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Blue) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("BUYSTOP Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_18,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
}
子_do_11 = NormalizeDouble(Bid - 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(StopLoss * Point() + 子_do_11,总_in_30) ;
子_do_21 = NormalizeDouble(子_do_11 - TakeProfit * Point(),总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_SELLSTOP,子_do_19,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Red) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("SELLSTOP Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_19,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
case 3 :
if ( 子_in_53 != 0 || 子_in_13 == 0 || !(子_do_50<=总_do_36) || !(f0_4 ( )) ) break;
子_do_17 = AccountBalance() * AccountLeverage() * 总_do_35 / MarketInfo(Symbol(),15) ;
if ( !(UseMM) )
{
子_do_17 = FixedLots ;
}
子_do_18 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesBuy ( )),总_in_30) ;
子_do_18 = MathMax(总_do_33,子_do_18) ;
子_do_18 = MathMin(总_do_34,子_do_18) ;
子_do_19 = NormalizeDouble(子_do_17 * MathPow(LotsExponent,CountTradesSell ( )),总_in_30) ;
子_do_19 = MathMax(总_do_33,子_do_19) ;
子_do_19 = MathMin(总_do_34,子_do_19) ;
if ( 子_in_13 < 0 )
{
子_do_11 = NormalizeDouble(Bid - 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(StopLoss * Point() + 子_do_11,总_in_30) ;
子_do_21 = NormalizeDouble(子_do_11 - TakeProfit * Point(),总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_SELLSTOP,子_do_19,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Red) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("SELLSTOP Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_19,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
break;
}
子_do_11 = NormalizeDouble(Ask + 总_do_37,总_in_30) ;
子_do_20 = NormalizeDouble(子_do_11 - StopLoss * Point(),总_in_30) ;
子_do_21 = NormalizeDouble(TakeProfit * Point() + 子_do_11,总_in_30) ;
子_do_23 = 子_do_20 ;
if ( !(UseStopLoss) )
{
子_do_23 = 0.0 ;
}
子_do_22 = 子_do_21 ;
if ( !(UseTakeProfit) )
{
子_do_22 = 0.0 ;
}
子_in_10 = OrderSend(Symbol(),OP_BUYSTOP,子_do_18,子_do_11,Slippage,子_do_23,子_do_22,TradeComment,MagicNumber,0,Blue) ;
if ( 子_in_10 > 0 ) break;
子_in_8 = GetLastError() ;
子_st_9 = ErrorDescription(子_in_8) ;
Print("BUYSTOP Send Error Code: " + string(子_in_8) + " Message: " + 子_st_9 + " LT: " + DoubleToString(子_do_18,总_in_30) + " OP: " + DoubleToString(子_do_11,总_in_30) + " SL: " + DoubleToString(子_do_23,总_in_30) + " TP: " + DoubleToString(子_do_22,总_in_30) + " Bid: " + DoubleToString(Bid,总_in_30) + " Ask: " + DoubleToString(Ask,总_in_30));
}
子_st_54 = "AvgSpread:" + DoubleToString(子_do_47,总_in_30) + " Commission rate:" + DoubleToString(总_do_45,总_in_30 + 1) + " Real avg. spread:" + DoubleToString(子_do_50,总_in_30 + 1) ;
if ( 子_do_50>总_do_36 )
{
子_st_54 = 子_st_54 + "\n" + "The EA can not run with this spread ( " + DoubleToString(子_do_50,总_in_30 + 1) + " > " + DoubleToString(总_do_36,总_in_30 + 1) + " )" ;
}
return(0);
}
//start <<==
//---------- ---------- ---------- ----------
int deinit()
{
Comment("");
DeleteAllObjects ( );
return(0);
}
//deinit <<==
//---------- ---------- ---------- ----------
int f0_4()
{
if ( ( ( Hour() > StartHour && Hour() < EndHour ) || ( Hour() == StartHour && Minute() >= StartMinute ) || (Hour() == EndHour && Minute() < EndMinute) ) )
{
return(1);
}
return(0);
}
//f0_4 <<==
//---------- ---------- ---------- ----------
void MoveTrailingStop()
{
int 子_in_1;
//----- -----
for (子_in_1 = 0 ; 子_in_1 < OrdersTotal() ; 子_in_1 = 子_in_1 + 1)
{
if ( !(OrderSelect(子_in_1,SELECT_BY_POS,MODE_TRADES)) || OrderType() > 1 || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber ) continue;
if ( OrderType() == 0 )
{
if ( TrailingStop <= 0 || !(NormalizeDouble(Ask - TrailingStart * Point(),Digits())>NormalizeDouble(TrailingStop * Point() + OrderOpenPrice(),Digits())) ) continue;
if ( ( !(NormalizeDouble(OrderStopLoss(),Digits())<NormalizeDouble(Bid - TrailingStop * Point(),Digits())) && !(OrderStopLoss()==0.0) ) || !(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid - TrailingStop * Point(),Digits()),OrderTakeProfit(),0,Blue)) || GetLastError() != 0 ) continue;
Print(Symbol() + ": Trailing Buy OrderModify ok ");
continue;
}
if ( TrailingStop <= 0 || !(NormalizeDouble(TrailingStart * Point() + Bid,Digits())<NormalizeDouble(OrderOpenPrice() - TrailingStop * Point(),Digits())) ) continue;
if ( ( !(NormalizeDouble(OrderStopLoss(),Digits())>NormalizeDouble(TrailingStop * Point() + Ask,Digits())) && !(OrderStopLoss()==0.0) ) || !(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TrailingStop * Point() + Ask,Digits()),OrderTakeProfit(),0,Red)) || GetLastError() != 0 ) continue;
Print(Symbol() + ": Trailing Sell OrderModify ok ");
}
}
//MoveTrailingStop <<==
//---------- ---------- ---------- ----------
int ScanOpenTrades()
{
int 子_in_1;
int 子_in_2;
int 子_in_3;
//----- -----
子_in_1 = OrdersTotal() ;
子_in_2 = 0 ;
for (子_in_3 = 0 ; 子_in_3 <= 子_in_1 - 1 ; 子_in_3 = 子_in_3 + 1)
{
if ( !(OrderSelect(子_in_3,SELECT_BY_POS,MODE_TRADES)) || OrderType() > 1 ) continue;
if ( 总_in_23 > 0 && OrderMagicNumber() == 总_in_23 )
{
子_in_2 = 子_in_2 + 1;
}
if ( 总_in_23 != 0 ) continue;
子_in_2 = 子_in_2 + 1;
}
return(子_in_2);
}
//ScanOpenTrades <<==
//---------- ---------- ---------- ----------
int ScanOpenTradessymbol()
{
int 子_in_1;
int 子_in_2;
int 子_in_3;
//----- -----
子_in_1 = OrdersTotal() ;
子_in_2 = 0 ;
for (子_in_3 = 0 ; 子_in_3 <= 子_in_1 - 1 ; 子_in_3 = 子_in_3 + 1)
{
if ( !(OrderSelect(子_in_3,SELECT_BY_POS,MODE_TRADES)) || OrderType() > 1 ) continue;
if ( OrderSymbol() == Symbol() && 总_in_23 > 0 && OrderMagicNumber() == 总_in_23 )
{
子_in_2 = 子_in_2 + 1;
}
if ( OrderSymbol() != Symbol() || 总_in_23 != 0 ) continue;
子_in_2 = 子_in_2 + 1;
}
return(子_in_2);
}
//ScanOpenTradessymbol <<==
//---------- ---------- ---------- ----------
void OpenOrdClose()
{
int 子_in_1;
int 子_in_2;
int 子_in_3;
bool 子_bo_4;
bool 子_bo_5;
//----- -----
子_bo_5 = false ;
子_in_1 = OrdersTotal() ;
for (子_in_2 = 0 ; 子_in_2 < 子_in_1 ; 子_in_2 = 子_in_2 + 1)
{
if ( !(OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES)) ) continue;
子_in_3 = OrderType() ;
子_bo_4 = false ;
子_bo_5 = false ;
if ( OrderSymbol() == Symbol() && MagicNumber > 0 && OrderMagicNumber() == MagicNumber )
{
子_bo_5 = true ;
}
else
{
if ( OrderSymbol() == Symbol() && MagicNumber == 0 )
{
子_bo_5 = true ;
}}
if ( !(子_bo_5) ) continue;
switch(子_in_3)
{
case 0 :
子_bo_4 = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),9),Slippage,Blue) ;
break;
case 2 :
if ( !(OrderDelete(OrderTicket(),0xFFFFFFFF)) ) break;
case 4 :
if ( !(OrderDelete(OrderTicket(),0xFFFFFFFF)) ) break;
default :
if ( 子_bo_4 ) break;
Print(" OrderClose failed with error #",GetLastError());
Sleep(3000);
}
}
}
//OpenOrdClose <<==
//---------- ---------- ---------- ----------
void OpenOrdClose2()
{
int 子_in_1;
int 子_in_2;
int 子_in_3;
bool 子_bo_4;
bool 子_bo_5;
//----- -----
子_bo_5 = false ;
子_in_1 = OrdersTotal() ;
for (子_in_2 = 0 ; 子_in_2 < 子_in_1 ; 子_in_2 = 子_in_2 + 1)
{
if ( !(OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES)) ) continue;
子_in_3 = OrderType() ;
子_bo_4 = false ;
子_bo_5 = false ;
if ( OrderSymbol() == Symbol() && MagicNumber > 0 && OrderMagicNumber() == MagicNumber )
{
子_bo_5 = true ;
}
else
{
if ( OrderSymbol() == Symbol() && MagicNumber == 0 )
{
子_bo_5 = true ;
}}
if ( !(子_bo_5) ) continue;
switch(子_in_3)
{
case 1 :
子_bo_4 = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),10),Slippage,Red) ;
break;
case 3 :
if ( !(OrderDelete(OrderTicket(),0xFFFFFFFF)) ) break;
case 5 :
if ( !(OrderDelete(OrderTicket(),0xFFFFFFFF)) ) break;
default :
if ( 子_bo_4 ) break;
Print(" OrderClose failed with error #",GetLastError());
Sleep(3000);
}
}
}
//OpenOrdClose2 <<==
//---------- ---------- ---------- ----------
void TotalProfitbuy()
{
int 子_in_1;
int 子_in_2;
int 子_in_3;
bool 子_bo_4;
//----- -----
子_in_1 = OrdersTotal() ;
总_do_19 = 0.0 ;
for (子_in_2 = 0 ; 子_in_2 < 子_in_1 ; 子_in_2 = 子_in_2 + 1)
{
if ( !(OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES)) ) continue;
子_in_3 = OrderType() ;
子_bo_4 = false ;
if ( OrderSymbol() == Symbol() && MagicNumber > 0 && OrderMagicNumber() == MagicNumber )
{
子_bo_4 = true ;
}
else
{
if ( OrderSymbol() == Symbol() && MagicNumber == 0 )
{
子_bo_4 = true ;
}}
if ( !(子_bo_4) || 子_in_3 != 0 ) continue;
总_do_19 = OrderProfit() + OrderCommission() + OrderSwap() + 总_do_19 ;
}
}
//TotalProfitbuy <<==
//---------- ---------- ---------- ----------
void TotalProfitsell()
{
int 子_in_1;
int 子_in_2;
int 子_in_3;
bool 子_bo_4;
//----- -----
子_in_1 = OrdersTotal() ;
总_do_20 = 0.0 ;
for (子_in_2 = 0 ; 子_in_2 < 子_in_1 ; 子_in_2 = 子_in_2 + 1)
{
if ( !(OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES)) ) continue;
子_in_3 = OrderType() ;
子_bo_4 = false ;
if ( OrderSymbol() == Symbol() && MagicNumber > 0 && OrderMagicNumber() == MagicNumber )
{
子_bo_4 = true ;
}
else
{
if ( OrderSymbol() == Symbol() && MagicNumber == 0 )
{
子_bo_4 = true ;
}}
if ( !(子_bo_4) || 子_in_3 != 1 ) continue;
总_do_20 = OrderProfit() + OrderCommission() + OrderSwap() + 总_do_20 ;
}
}
//TotalProfitsell <<==
//---------- ---------- ---------- ----------
void ChartComment()
{
string 子_st_1;
string 子_st_2;
string 子_st_3;
//----- -----
子_st_1 = "" ;
子_st_2 = "----------------------------------------\n" ;
子_st_3 = "\n" ;
子_st_1 = "----------------------------------------\n" ;
子_st_1 = "----------------------------------------\nName = " + AccountName() + "\n" ;
子_st_1 = 子_st_1 + "Broker" + " " + "=" + " " + AccountCompany() + "\n" ;
子_st_1 = 子_st_1 + "Account Leverage" + " " + "=" + " " + "1:" + DoubleToString(AccountLeverage(),0) + "\n" ;
子_st_1 = 子_st_1 + "Account Balance" + " " + "=" + " " + DoubleToString(AccountBalance(),2) + "\n" ;
子_st_1 = 子_st_1 + "Account Equity" + " " + "=" + " " + DoubleToString(AccountEquity(),2) + "\n" ;
子_st_1 = 子_st_1 + "Day Profit" + " " + "=" + " " + DoubleToString(AccountBalance() - startBalanceD1 ( ),2) + 子_st_3 ;
子_st_1 = 子_st_1 + 子_st_2;
子_st_1 = 子_st_1 + "Open ALL Positions = " + string(ScanOpenTrades ( )) + 子_st_3 ;
子_st_1 = 子_st_1 + Symbol() + " ALL Order = " + string(ScanOpenTradessymbol ( )) + 子_st_3 ;
子_st_1 = 子_st_1 + "Open Buy = " + string(CountTradesBuy ( )) + 子_st_3 ;
子_st_1 = 子_st_1 + "Open Sell = " + string(CountTradesSell ( )) + 子_st_3 ;
子_st_1 = 子_st_1 + 子_st_2;
子_st_1 = 子_st_1 + "Target Money Buy = " + DoubleToString(总_do_56,2) + 子_st_3 ;
子_st_1 = 子_st_1 + "Stoploss Money Buy = " + DoubleToString( -(总_do_58),2) + 子_st_3 ;
子_st_1 = 子_st_1 + 子_st_2;
子_st_1 = 子_st_1 + "Target Money Sell = " + DoubleToString(总_do_57,2) + 子_st_3 ;
子_st_1 = 子_st_1 + "Stoploss Money Sell = " + DoubleToString( -(总_do_59),2) + 子_st_3 ;
子_st_1 = 子_st_1 + 子_st_2;
子_st_1 = 子_st_1 + "Buy Profit(USD) = " + DoubleToString(总_do_19,2) + 子_st_3 ;
子_st_1 = 子_st_1 + "Sell Profit(USD) = " + DoubleToString(总_do_20,2) + 子_st_3 ;
子_st_1 = 子_st_1 + 子_st_2;
Comment(子_st_1);
}
//ChartComment <<==
//---------- ---------- ---------- ----------
void DeleteAllObjects()
{
int 子_in_1;
string 子_st_2;
int 子_in_3;
//----- -----
子_in_3 = 0 ;
子_in_1 = ObjectsTotal(-1) ;
for (子_in_3 = ObjectsTotal(-1) - 1 ; 子_in_3 >= 0 ; 子_in_3 = 子_in_3 - 1)
{
if ( HighToLow )
{
子_st_2 = ObjectName(子_in_3) ;
if ( StringFind(子_st_2,"v_u_hl",0) > -1 )
{
ObjectDelete(子_st_2);
}
if ( StringFind(子_st_2,"v_l_hl",0) > -1 )
{
ObjectDelete(子_st_2);
}
if ( StringFind(子_st_2,"Fibo_hl",0) > -1 )
{
ObjectDelete(子_st_2);
}
if ( StringFind(子_st_2,"trend_hl",0) > -1 )
{
ObjectDelete(子_st_2);
}
WindowRedraw();
continue;
}
子_st_2 = ObjectName(子_in_3) ;
if ( StringFind(子_st_2,"v_u_lh",0) > -1 )
{
ObjectDelete(子_st_2);
}
if ( StringFind(子_st_2,"v_l_lh",0) > -1 )
{
ObjectDelete(子_st_2);
}
if ( StringFind(子_st_2,"Fibo_lh",0) > -1 )
{
ObjectDelete(子_st_2);
}
if ( StringFind(子_st_2,"trend_lh",0) > -1 )
{
ObjectDelete(子_st_2);
}
WindowRedraw();
}
}
//DeleteAllObjects <<==
//---------- ---------- ---------- ----------
void CalcFibo()
{
int 子_in_1;
int 子_in_2;
double 子_do_3;
double 子_do_4;
int 子_in_5;
int 子_in_6;
double 子_do_7;
double 子_do_8;
int 子_in_9;
//----- -----
子_in_5 = iLowest(NULL,0,MODE_LOW,BarsBack,StartBar) ;
子_in_6 = iHighest(NULL,0,MODE_HIGH,BarsBack,StartBar) ;
子_do_7 = 0.0 ;
子_do_8 = 0.0 ;
子_do_4 = High[子_in_6] ;
子_do_3 = Low[子_in_5] ;
if ( HighToLow )
{
DrawVerticalLine ( "v_u_hl",子_in_6,总_ui_9);
DrawVerticalLine ( "v_l_hl",子_in_5,总_ui_9);
if ( ObjectFind("trend_hl") == -1 )
{
ObjectCreate("trend_hl",OBJ_TREND,0,Time[子_in_6],子_do_4,Time[子_in_5],子_do_3,0,0.0);
}
ObjectSet("trend_hl",OBJPROP_TIME1,Time[子_in_6]);
ObjectSet("trend_hl",OBJPROP_TIME2,Time[子_in_5]);
ObjectSet("trend_hl",OBJPROP_PRICE1,子_do_4);
ObjectSet("trend_hl",OBJPROP_PRICE2,子_do_3);
ObjectSet("trend_hl",OBJPROP_STYLE,2.0);
ObjectSet("trend_hl",OBJPROP_RAY,0.0);
if ( ObjectFind("Fibo_hl") == -1 )
{
ObjectCreate("Fibo_hl",OBJ_FIBO,0,0,子_do_4,0,子_do_3,0,0.0);
}
ObjectSet("Fibo_hl",OBJPROP_PRICE1,子_do_4);
ObjectSet("Fibo_hl",OBJPROP_PRICE2,子_do_3);
ObjectSet("Fibo_hl",OBJPROP_LEVELCOLOR,总_ui_10);
ObjectSet("Fibo_hl",OBJPROP_FIBOLEVELS,8.0);
ObjectSet("Fibo_hl",210,总_do_7);
ObjectSetFiboDescription("Fibo_hl",0,"SWING LOW (0.0) - %$");
ObjectSet("Fibo_hl",211,总_do_2);
ObjectSetFiboDescription("Fibo_hl",1,"BREAKOUT AREA (23.6) - %$");
ObjectSet("Fibo_hl",212,总_do_3);
ObjectSetFiboDescription("Fibo_hl",2,"CRITICAL AREA (38.2) - %$");
ObjectSet("Fibo_hl",213,总_do_4);
ObjectSetFiboDescription("Fibo_hl",3,"CRITICAL AREA (50.0) - %$");
ObjectSet("Fibo_hl",214,总_do_5);
ObjectSetFiboDescription("Fibo_hl",4,"CRITICAL AREA (61.8) - %$");
ObjectSet("Fibo_hl",215,总_do_6);
ObjectSetFiboDescription("Fibo_hl",5,"BREAKOUT AREA (76.4) - %$");
ObjectSet("Fibo_hl",217,总_do_8);
ObjectSetFiboDescription("Fibo_hl",7,"SWING HIGH (100.0) - %$");
ObjectSet("Fibo_hl",OBJPROP_RAY,1.0);
WindowRedraw();
for (子_in_9 = 0 ; 子_in_9 < 100 ; 子_in_9 = 子_in_9 + 1)
{
总_do17ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_8 + 子_do_3,Digits());
总_do16ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_6 + 子_do_3,Digits());
总_do15ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_5 + 子_do_3,Digits());
总_do14ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_4 + 子_do_3,Digits());
总_do13ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_3 + 子_do_3,Digits());
总_do12ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_2 + 子_do_3,Digits());
总_do11ko[子_in_9] = NormalizeDouble((子_do_4 - 子_do_3) * 总_do_7 + 子_do_3,Digits());
}
return;
}
DrawVerticalLine ( "v_u_lh",子_in_6,总_ui_9);
DrawVerticalLine ( "v_l_lh",子_in_5,总_ui_9);
if ( ObjectFind("trend_hl") == -1 )
{
ObjectCreate("trend_lh",OBJ_TREND,0,Time[子_in_5],子_do_3,Time[子_in_6],子_do_4,0,0.0);
}
ObjectSet("trend_lh",OBJPROP_TIME1,Time[子_in_5]);
ObjectSet("trend_lh",OBJPROP_TIME2,Time[子_in_6]);
ObjectSet("trend_lh",OBJPROP_PRICE1,子_do_3);
ObjectSet("trend_lh",OBJPROP_PRICE2,子_do_4);
ObjectSet("trend_lh",OBJPROP_STYLE,2.0);
ObjectSet("trend_lh",OBJPROP_RAY,0.0);
if ( ObjectFind("Fibo_lh") == -1 )
{
ObjectCreate("Fibo_lh",OBJ_FIBO,0,0,子_do_3,0,子_do_4,0,0.0);
}
ObjectSet("Fibo_lh",OBJPROP_PRICE1,子_do_3);
ObjectSet("Fibo_lh",OBJPROP_PRICE2,子_do_4);
ObjectSet("Fibo_lh",OBJPROP_LEVELCOLOR,总_ui_10);
ObjectSet("Fibo_lh",OBJPROP_FIBOLEVELS,8.0);
ObjectSet("Fibo_lh",210,总_do_7);
ObjectSetFiboDescription("Fibo_lh",0,"SWING LOW (0.0) - %$");
ObjectSet("Fibo_lh",211,总_do_2);
ObjectSetFiboDescription("Fibo_lh",1,"BREAKOUT AREA (23.6) - %$");
ObjectSet("Fibo_lh",212,总_do_3);
ObjectSetFiboDescription("Fibo_lh",2,"CRITICAL AREA (38.2) - %$");
ObjectSet("Fibo_lh",213,总_do_4);
ObjectSetFiboDescription("Fibo_lh",3,"CRITICAL AREA (50.0) - %$");
ObjectSet("Fibo_lh",214,总_do_5);
ObjectSetFiboDescription("Fibo_lh",4,"CRITICAL AREA (61.8) - %$");
ObjectSet("Fibo_lh",215,总_do_6);
ObjectSetFiboDescription("Fibo_lh",5,"BREAKOUT AREA (76.4) - %$");
ObjectSet("Fibo_lh",217,总_do_8);
ObjectSetFiboDescription("Fibo_lh",7,"SWING HIGH (100.0) - %$");
ObjectSet("Fibo_lh",OBJPROP_RAY,1.0);
WindowRedraw();
for (子_in_9 = 0 ; 子_in_9 < 100 ; 子_in_9 = 子_in_9 + 1)
{
总_do11ko[子_in_9] = NormalizeDouble(子_do_4,4);
总_do12ko[子_in_9] = NormalizeDouble(子_do_4 - (子_do_4 - 子_do_3) * 总_do_2,Digits());
总_do13ko[子_in_9] = NormalizeDouble(子_do_4 - (子_do_4 - 子_do_3) * 总_do_3,Digits());
总_do14ko[子_in_9] = NormalizeDouble(子_do_4 - (子_do_4 - 子_do_3) * 总_do_4,Digits());
总_do15ko[子_in_9] = NormalizeDouble(子_do_4 - (子_do_4 - 子_do_3) * 总_do_5,Digits());
总_do16ko[子_in_9] = NormalizeDouble(子_do_4 - (子_do_4 - 子_do_3) * 总_do_6,Digits());
总_do17ko[子_in_9] = NormalizeDouble(子_do_3,4);
}
}
//CalcFibo <<==
//---------- ---------- ---------- ----------
void DrawVerticalLine( string 木_0,int 木_1,color 木_2)
{
if ( ObjectFind(木_0) == -1 )
{
ObjectCreate(木_0,OBJ_VLINE,0,Time[木_1],0.0,0,0.0,0,0.0);
ObjectSet(木_0,OBJPROP_COLOR,木_2);
ObjectSet(木_0,OBJPROP_STYLE,1.0);
ObjectSet(木_0,OBJPROP_WIDTH,1.0);
WindowRedraw();
return;
}
ObjectDelete(木_0);
ObjectCreate(木_0,OBJ_VLINE,0,Time[木_1],0.0,0,0.0,0,0.0);
ObjectSet(木_0,OBJPROP_COLOR,木_2);
ObjectSet(木_0,OBJPROP_STYLE,1.0);
ObjectSet(木_0,OBJPROP_WIDTH,1.0);
WindowRedraw();
}
//DrawVerticalLine <<==
//---------- ---------- ---------- ----------
double FindLastBuyPrice_Hilo()
{
double 子_do_1;
int 子_in_2;
double 子_do_3;
int 子_in_4;
//----- -----
子_in_2 = 0 ;
子_do_3 = 0.0 ;
子_in_4 = 0 ;
for (总_in_24=OrdersTotal() - 1 ; 总_in_24 >= 0 ; 总_in_24=总_in_24 - 1)
{
if ( !(OrderSelect(总_in_24,SELECT_BY_POS,MODE_TRADES)) || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderType() != 0 ) continue;
子_in_2 = OrderTicket() ;
if ( 子_in_2 <= 子_in_4 ) continue;
子_do_1 = OrderOpenPrice() ;
子_do_3 = 子_do_1 ;
子_in_4 = 子_in_2 ;
}
return(子_do_1);
}
//FindLastBuyPrice_Hilo <<==
//---------- ---------- ---------- ----------
double FindLastSellPrice_Hilo()
{
double 子_do_1;
int 子_in_2;
double 子_do_3;
int 子_in_4;
//----- -----
子_in_2 = 0 ;
子_do_3 = 0.0 ;
子_in_4 = 0 ;
for (总_in_24=OrdersTotal() - 1 ; 总_in_24 >= 0 ; 总_in_24=总_in_24 - 1)
{
if ( !(OrderSelect(总_in_24,SELECT_BY_POS,MODE_TRADES)) || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderType() != 1 ) continue;
子_in_2 = OrderTicket() ;
if ( 子_in_2 <= 子_in_4 ) continue;
子_do_1 = OrderOpenPrice() ;
子_do_3 = 子_do_1 ;
子_in_4 = 子_in_2 ;
}
return(子_do_1);
}
//FindLastSellPrice_Hilo <<==
//---------- ---------- ---------- ----------
int CountTradesSell()
{
int 子_in_1;
int 子_in_2;
//----- -----
子_in_2 = 0 ;
子_in_1 = 0 ;
for (子_in_2 = OrdersTotal() - 1 ; 子_in_2 >= 0 ; 子_in_2 = 子_in_2 - 1)
{
if ( !(OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES)) || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderType() != 1 ) continue;
子_in_1 = 子_in_1 + 1;
}
return(子_in_1);
}
//CountTradesSell <<==
//---------- ---------- ---------- ----------
int CountTradesBuy()
{
int 子_in_1;
int 子_in_2;
//----- -----
子_in_2 = 0 ;
子_in_1 = 0 ;
for (子_in_2 = OrdersTotal() - 1 ; 子_in_2 >= 0 ; 子_in_2 = 子_in_2 - 1)
{
if ( !(OrderSelect(子_in_2,SELECT_BY_POS,MODE_TRADES)) || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber || OrderType() != 0 ) continue;
子_in_1 = 子_in_1 + 1;
}
return(子_in_1);
}
//CountTradesBuy <<==
//---------- ---------- ---------- ----------
double startBalanceD1()
{
double 子_do_1;
int 子_in_2;
datetime 子_da_3;
int 子_in_4;
double 子_do_5;
//----- -----
子_in_2 = OrdersHistoryTotal() ;
子_da_3 = iTime(NULL,1440,0) ;
for (子_in_4 = 子_in_2 ; 子_in_4 >= 0 ; 子_in_4 = 子_in_4 - 1)
{
if ( !(OrderSelect(子_in_4,SELECT_BY_POS,MODE_HISTORY)) || OrderCloseTime() < 子_da_3 ) continue;
子_do_1 = OrderProfit() + OrderCommission() + OrderSwap() + 子_do_1 ;
}
子_do_5 = NormalizeDouble(AccountBalance() - 子_do_1,2) ;
return(子_do_5);
}
//startBalanceD1 <<==
//---------- ---------- ---------- ----------
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/hangyejiadao_581/mql4.git
git@gitee.com:hangyejiadao_581/mql4.git
hangyejiadao_581
mql4
mql4
master

搜索帮助