panamamike Posted August 12, 2011 Report Share Posted August 12, 2011 Please excuse my ignorance. I have an EA that I had created a few years ago. It has coded in so as not to trade on Fridays. IT is not a user defined option to change. How do I remove this restriction? I know where the coding routine is, but I do not know how to deactivate that part. Quote Link to comment Share on other sites More sharing options...
Cyrillic Posted August 12, 2011 Report Share Posted August 12, 2011 Comment it out and remove the place where it is called in your script. Just post the code here... Quote [spoiler:26ukmy10]Never trust, never fear, never beg[/spoiler:26ukmy10] Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 How do I attach the code here? Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 I am not permitted to post attachments. Quote Link to comment Share on other sites More sharing options...
retireme Posted August 12, 2011 Report Share Posted August 12, 2011 I am not permitted to post attachments. Open the EA in Meta Editor, click inside the EA anywhere, press CTRL A, CTRL C, then open the reply message to this topic, press CTRL V, click on post reply! Rgds RM Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 The message is too long when I did that. Quote Link to comment Share on other sites More sharing options...
retireme Posted August 12, 2011 Report Share Posted August 12, 2011 The message is too long when I did that. So go to the top of the EA, highlight the first half, send... then the second half and send. RM Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 ----------------------------+ //| TheMadHATter.mq4 | //| Copyright © 2009, MadHatter | //| [email protected] | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, TheMadHATter" #property link "[email protected]" #include <stderror.mqh> #include <stdlib.mqh> //User Configurable Variables extern double dLots=1.0; extern double dStopLoss=50; extern double dTakeProfit=50; extern int iSlippage=3; extern int iMaxTrades=1; extern int iMagicNumber=1000; extern bool FractionalPips = true; extern int iStartTime = 7; extern int iEndTime = 23; //variable for calculating stop/loss order modification int pip; //BB indicator configurable parameters //extern int BB_Length=20; // Heiken Ashi Period //extern int BB_Deviation=2; // Deviation //extern double BB_MoneyRisk=1.00; // Offset Factor //extern int BB_Signal=2; // Display signals mode: 1-Signals & Stops; 0-only Stops; 2-only Signals; //extern int BB_Line=1; // Display line mode: 0-no,1-yes //extern int BB_Nbars=1000; //Heiken Ashi indicator configurable parameters extern int MaMetod = 2; extern int MaPeriod = 6; extern int MaMetod2 = 3; extern int MaPeriod2 = 2; extern bool POP_UP_Box_Alert = false; extern bool Sound_Alert = false; //misc processing and tracking variables bool bNewBar; double BB0; double BB1; string strTrend; string strShift; int iTrendShifts; int iAttempts; bool bInit; int currDay; // Trade Signal Variables int iTradeSignal=0; int iOpenBuySignal=100; int iCloseBuySignal=-200; int iOpenSellSignal=300; int iCloseSellSignal=-400; int iNoSignal=-1; // Open Trade Information Variables int iLastTradeType; int iTotalTrades; double dTotalTradeLots; double dTotalTradeSwap; int iTotalBuyTrades; int iTotalSellTrades; double dLastTradeOpenPrice; int iLastTradeOpenTime; double dLastTradeStopLoss; double dLastTradeTakeProfit; double dLastTradeType; double dLastTradeTicket; string strLastTradeSymbol; string strLastTradeComment; double dTotalOpenProfit; int iTotalSelectedTrades; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- iLastTradeType=-1; strTrend="neutral"; strShift="changed"; iTrendShifts=0; bInit=true; bNewBar=false; if(FractionalPips==true) { pip=10; } else { pip =1; } //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (bInit==false) { bNewBar=fnNewBar(); if (bNewBar==true) { datetime currTime; int currHour; currTime=TimeCurrent(); currHour=TimeHour(currTime); currDay=TimeDayOfWeek(currTime); if (currDay==5) { Print ("No trades on Friday."); } else { if (currHour > (iStartTime - 1) && currHour < iEndTime ) { //BB0=iCustom(NULL,Period(),"bbands-stops",BB_Length,BB_Deviation,BB_MoneyRisk,BB_Signal,BB_Line,BB_Nbars,2,1); //up trend //BB1=iCustom(NULL,Period(),"bbands-stops",BB_Length,BB_Deviation,BB_MoneyRisk,BB_Signal,BB_Line,BB_Nbars,3,1); //down trend BB0=iCustom(Symbol(),Period(),"Heiken_Ashi_Smoothed_Alert_Bar1",MaMetod,MaPeriod,MaMetod2,MaPeriod2,POP_UP_Box_Alert,Sound_Alert,0,0); //up trend BB1=iCustom(Symbol(),Period(),"Heiken_Ashi_Smoothed_Alert_Bar1",MaMetod,MaPeriod,MaMetod2,MaPeriod2,POP_UP_Box_Alert,Sound_Alert,1,0); //down trend Print(strTrend + " " + iTrendShifts); fnGetTrend(); fnGetOpenTradeInfo(); if (strShift=="changed" && iTrendShifts > 1) { if (strTrend=="up") { if (iLastTradeType==-1) { iTradeSignal = iOpenBuySignal; Print ("Open Buy Signal " + Close[1] + " " + strTrend + " " + BB0 + " " + BB1); fnOrder(); } if (iLastTradeType==OP_SELL) { iTradeSignal = iCloseSellSignal; Print ("Close Sell Signal " + Close[1] + " " + strTrend + " " + BB0 + " " + BB1); fnOrder(); iTradeSignal = iOpenBuySignal; Print ("Open Buy Signal " + Close[1] + " " + strTrend + " " + BB0 + " " + BB1); fnOrder(); } }//end if trend up if (strTrend=="down") { if (iLastTradeType==-1) { iTradeSignal = iOpenSellSignal; Print ("Open Sell Signal " + Close[1] + " " + strTrend + " " + BB0 + " " + BB1); fnOrder(); } if (iLastTradeType==OP_BUY) { iTradeSignal = iCloseBuySignal; Print ("Close Buy Signal " + Close[1] + " " + strTrend + " " + BB0 + " " + BB1); fnOrder(); iTradeSignal = iOpenSellSignal; Print ("Open Sell Signal " + Close[1] + " " + strTrend + " " + BB0 + " " + BB1); fnOrder(); } }//end if trend down strShift="unchanged"; }//end if trend shifted and eligible for trade } else { //Print("No trades allowed."); }//end if out of time frame } // end if day of week is Friday } //end if new bar } else { bInit=false; Print ("Initialized and didn't perform any logic."); Print ("Initialization Open1: " + Open[1] + " Open2: " + Open[2] + " Open3: " + Open[3] + " Open4: " + Open[4] + " Open5: " + Open[5] ); }//end if initialized is true //---- return(0); } //+------------------------------------------------------------------+ double dOpen1; double dOpen2; double dOpen3; double dOpen4; double dOpen5; bool fnNewBar() { if (Open[1]!=dOpen1 || Open[2]!=dOpen2 || Open[3]!=dOpen3 || Open[4]!=dOpen4 || Open[5]!=dOpen5) { Print ("New Bar Open1: " + Open[1] + "/" + dOpen1 + " Open2: " + Open[2] + "/" + dOpen2 + " Open3: " + Open[3] + "/" + dOpen3 + " Open4: " + Open[4] + "/" + dOpen4 + " Open5: " + Open[5] + "/" + dOpen5 ); dOpen1=Open[1]; dOpen2=Open[2]; dOpen3=Open[3]; dOpen4=Open[4]; dOpen5=Open[5]; return(true); } else { return(false); } } Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 /Get Heike Ashi trend void fnGetTrend() { if (BB1 > BB0 && (strTrend=="neutral" || strTrend=="down")) { strTrend="up"; Print ("Trend shift up BB0 " + BB0 + " BB1 " + BB1); strShift="changed"; iTrendShifts++; } if (BB0 > BB1 && (strTrend=="neutral" || strTrend=="up")) { strTrend="down"; Print ("Trend shift down BB1 " + BB1 + " BB0 " + BB0); strShift="changed"; iTrendShifts++; } //return; } void fnGetOpenTradeInfo() { dTotalOpenProfit=0; dTotalTradeLots=0; iTotalBuyTrades=0; iTotalSellTrades=0; dTotalTradeSwap=0; iTotalSelectedTrades=0; iTotalTrades=OrdersTotal(); if (iTotalTrades==0) { iLastTradeType=-1; } for(int pos=0;pos<iTotalTrades;pos++) { if(OrderSelect(pos,SELECT_BY_POS)==false) continue; if( (( OrderSymbol() == Symbol() ) ) && (( OrderMagicNumber() == iMagicNumber ) ) ) { iTotalSelectedTrades++; dTotalOpenProfit += OrderProfit(); dTotalTradeSwap += OrderSwap(); dTotalTradeLots += OrderLots(); if( OrderType() == OP_BUY ) { iTotalBuyTrades++; iLastTradeType = OP_BUY; } if( OrderType() == OP_SELL ) { iTotalSellTrades++; iLastTradeType = OP_SELL; } if ( OrderType() != OP_SELL && OrderType() != OP_BUY) { iLastTradeType = -1; } } } } void fnOrder() { int iOrderOpenStatus; string strErrorMessage; int iErrorNumber; bool bOrderCloseStatus; bool bOrderModifyStatus; if( (iTradeSignal == iOpenBuySignal) && (iMaxTrades > iTotalSelectedTrades) ) { RefreshRates(); double dBuyStopLoss = (Ask-(dStopLoss*(Point*pip))); double dBuyTakeProfit = (Ask+(dTakeProfit*(Point*pip))); Print ("order params: " + Ask); //modified 20090504 //iOrderOpenStatus = OrderSend(Symbol(),OP_BUY,dLots,Ask,iSlippage,dBuyStopLoss,dBuyTakeProfit,"BBTrendShift_Buy_"+Symbol()+"_"+Period(),iMagicNumber,0,White); iOrderOpenStatus = OrderSend(Symbol(),OP_BUY,dLots,Ask,0,0,0,"HeikenAshiTrend_Buy_"+Symbol()+"_"+Period(),iMagicNumber,0,White); Print ("Buy/Long Order #: " + iOrderOpenStatus); if( iOrderOpenStatus < 0 ) { iErrorNumber = GetLastError(); strErrorMessage = ErrorDescription(iErrorNumber); Alert( "OrderSend Failed: ", strErrorMessage ); iAttempts=0; while (iOrderOpenStatus < 0) { Alert("Retrying buy order... " + iAttempts); RefreshRates(); //modified 20090504 //iOrderOpenStatus = OrderSend(Symbol(),OP_BUY,dLots,Ask,iSlippage,dBuyStopLoss,dBuyTakeProfit,"BBTrendShift_Buy_"+Symbol()+"_"+Period(),iMagicNumber,0,White); iOrderOpenStatus = OrderSend(Symbol(),OP_BUY,dLots,Ask,0,0,0,"HeikenAshiTrend_Buy_"+Symbol()+"_"+Period(),iMagicNumber,0,White); iAttempts++; Sleep(35000); if (iAttempts==10) { iOrderOpenStatus=0; Alert("Buy order failed after 10 attempts"); } } } // end of if iOrderOpenStatus //modified 20090504 if ( iOrderOpenStatus > 0 ) { if ( OrderSelect(iOrderOpenStatus,SELECT_BY_TICKET)==true ) { RefreshRates(); dBuyStopLoss = (Ask-(dStopLoss*(Point*pip))); dBuyTakeProfit = (Ask+(dTakeProfit*(Point*pip))); bOrderModifyStatus = OrderModify(OrderTicket(),OrderOpenPrice(),dBuyStopLoss,dBuyTakeProfit, 0, Green); if( bOrderModifyStatus == false ) { iErrorNumber = GetLastError(); strErrorMessage = ErrorDescription(iErrorNumber); Alert( "Order Modify Failed: ", strErrorMessage ); iAttempts=0; while (bOrderModifyStatus == false) { Alert("Retrying order modify."); RefreshRates(); dBuyStopLoss = (Ask-(dStopLoss*(Point*pip))); dBuyTakeProfit = (Ask+(dTakeProfit*(Point*pip))); bOrderModifyStatus = OrderModify(OrderTicket(),OrderOpenPrice(),dBuyStopLoss,dBuyTakeProfit, 0, Green); iAttempts++; Sleep(35000); if (iAttempts==10) { bOrderModifyStatus=true; Alert("Modify order failed after 10 attempts"); } } return; } else { // end of if bOrderCloseStatus Print ("Buy order modified."); //iTotalSelectedTrades=0; } } } //end modified 20090504 return; } // end of if iOpenBuySignal if( (iTradeSignal == iOpenSellSignal) && (iMaxTrades > iTotalSelectedTrades) ) { RefreshRates(); double dSellStopLoss = Bid+(dStopLoss*(Point*pip)); double dSellTakeProfit = Bid-(dTakeProfit*(Point*pip)); Print ("order params: " + Bid); //modified 20090504 //iOrderOpenStatus = OrderSend(Symbol(),OP_SELL,dLots,Bid,iSlippage,dSellStopLoss,dSellTakeProfit,"BBTrendShift_Sell_"+Symbol()+"_"+Period(),iMagicNumber,0,Black); iOrderOpenStatus = OrderSend(Symbol(),OP_SELL,dLots,Bid,0,0,0,"HeikenAshiTrend_Sell_"+Symbol()+"_"+Period(),iMagicNumber,0,Black); Print ("Sell/Short Order #: " + iOrderOpenStatus); if( iOrderOpenStatus < 0 ) { iErrorNumber = GetLastError(); strErrorMessage = ErrorDescription(iErrorNumber); Alert( "OrderSend Failed: ", strErrorMessage ); iAttempts=0; while (iOrderOpenStatus < 0) { Alert("Retrying sell order... " + iAttempts); RefreshRates(); //modified 20090504 //iOrderOpenStatus = OrderSend(Symbol(),OP_SELL,dLots,Bid,iSlippage,dSellStopLoss,dSellTakeProfit,"BBTrendShift_Sell_"+Symbol()+"_"+Period(),iMagicNumber,0,Black); iOrderOpenStatus = OrderSend(Symbol(),OP_SELL,dLots,Bid,0,0,0,"HeikenAshiTrend_Sell_"+Symbol()+"_"+Period(),iMagicNumber,0,Black); iAttempts++; Sleep(35000); if (iAttempts==10) { iOrderOpenStatus=0; Alert("Sell order failed after 10 attempts"); } } } // end of if iOrderOpenStatus //modified 20090504 if ( iOrderOpenStatus > 0 ) { if ( OrderSelect(iOrderOpenStatus,SELECT_BY_TICKET)==true ) { RefreshRates(); dSellStopLoss = (Bid+(dStopLoss*(Point*pip))); dSellTakeProfit = (Bid-(dTakeProfit*(Point*pip))); bOrderModifyStatus = OrderModify(OrderTicket(),OrderOpenPrice(),dSellStopLoss,dSellTakeProfit, 0, Green); if( bOrderModifyStatus == false ) { iErrorNumber = GetLastError(); strErrorMessage = ErrorDescription(iErrorNumber); Alert( "Order Modify Failed: ", strErrorMessage ); iAttempts=0; while (bOrderModifyStatus == false) { Alert("Retrying order modify."); RefreshRates(); dSellStopLoss = (Bid+(dStopLoss*(Point*pip))); dSellTakeProfit = (Bid-(dTakeProfit*(Point*pip))); bOrderModifyStatus = OrderModify(OrderTicket(),OrderOpenPrice(),dSellStopLoss,dSellTakeProfit, 0, Green); iAttempts++; Sleep(35000); if (iAttempts==10) { bOrderModifyStatus=true; Alert("Modify order failed after 10 attempts"); } } return; } else { // end of if bOrderCloseStatus Print ("Sell order modified."); //iTotalSelectedTrades=0; } } } //end modified 20090504 return; } // end of if iOpenSellSignal if( (iTradeSignal == iCloseBuySignal) || (iTradeSignal == iCloseSellSignal) ) { iTotalTrades = OrdersTotal(); for(int pos=0;pos<iTotalTrades;pos++) { if(OrderSelect(pos,SELECT_BY_POS)==false) continue; if( (( OrderSymbol() == Symbol() ) ) && (( OrderMagicNumber() == iMagicNumber ) ) ) { if( OrderType() == OP_BUY ) { RefreshRates(); bOrderCloseStatus = OrderClose( OrderTicket(), OrderLots(), Bid, iSlippage, Red ); if( bOrderCloseStatus == false ) { iErrorNumber = GetLastError(); strErrorMessage = ErrorDescription(iErrorNumber); Alert( "OrderClose Failed: ", strErrorMessage ); iAttempts=0; while (bOrderCloseStatus == false) { Alert("Retrying order close."); RefreshRates(); bOrderCloseStatus = OrderClose( OrderTicket(), OrderLots(), Bid, iSlippage, Red ); iAttempts++; Sleep(35000); if (iAttempts==10) { bOrderCloseStatus=true; Alert("Close order failed after 10 attempts"); } } return; } else { // end of if bOrderCloseStatus Print ("Buy order closed."); iTotalSelectedTrades=0; } } // end of if OP_BUY if( OrderType() == OP_SELL ) { RefreshRates(); bOrderCloseStatus = OrderClose( OrderTicket(), OrderLots(), Ask, iSlippage, Red ); if( bOrderCloseStatus == false ) { iErrorNumber = GetLastError(); strErrorMessage = ErrorDescription(iErrorNumber); Alert( "OrderClose Failed: ", strErrorMessage ); iAttempts=0; while (bOrderCloseStatus == false) { Alert("Retrying order close."); RefreshRates(); bOrderCloseStatus = OrderClose( OrderTicket(), OrderLots(), Ask, iSlippage, Red ); iAttempts++; Sleep(35000); if (iAttempts==10) { bOrderCloseStatus=true; Alert("Close order failed after 10 attempts"); } } return; } else { // end of if bOrderCloseStatus Print ("Sell order closed."); iTotalSelectedTrades=0; } } // end of if OP_SELL } // end of if sysmbol } // end of OrderSelect for loop } // end of if iCloseBuySignal } // end of fnOrder Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 Thanks for the help retireme. I should have thought of that right away. It's been a long week. Quote Link to comment Share on other sites More sharing options...
retireme Posted August 12, 2011 Report Share Posted August 12, 2011 Thanks for the help retireme. I should have thought of that right away. It's been a long week. http://www.multiupload.com/LNANHORLUB EA posted RM panamamike and KENG 2 Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 EA posted RM Thanks very much! Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 RH, I compiled and loaded the new EA. It still says no trading friday. I will watch it and see if that is still the case. Quote Link to comment Share on other sites More sharing options...
retireme Posted August 12, 2011 Report Share Posted August 12, 2011 RH, I compiled and loaded the new EA. It still says no trading friday. I will watch it and see if that is still the case. Mate, I didn't even look at it yet... Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 12, 2011 Author Report Share Posted August 12, 2011 Sorry man.. I thought when you posted "EA here" that it was done. Quote Link to comment Share on other sites More sharing options...
⭐ musketeer Posted August 12, 2011 Report Share Posted August 12, 2011 try it http://mir.cr/3CVA0OGA panamamike and KENG 2 Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 13, 2011 Author Report Share Posted August 13, 2011 Thanks. It appears to work on a back test. I will have to see next Friday. Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 13, 2011 Author Report Share Posted August 13, 2011 I am working on a system that requires using a multi time frame version of the indicator that triggers the trades in this EA. It is a Heiken Ashi smoothed MTF. I trade a basket from an offline chart of 14 pairs. I also have a script of the order entry for this already. Would it be possible to make a new version based on this EA that changes the indicator to the MTF version and uses the basket order entry or would I need to make a new EA from scratch? I will post the indicator and entry script below. Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 13, 2011 Author Report Share Posted August 13, 2011 Heiken Ashi Smoothed MTF //+------------------------------------------------------------------+ //| Heiken Ashi Smoothed.mq4 | //+------------------------------------------------------------------+ //| mod by Raff | //+------------------------------------------------------------------+ //mod2008fxtsd mtf ki #property copyright "Copyright © 2006, Forex-TSD.com " #property link "http://www.forex-tsd.com/" #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Red #property indicator_color2 DodgerBlue #property indicator_color3 Red #property indicator_color4 DodgerBlue #property indicator_width1 1 #property indicator_width2 1 #property indicator_width3 3 #property indicator_width4 3 //---- parameters extern int MaPeriod = 6; extern int MaMetod = 2; extern int MaPeriod2 = 2; extern int MaMetod2 = 3; extern bool DrawHisto = true; extern int TimeFrame = 0; extern string note_TimeFrames = "M1;5,15,30,60H1;240H4;1440D1;10080W1;43200MN|0-CurrentTF"; extern string note_MA_Method = "SMA0 EMA1 SMMA2 LWMA3"; string IndicatorFileName; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; double ExtMapBuffer7[]; double ExtMapBuffer8[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //|------------------------------------------------------------------| int init() { //---- indicators IndicatorBuffers(8); if (DrawHisto) { SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexStyle(3,DRAW_HISTOGRAM); } else { SetIndexStyle(0,DRAW_SECTION); SetIndexStyle(1,DRAW_SECTION); SetIndexStyle(2,DRAW_SECTION); SetIndexStyle(3,DRAW_SECTION); } SetIndexBuffer(0, ExtMapBuffer1); SetIndexBuffer(1, ExtMapBuffer2); SetIndexBuffer(2, ExtMapBuffer3); SetIndexBuffer(3, ExtMapBuffer4); //---- SetIndexDrawBegin(0,5); //---- indicator buffers mapping SetIndexBuffer(4,ExtMapBuffer5); SetIndexBuffer(5,ExtMapBuffer6); SetIndexBuffer(6,ExtMapBuffer7); SetIndexBuffer(7,ExtMapBuffer8); //---- initialization done switch(TimeFrame) { case 1: string TimeFrameStr = "M1" ; break; case 5 : TimeFrameStr = "M5" ; break; case 15 : TimeFrameStr = "M15"; break; case 30 : TimeFrameStr = "M30"; break; case 60 : TimeFrameStr = "H1" ; break; case 240 : TimeFrameStr = "H4" ; break; case 1440 : TimeFrameStr = "D1" ; break; case 10080 : TimeFrameStr = "W1" ; break; case 43200 : TimeFrameStr = "MN1"; break; default : TimeFrameStr = "TF0"; } IndicatorShortName("HAMA ["+TimeFrameStr+"] (" +MaPeriod+","+MaMetod+" | "+MaPeriod2+","+MaMetod2+")"); IndicatorFileName = WindowExpertName(); if (TimeFrame < Period()) TimeFrame = Period(); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i,limit; if (counted_bars<0) return(-1); if (counted_bars>0) counted_bars--; limit=Bars-counted_bars; if (TimeFrame != Period()) { datetime TimeArray[]; limit = MathMax(limit,TimeFrame/Period()); ArrayCopySeries(TimeArray ,MODE_TIME ,NULL,TimeFrame); for(i=0,int y=0; i<limit; i++) { if(Time<TimeArray[y]) y++; ExtMapBuffer1 = iCustom(NULL,TimeFrame,IndicatorFileName, MaPeriod,MaMetod,MaPeriod2,MaMetod2,DrawHisto,0,y); ExtMapBuffer2 = iCustom(NULL,TimeFrame,IndicatorFileName, MaPeriod,MaMetod,MaPeriod2,MaMetod2,DrawHisto,1,y); ExtMapBuffer3 = iCustom(NULL,TimeFrame,IndicatorFileName, MaPeriod,MaMetod,MaPeriod2,MaMetod2,DrawHisto,2,y); ExtMapBuffer4 = iCustom(NULL,TimeFrame,IndicatorFileName, MaPeriod,MaMetod,MaPeriod2,MaMetod2,DrawHisto,3,y); } return(0); } double maOpen, maClose, maLow, maHigh; double haOpen, haHigh, haLow, haClose; limit= MathMax(limit,MaPeriod); limit= MathMax(limit,MaPeriod2); for (i=limit;i>=0;i--) { maOpen=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_OPEN,i); maClose=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_CLOSE,i); maLow=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_LOW,i); maHigh=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_HIGH,i); haOpen=(ExtMapBuffer5[i+1]+ExtMapBuffer6[i+1])/2; haClose=(maOpen+maHigh+maLow+maClose)/4; haHigh=MathMax(maHigh, MathMax(haOpen, haClose)); haLow=MathMin(maLow, MathMin(haOpen, haClose)); if (haOpen<haClose) { ExtMapBuffer7=haLow; ExtMapBuffer8=haHigh; } else { ExtMapBuffer7=haHigh; ExtMapBuffer8=haLow; } ExtMapBuffer5=haOpen; ExtMapBuffer6=haClose; } for(y=0,i=0; i<limit; i++) { ExtMapBuffer1=iMAOnArray(ExtMapBuffer7,0,MaPeriod2,0,MaMetod2,i); ExtMapBuffer2=iMAOnArray(ExtMapBuffer8,0,MaPeriod2,0,MaMetod2,i); ExtMapBuffer3=iMAOnArray(ExtMapBuffer5,0,MaPeriod2,0,MaMetod2,i); ExtMapBuffer4=iMAOnArray(ExtMapBuffer6,0,MaPeriod2,0,MaMetod2,i); } //---- return(0); } //+------------------------------------------------------------------+ Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 13, 2011 Author Report Share Posted August 13, 2011 Buy Script //+------------------------------------------------------------------+ //| mIBFXHedge | //| Copyright © 2008, Julius Figueroa | //| [email protected] | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Julius Figueroa" #property link "[email protected]" #property show_inputs #include <WinUser32.mqh> #include <stdlib.mqh> extern double Lot = 0.02; extern int MagicNumber=71946723; extern string TradeComment=""; bool CheckIfTradeAlreadyExists(string symbol) { if (OrdersTotal()==0) return(false); for (int cc=0; cc<OrdersTotal();cc++) { OrderSelect(cc, SELECT_BY_POS); if (OrderSymbol()==symbol && OrderMagicNumber()==MagicNumber) return(true); } return(false); }// end bool CheckTrendExists() //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int TradesSent=0; bool TradeExists = CheckIfTradeAlreadyExists("GBPUSDfx"); if (!TradeExists) int ticket = OrderSend("GBPUSDfx",OP_BUY, Lot, MarketInfo("GBPUSDfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURGBPfx"); if (!TradeExists) ticket = OrderSend("EURGBPfx",OP_BUY, Lot, MarketInfo("EURGBPfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("GBPCHFfx"); if (!TradeExists) ticket = OrderSend("GBPCHFfx",OP_BUY, Lot, MarketInfo("GBPCHFfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("CHFJPYfx"); if (!TradeExists) ticket = OrderSend("CHFJPYfx",OP_BUY, Lot, MarketInfo("CHFJPYfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("AUDJPYfx"); if (!TradeExists) ticket = OrderSend("AUDJPYfx",OP_BUY, Lot, MarketInfo("AUDJPYfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURJPYfx"); if (!TradeExists) ticket = OrderSend("EURJPYfx",OP_BUY, Lot, MarketInfo("EURJPYfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("USDCHFfx"); if (!TradeExists) ticket = OrderSend("USDCHFfx",OP_BUY, Lot, MarketInfo("USDCHFfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("NZDJPYfx"); if (!TradeExists) ticket = OrderSend("NZDJPYfx",OP_BUY, Lot, MarketInfo("NZDJPYfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("AUDUSDfx"); if (!TradeExists) ticket = OrderSend("AUDUSDfx",OP_BUY, Lot, MarketInfo("AUDUSDfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("USDJPYfx"); if (!TradeExists) ticket = OrderSend("USDJPYfx",OP_BUY, Lot, MarketInfo("USDJPYfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURUSDfx"); if (!TradeExists) ticket = OrderSend("EURUSDfx",OP_BUY, Lot, MarketInfo("EURUSDfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURCHFfx"); if (!TradeExists) ticket = OrderSend("EURCHFfx",OP_BUY, Lot, MarketInfo("EURCHFfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("GBPJPYfx"); if (!TradeExists) ticket = OrderSend("GBPJPYfx",OP_BUY, Lot, MarketInfo("GBPJPYfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("NZDUSDfx"); if (!TradeExists) ticket = OrderSend("NZDUSDfx",OP_BUY, Lot, MarketInfo("NZDUSDfx",MODE_ASK), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; MessageBox("This script opened " + TradesSent + " trades.","Information"); return(0); } //+------------------------------------------------------------------+ Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 13, 2011 Author Report Share Posted August 13, 2011 The one above is the Buy script. The next one is the sell script. Sorry, I am not very good at working this sight. Quote Link to comment Share on other sites More sharing options...
⭐ musketeer Posted August 13, 2011 Report Share Posted August 13, 2011 since, it works in that way... posting the code directly... but it is still preferable to upload the stuffs somewhere and just post the link to it for example: mirrorcreator.com or mediafire.com or one of the tens (perhaps hundreds) sites that offer such service Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 14, 2011 Author Report Share Posted August 14, 2011 //+------------------------------------------------------------------+ //| mIBFXHedge | //| Copyright © 2008, Julius Figueroa | //| [email protected] | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Julius Figueroa" #property link "[email protected]" #property show_inputs #include <WinUser32.mqh> #include <stdlib.mqh> extern double Lot = 0.02; extern int MagicNumber=71946723; extern string TradeComment=""; bool CheckIfTradeAlreadyExists(string symbol) { if (OrdersTotal()==0) return(false); for (int cc=0; cc<OrdersTotal();cc++) { OrderSelect(cc, SELECT_BY_POS); if (OrderSymbol()==symbol && OrderMagicNumber()==MagicNumber) return(true); } return(false); }// end bool CheckTrendExists() //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int TradesSent=0; bool TradeExists = CheckIfTradeAlreadyExists("GBPUSDfx"); if (!TradeExists) int ticket = OrderSend("GBPUSDfx",OP_SELL, Lot, MarketInfo("GBPUSDfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURGBPfx"); if (!TradeExists) ticket = OrderSend("EURGBPfx",OP_SELL, Lot, MarketInfo("EURGBPfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("GBPCHFfx"); if (!TradeExists) ticket = OrderSend("GBPCHFfx",OP_SELL, Lot, MarketInfo("GBPCHFfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("CHFJPYfx"); if (!TradeExists) ticket = OrderSend("CHFJPYfx",OP_SELL, Lot, MarketInfo("CHFJPYfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("AUDJPYfx"); if (!TradeExists) ticket = OrderSend("AUDJPYfx",OP_SELL, Lot, MarketInfo("AUDJPYfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURJPYfx"); if (!TradeExists) ticket = OrderSend("EURJPYfx",OP_SELL, Lot, MarketInfo("EURJPYfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("USDCHFfx"); if (!TradeExists) ticket = OrderSend("USDCHFfx",OP_SELL, Lot, MarketInfo("USDCHFfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("NZDJPYfx"); if (!TradeExists) ticket = OrderSend("NZDJPYfx",OP_SELL, Lot, MarketInfo("NZDJPYfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("AUDUSDfx"); if (!TradeExists) ticket = OrderSend("AUDUSDfx",OP_SELL, Lot, MarketInfo("AUDUSDfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("USDJPYfx"); if (!TradeExists) ticket = OrderSend("USDJPYfx",OP_SELL, Lot, MarketInfo("USDJPYfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURUSDfx"); if (!TradeExists) ticket = OrderSend("EURUSDfx",OP_SELL, Lot, MarketInfo("EURUSDfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("EURCHFfx"); if (!TradeExists) ticket = OrderSend("EURCHFfx",OP_SELL, Lot, MarketInfo("EURCHFfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("GBPJPYfx"); if (!TradeExists) ticket = OrderSend("GBPJPYfx",OP_SELL, Lot, MarketInfo("GBPJPYfxfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; TradeExists = CheckIfTradeAlreadyExists("NZDUSD"); if (!TradeExists) ticket = OrderSend("NZDUSDfx",OP_SELL, Lot, MarketInfo("NZDUSDfx",MODE_BID), 2, NULL, NULL, TradeComment, MagicNumber, 0, CLR_NONE); if (ticket > -1) TradesSent++; MessageBox("This script opened " + TradesSent + " trades.","Information"); return(0); } //+------------------------------------------------------------------+ Quote Link to comment Share on other sites More sharing options...
panamamike Posted August 15, 2011 Author Report Share Posted August 15, 2011 I have uploaded everything to mediafire. Here is the link http://www.mediafire.com/?d8y3z8qd41kf1 I would like to edit the EA so that it triggers from the MTF version of the HAS indicator, and enters the basket of trades according to the scripts. Is this possible? Or would it be easier to have a new EA created from scratch? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.