论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:1644回复:0
草龙
注册时间2004-12-17
[MT4指标]EA系统AeronForexAutoTrader
楼主发表于:2014-01-10 08:12只看该作者倒序浏览
1楼 电梯直达
电梯直达
EA系统AeronForexAutoTrader 后期上跟踪图//+------------------------------------------------------------------+ //| AeronForexAutoTrader.mq4 | //| Aeron | //| http://www.aeroninfo.com | //+------------------------------------------------------------------+ #property copyright "Aeron" #property link "http://www.aeroninfo.com" extern string _____Important______="Do not modify any parameter"; extern string _____Important_____="all are very optimized"; extern string _____Important____="Please contact [email protected]"; extern string _____Important___="before any modification"; extern string ActivationKey="Mandatory for Real Accounts"; double forResetLoss; string body1; bool CloseAllTrade; extern double LossTolerance=20; double LossTolerance1=0; extern int RestartAfter_days=7; extern double ResetAfter_Loss=0.0; double closeDuration1=0; double closeDuration2=0; double LTprofit1=0;double LTprofit2=0; extern double First_Lots_Size=0.02; extern double Lots_Increment_Factor=2.667; extern double PositionsGap=150; extern double PositionsGap_Factor=1; extern int MaxTrades=3; extern double TakeProfit=19; extern double Stoploss=1000; extern bool Hedging=true; extern string OrderComments="AeronRobot_EURUSD-r9.06"; extern int MagicNumber1=82379; extern int MagicNumber2=72379; extern int MagicNumber3=62379; double LotIncre; bool AutoLots=false; double FreeMargin_for_AutoLots=1; double Lots=0.1; bool CheckFreeMargin=true; bool TrailSL=false; int TrailPips=12; int n1=1; int n2=1; int n3=1; int lotsdigit5=0; double iLots1, tLots1; double prcRequired; double mrgRequired; double db1; bool TradeSafe=true; bool ExtremeProtection=false; double PipsNext; double indMA, indENV1, indENV2, indENV11, indENV22, indIch; int MMType=1; bool CloseClose=false; bool AddAdd=true; int MagicNumber; double PriceTarget, StartEquity, BuyTarget, SellTarget; bool UseEquityStop=false; double TotalEquityRisk=20; double AveragePrice, SellLimit, BuyLimit; double LastBuyPrice, LastSellPrice, ClosePrice, Spread; double slip=3; double LotsDigits; datetime timeprev=0; datetime timeprev1=0; datetime expiration; int flag; string EAName="AeronForexAutoTrader"; int NumOfTrades=0; bool TradeNow=false; bool LongTrade=false; bool ShortTrade=false; bool flagTrade; int ticket; double iLots; int cnt=0, total; double Stopper=0; bool FreshOrdP=false; int init() { Spread=MarketInfo(Symbol(), MODE_SPREAD)*Point; return(0); } int deinit() { return(0); } int start() { ////////////// int int6; int timeMinimum=2147483647; double ttlProfit=0.0; for(int6=0; int6<=OrdersTotal()-1;int6++) { OrderSelect(int6,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1 || OrderMagicNumber()==MagicNumber2 || OrderMagicNumber()==MagicNumber3)) { ttlProfit=ttlProfit+OrderProfit(); if(OrderOpenTime()=0;int4--) { OrderSelect(int4,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1 || OrderMagicNumber()==MagicNumber2 || OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_SELL) { body1="Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Ask,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),2,CLR_NONE)==true) SendMail("Aeron: Sell order closed",body1); } if(OrderType()==OP_BUY ) { body1="Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Bid,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),2,CLR_NONE)==true) SendMail("Aeron: Buy order closed",body1); } } } } ////////////// if(LossTolerance==0.0) { LossTolerance1=AccountBalance() * 10 / 100; } else { LossTolerance1=AccountBalance() * LossTolerance / 100; } //if(closeDuration1==0) { LTprofit1=0; LTprofit2=0; int LTint1; for(LTint1=0;LTint1<=OrdersTotal()-1;LTint1++) { OrderSelect(LTint1,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_BUY) { LTprofit1 = LTprofit1 + OrderProfit(); } } } if(LTprofit1 * (-1) > LossTolerance1) { for(LTint1=0;LTint1<=OrdersTotal()-1;LTint1++) { OrderSelect(LTint1,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_BUY) { /////////////// } } } closeDuration1=TimeCurrent() + (60*60*24*RestartAfter_days); } if(LTprofit1 > LossTolerance1) { for(LTint1=OrdersTotal()-1;LTint1>=0;LTint1--) { OrderSelect(LTint1,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber1||OrderMagicNumber()!=MagicNumber2)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_BUY) { body1="Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Bid,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),2,CLR_NONE)==true) SendMail("Aeron: Buy order closed",body1); } } } //closeDuration1=TimeCurrent() + (60*60*24*7*2); } } LTprofit1=0; //if(closeDuration2==0) { int LTint2; for(LTint2=0;LTint2<=OrdersTotal()-1;LTint2++) { OrderSelect(LTint2,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber1||OrderMagicNumber()!=MagicNumber2)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_SELL) { LTprofit2 = LTprofit2 + OrderProfit(); } } } //Alert(LTprofit2); //Alert(LossTolerance); if(LTprofit2 * (-1) > LossTolerance1) { for(LTint2=0;LTint2<=OrdersTotal()-1;LTint2++) { OrderSelect(LTint2,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber1||OrderMagicNumber()!=MagicNumber2)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_SELL) { ///////////// } } } closeDuration2=TimeCurrent() + (60*60*24*RestartAfter_days); } if(LTprofit2 > LossTolerance1) { for(LTint2=OrdersTotal()-1;LTint2>=0;LTint2--) { OrderSelect(LTint2,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber1||OrderMagicNumber()!=MagicNumber2)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_SELL) { body1="Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Ask,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),2,CLR_NONE)==true) SendMail("Aeron: Sell order closed",body1); } } } //closeDuration2=TimeCurrent() + (60*60*24*7*2); } } LTprofit2=0; if (First_Lots_Size > 0 && First_Lots_Size <= MarketInfo(Symbol(),MODE_MINLOT)) { First_Lots_Size=MarketInfo(Symbol(),MODE_MINLOT) * 2; } mrgRequired=MarketInfo(Symbol(),MODE_MARGINREQUIRED) * MarketInfo(Symbol(),MODE_MINLOT); if (First_Lots_Size==0) { db1=(MathFloor(AccountFreeMargin() / (mrgRequired * 100/3))) * MarketInfo(Symbol(),MODE_MINLOT) * 100/AccountLeverage(); if(db1 5) { First_Lots_Size=5 * 2*MarketInfo(Symbol(),MODE_MINLOT); } else { First_Lots_Size=MathRound(First_Lots_Size/(2*MarketInfo(Symbol(),MODE_MINLOT))) * 2*MarketInfo(Symbol(),MODE_MINLOT); } } LotIncre=Lots_Increment_Factor; Lots=First_Lots_Size; if (MarketInfo(Symbol(),MODE_LOTSTEP)==0.10) { LotsDigits=1; } if (MarketInfo(Symbol(),MODE_LOTSTEP)==0.01) { LotsDigits=2; } if (MarketInfo(Symbol(),MODE_LOTSTEP)==0.05) { LotsDigits=1; lotsdigit5=1; } int dy, mth, yr; bool licflag; licflag=false; dy=30; mth=6; yr=2020; if (Year() < yr) { licflag=true; } if (Year() == yr && Month() < mth) { licflag=true; } if (Year() == yr && Month() == mth && Day() <= dy) { licflag=true; } if (licflag == true) { if(Year()>1999) { int bb; for(bb=0;bb<=OrdersTotal()-1;bb++) { OrderSelect(bb,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber1||OrderMagicNumber()!=MagicNumber2)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber2)) { if(OrderType()==OP_BUY) { if (OrderOpenPrice()-Bid>Stoploss*0.0001) { body1="Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Bid,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),2,CLR_NONE)==true) SendMail("Aeron: Buy order closed",body1); } } if(OrderType()==OP_SELL) { if (Ask-OrderOpenPrice()>Stoploss*0.0001) { body1="Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Ask,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),2,CLR_NONE)==true) SendMail("Aeron: Sell order closed",body1); } } } } if (TrailSL==true) { int zz; if (CountTradesB()==1) { //int zz; for(zz=0;zz<=OrdersTotal()-1;zz++) { OrderSelect(zz,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=12379)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_BUY) { if (Bid-OrderOpenPrice() >= TrailPips*0.0001 && OrderStopLoss() < Bid-TrailPips*0.0001-0.0002) { if(OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailPips*0.0001+0.0002,Bid-TrailPips*0.0001+0.0002+0.0020,0,Yellow)==true) if(OrderSelect(OrderTicket(), SELECT_BY_TICKET)==true) SendMail("Aeron: Buy order modified", "Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder Modification time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nStoploss: " + OrderStopLoss() + "\nTakeprofit: " + OrderTakeProfit() + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber()); } } } } } if (CountTradesS()==1) { //int zz; for(zz=0;zz<=OrdersTotal()-1;zz++) { OrderSelect(zz,SELECT_BY_POS,MODE_TRADES); //if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=12379)continue; if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber2||OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_SELL) { if (OrderOpenPrice()-Ask >= TrailPips*0.0001 && OrderStopLoss() > Ask+TrailPips*0.0001-0.0002) { if(OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailPips*0.0001-0.0002,Ask+TrailPips*0.0001-0.0002-0.0020,0,Yellow)==true) if(OrderSelect(OrderTicket(), SELECT_BY_TICKET)==true && OrderType()==OP_SELL) SendMail("Aeron: Sell order modified", "Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder Modification time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nStoploss: " + OrderStopLoss() + "\nTakeprofit: " + OrderTakeProfit() + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber()); } } } } } } int ppp=Period(); if(Hedging==true) { { if (TradeSafe==true) { MagicNumber=MagicNumber1; } else { MagicNumber=12378; } if (ppp==1 && "EURUSD"==StringSubstr(Symbol(),0,6)) { double ActivKey, calcKey, len, i, j, k; string ii; if (IsDemo()==true) { /*code deleted*/ } else { /*code deleted*/ } if ((IsDemo()==false && ActivKey==calcKey) || IsDemo()==true) { string sComm; sComm="Aeron Forex Auto Trader by AERON"; sComm=sComm+"\nBroker: " + AccountCompany(); if (IsDemo()==true) { sComm=sComm+"\nDemo Account: " + AccountNumber(); } else { sComm=sComm+"\nReal Account: " + AccountNumber(); } flagTrade=false; double LBLots; double LSLots; int ccc; if (TradeSafe==true) { FreshOrdP=false; int m1; if (CountTradesB()==0) { n1=1; } if (CountTradesB()>1) { for(m1=0;m1<=OrdersTotal()-1;m1++) { OrderSelect(m1,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_BUY) { if (((TimeCurrent()-OrderOpenTime()) > 4*60*60*n1 && (TimeCurrent()-OrderOpenTime()) < 24*60*60) || (TimeCurrent()-OrderOpenTime()) > 72*60*60) { n1=n1+1; if (OrderLots()>=First_Lots_Size) { body1="Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + First_Lots_Size + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Bid,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),First_Lots_Size,NormalizeDouble(Bid,Digits),2)==true) SendMail("Aeron: Buy order closed",body1); } /////////////////// break; } if (TimeCurrent()-OrderOpenTime() > 60) { int m2; for(m2=OrdersTotal()-1;m2>=0;m2--) { OrderSelect(m2,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_BUY && Bid-OrderOpenPrice() > TakeProfit*0.0001) { body1="Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Bid,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),2)==true) SendMail("Aeron: Buy order closed",body1); FreshOrdP=true; break; } } } } } } } } if (AccountLeverage() != 999) { prcRequired=AccountFreeMargin()*(FreeMargin_for_AutoLots/100); mrgRequired=MarketInfo(Symbol(),MODE_MARGINREQUIRED) * MarketInfo(Symbol(),MODE_MINLOT); if(AutoLots==false) { Lots=First_Lots_Size; if (CountTradesS()>1) { if (CountTradesB()==0) { int temp1; for(temp1=OrdersTotal()-1;temp1>=0;temp1--) { OrderSelect(temp1,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber2||OrderMagicNumber()==MagicNumber3)) { if (OrderType()==OP_SELL) { Lots=CountTradesS()*OrderLots(); break; } } } } } } int h1; if ( mrgRequired <= prcRequired ) { //sComm=sComm+"\nYou are doing Safe Trading"; flagTrade=true; h1=mrgRequired * (100/FreeMargin_for_AutoLots) * AccountLeverage()/100; sComm=sComm+"\nFree Margin should be atleast: " + DoubleToStr(h1*0.75,0) + " [recommended]"; forResetLoss=h1*0.75; } else { h1=mrgRequired * (100/FreeMargin_for_AutoLots) * AccountLeverage()/100; sComm=sComm+"\nFree Margin should be atleast: " + DoubleToStr(h1*0.75,0) + " [recommended]"; forResetLoss=h1*0.75; } } else { Lots=0; //Alert("Account Leverage should be 100 or LESS\nYour Account Leverage is: ", AccountLeverage()); } } else { //sComm=sComm+"\nYou are doing Trading at Your Own Risk"; } int tp; tp=TakeProfit; //sComm=sComm+"\nTake Profit: " + tp; Comment(sComm); if(timeprev==Time[0]) { return(0); } timeprev=Time[0]; double CurrentPairProfit=CalculateProfit(); total=CountTrades(); PipsNext=PositionsGap; if(total>=1) { PipsNext=PositionsGap * MathPow(PositionsGap_Factor,(total-1)); } if (total==0) { flag=0; } double LastBuyLots; double LastSellLots; for(cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_BUY) { LongTrade=true; ShortTrade=false; LastBuyLots=OrderLots(); break; } if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_SELL) { LongTrade=false; ShortTrade=true; LastSellLots=OrderLots(); break; } } if(total>0 && total<=MaxTrades) { RefreshRates(); LastBuyPrice=LastBuyPrice(); LastSellPrice=LastSellPrice(); if (ExtremeProtection == false) { //PipsNext=75; } else { PipsNext=75*total*2.5; } if(LongTrade && (LastBuyPrice - Ask)>=(PipsNext*0.0001)) { TradeNow=true; } if(ShortTrade && (Bid - LastSellPrice)>=(PipsNext*0.0001)) { TradeNow=true; } } if (total < 1) { ShortTrade=false; LongTrade=false; TradeNow=true; StartEquity=AccountEquity(); } if (TradeNow) { LastBuyPrice=LastBuyPrice(); LastSellPrice=LastSellPrice(); if(ShortTrade) { if(CloseClose) { fOrderCloseMarket(false,true); iLots=NormalizeDouble(LotIncre*LastSellLots,LotsDigits); } else { iLots=fGetLots(OP_SELL); } if(AddAdd) { NumOfTrades=total; if(iLots>0) { RefreshRates(); //ticket=OpenPendingOrder(OP_SELL,iLots,Bid,slip,Ask,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,HotPink); if(ticket<0){Print("Error: ",GetLastError()); return(0);} LastSellPrice=LastSellPrice(); TradeNow=false; FreshOrdP=true; } } } else if (LongTrade) { if(CloseClose) { fOrderCloseMarket(true,false); iLots=NormalizeDouble(LotIncre*LastBuyLots,LotsDigits); } else { iLots=fGetLots(OP_BUY); } if(AddAdd) { NumOfTrades=total; if(iLots>0) { ticket=OpenPendingOrder(OP_BUY,iLots,Ask,slip,Bid,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,Lime); if(ticket<0) {Print("Error: ",GetLastError()); return(0);} LastBuyPrice=LastBuyPrice(); TradeNow=false; FreshOrdP=true; } } } } if (TradeNow && total<1) { double PrevCl=iClose(Symbol(),0,2); double CurrCl=iClose(Symbol(),0,1); SellLimit=Bid; BuyLimit=Ask; if(!ShortTrade && !LongTrade) { NumOfTrades=total; if(PrevCl > CurrCl) { iLots=fGetLots(OP_SELL); if(iLots>0) { //ticket=OpenPendingOrder(OP_SELL,iLots,SellLimit,slip,SellLimit,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,HotPink); if(ticket<0){Print(iLots,"Error: ",GetLastError()); return(0); } LastBuyPrice=LastBuyPrice(); FreshOrdP=true; } } else { iLots=fGetLots(OP_BUY); if(iLots>0) { ticket=OpenPendingOrder(OP_BUY,iLots,BuyLimit,slip,BuyLimit,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,Lime); if(ticket<0){Print(iLots,"Error: ",GetLastError()); return(0);} LastSellPrice=LastSellPrice(); FreshOrdP=true; } } } TradeNow=false; } total=CountTrades(); AveragePrice=0; double Count=0; for(cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_BUY || OrderType()==OP_SELL) { AveragePrice=AveragePrice+OrderOpenPrice()*OrderLots(); Count=Count + OrderLots(); } } if(total > 0) AveragePrice=NormalizeDouble(AveragePrice/Count, Digits); if(FreshOrdP) for(cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_BUY) { PriceTarget=AveragePrice+(TakeProfit*0.0001); BuyTarget=PriceTarget; Stopper=AveragePrice-(Stoploss*Point); flag=1; } if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_SELL) { PriceTarget=AveragePrice-(TakeProfit*0.0001); SellTarget=PriceTarget; Stopper=AveragePrice+(Stoploss*Point); flag=1; } } if(FreshOrdP) if(flag==1) { for(cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) { if(OrderStopLoss()>0) { if(OrderModify(OrderTicket(),AveragePrice,OrderStopLoss(),PriceTarget,0,Yellow)==true) { if(OrderSelect(OrderTicket(), SELECT_BY_TICKET)==true && OrderType()==OP_BUY) SendMail("Aeron: Buy order modified", "Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder Modification time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nStoploss: " + OrderStopLoss() + "\nTakeprofit: " + OrderTakeProfit() + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber()); if(OrderSelect(OrderTicket(), SELECT_BY_TICKET)==true && OrderType()==OP_SELL) SendMail("Aeron: Sell order modified", "Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder Modification time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nStoploss: " + OrderStopLoss() + "\nTakeprofit: " + OrderTakeProfit() + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber()); } } else { if(OrderModify(OrderTicket(),AveragePrice,OrderOpenPrice()-Stoploss*0.0001,PriceTarget,0,Yellow)==true) { if(OrderSelect(OrderTicket(), SELECT_BY_TICKET)==true && OrderType()==OP_BUY) SendMail("Aeron: Buy order modified", "Order Type: BUY\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder Modification time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nStoploss: " + OrderStopLoss() + "\nTakeprofit: " + OrderTakeProfit() + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber()); if(OrderSelect(OrderTicket(), SELECT_BY_TICKET)==true && OrderType()==OP_SELL) SendMail("Aeron: Sell order modified", "Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder Modification time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nStoploss: " + OrderStopLoss() + "\nTakeprofit: " + OrderTakeProfit() + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber()); } } } FreshOrdP=false; } } } else { Alert("Please Activate your copy\nof AeronForexAutoTrader"); } } else { Alert("Works only on EURUSD 1 Minute Chart", "\nbut You are trying to use it on ", Symbol(), " ", Period()); } } { if (TradeSafe==true) { TradeNow=false; MagicNumber=MagicNumber2; } else { MagicNumber=12378; } //int ppp=Period(); if (ppp==1 && "EURUSD"==StringSubstr(Symbol(),0,6)) { //double ActivKey, calcKey, len, i, j, k; ActivKey=0; calcKey=0; len=0; i=0; j=0; k=0; //string ii; if (IsDemo()==true) { /*code deleted*/ } else { /*code deleted*/ } if ((IsDemo()==false && ActivKey==calcKey) || IsDemo()==true) { //string sComm; sComm="Aeron Forex Auto Trader by AERON"; sComm=sComm+"\nBroker: " + AccountCompany(); if (IsDemo()==true) { sComm=sComm+"\nDemo Account: " + AccountNumber(); } else { sComm=sComm+"\nReal Account: " + AccountNumber(); } //////////////////// flagTrade=false; //double LBLots; //double LSLots; //int ccc; LBLots=0; LSLots=0; ccc=0; if (TradeSafe==true) { FreshOrdP=false; int m3; if (CountTradesS()==0) { n2=1; } if (CountTradesS()>1) { for(m3=0;m3<=OrdersTotal()-1;m3++) { OrderSelect(m3,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber2||OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_SELL) { if (((TimeCurrent()-OrderOpenTime()) > 4*60*60*n2 && (TimeCurrent()-OrderOpenTime()) < 24*60*60) || (TimeCurrent()-OrderOpenTime()) > 72*60*60) { n2=n2+1; if (OrderLots()>=First_Lots_Size) { body1="Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + First_Lots_Size + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Ask,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),First_Lots_Size,NormalizeDouble(Ask,Digits),2)==true) SendMail("Aeron: Sell order closed",body1); } ///////////////// break; } if (TimeCurrent()-OrderOpenTime() > 60) { int m4; for(m4=OrdersTotal()-1;m4>=0;m4--) { OrderSelect(m4,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber3||OrderMagicNumber()==MagicNumber3)) { if(OrderType()==OP_SELL && OrderOpenPrice()-Ask > TakeProfit*0.0001) { body1="Order Type: SELL\nCurrency Symbol: " + Symbol() + "\nOrder Ticket: " + OrderTicket() + "\nOrder open time: " + TimeToStr(OrderOpenTime(),TIME_DATE|TIME_SECONDS) + "\nLots Size: " + OrderLots() + "\nOrder Open Price: " + OrderOpenPrice() + "\nOrder close time: " + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + "\nOrder close price: " + NormalizeDouble(Ask,Digits) + "\nOrder Comment: " + OrderComment() + "\nOrder Magic Number: " + OrderMagicNumber(); if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),2)==true) SendMail("Aeron: Sell order closed",body1); FreshOrdP=true; break; } } } } } } } } if (AccountLeverage() != 999) { prcRequired=AccountFreeMargin()*(FreeMargin_for_AutoLots/100); mrgRequired=MarketInfo(Symbol(),MODE_MARGINREQUIRED) * MarketInfo(Symbol(),MODE_MINLOT); if(AutoLots==false) { Lots=First_Lots_Size; if (CountTradesB()>1) { if (CountTradesS()==0) { int temp2; for(temp2=OrdersTotal()-1;temp2>=0;temp2--) { OrderSelect(temp2,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&(OrderMagicNumber()==MagicNumber1||OrderMagicNumber()==MagicNumber3)) { if (OrderType()==OP_BUY) { Lots=CountTradesB()*OrderLots(); break; } } } } } } int h2; if ( mrgRequired <= prcRequired ) { //sComm=sComm+"\nYou are doing Safe Trading"; flagTrade=true; h2=mrgRequired * (100/FreeMargin_for_AutoLots) * AccountLeverage()/100; sComm=sComm+"\nFree Margin should be atleast: " + DoubleToStr(h2*0.75,0) + " [recommended]"; forResetLoss=h2*0.75; } else { h2=mrgRequired * (100/FreeMargin_for_AutoLots) * AccountLeverage()/100; sComm=sComm+"\nFree Margin should be atleast: " + DoubleToStr(h2*0.75,0) + " [recommended]"; forResetLoss=h2*0.75; } } else { Lots=0; //Alert("Account Leverage should be 100 or LESS\nYour Account Leverage is: ", AccountLeverage()); } } else { //sComm=sComm+"\nYou are doing Trading at Your Own Risk"; } tp=TakeProfit; //sComm=sComm+"\nTake Profit: " + tp; Comment(sComm); if(timeprev1==Time[0]) { return(0); } timeprev1=Time[0]; CurrentPairProfit=CalculateProfit(); total=CountTrades(); PipsNext=PositionsGap; if(total>=1) { PipsNext=PositionsGap * MathPow(PositionsGap_Factor,(total-1)); } if (total==0) { flag=0; } //double LastBuyLots; //double LastSellLots; LastBuyLots=0; LastSellLots=0; for(cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)continue; if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_BUY) { LongTrade=true; ShortTrade=false; LastBuyLots=OrderLots(); break; } if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber) if(OrderType()==OP_SELL) { LongTrade=false; ShortTrade=true; LastSellLots=OrderLots(); break; } } if(total>0 && total<=MaxTrades) { RefreshRates(); LastBuyPrice=LastBuyPrice(); LastSellPrice=LastSellPrice(); if (ExtremePr
TK29帖子1楼右侧xm竖版广告90-240
个性签名

阅尽天下指标
搬砖开始,始于2014

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]