|
2.15.3.2 Strategy Converter |
MSI
|
Post subject: 2.15.3.2 Strategy Converter |
Post rating: 0
|
Posted: Fri 27 Apr, 2012, 09:40
|
|
User rating: 0
Joined: Fri 27 Apr, 2012, 09:37 Posts: 4
|
After update my MQL4 strategies (using Strategy Converter) working without problems severals years stopped work and test. Account Live. When compiling no errors.
|
|
|
|
 |
MSI
|
Post subject: Re: 2.15.3.2 Strategy Converter |
Post rating: 0
|
Posted: Fri 27 Apr, 2012, 17:38
|
|
User rating: 0
Joined: Fri 27 Apr, 2012, 09:37 Posts: 4
|
The simple example: package jforex.converted; import java.awt.Color; import com.dukascopy.api.*; import com.dukascopy.connector.engine.*;
public class _2 extends MQL4ConnectorStrategy { public int start() throws JFException { if (equal(OrdersTotal(), 0)) { OrderSend(toInstrument("EUR/USD"),toInt(OP_BUY),toDouble(0.1),toDouble(Ask),toInt(0),toDouble(0),toDouble(0),toString(""),toInt(777),toInt(0),toColor(Blue)); } if(true)return toInt((0));return 0; }
public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException{} /**/ };
|
|
|
|
 |
Platform Support
|
Post subject: Re: 2.15.3.2 Strategy Converter |
Post rating: 0
|
Posted: Mon 30 Apr, 2012, 10:23
|
|
JForex Master |  |
User rating: ∞
Joined: Wed 16 Sep, 2009, 18:23 Posts: 1054 Location: Geneva, Switzerland
|
Please provide the strategy code in order to investigate it. You can send them to [email protected]
|
|
|
|
 |
MSI
|
Post subject: Re: 2.15.3.2 Strategy Converter |
Post rating: 0
|
Posted: Tue 01 May, 2012, 15:00
|
|
User rating: 0
Joined: Fri 27 Apr, 2012, 09:37 Posts: 4
|
for example //+------------------------------------------------------------------+ //| MACD Sample.mq4 | //| Copyright � 2005, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ | //+------------------------------------------------------------------+
extern double TakeProfit = 50; extern double Lots = 0.1; extern double TrailingStop = 30; extern double MACDOpenLevel=3; extern double MACDCloseLevel=2; extern double MATrendPeriod=26;
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double MacdCurrent, MacdPrevious, SignalCurrent; double SignalPrevious, MaCurrent, MaPrevious; int cnt, ticket, total; // initial data checks // it is important to make sure that the expert works with a normal // chart and the user did not make any mistakes setting external // variables (Lots, StopLoss, TakeProfit, // TrailingStop) in our case, we check TakeProfit // on a chart of less than 100 bars if(Bars<100) { Print("bars less than 100"); return(0); } if(TakeProfit<10) { Print("TakeProfit less than 10"); return(0); // check TakeProfit } // to simplify the coding and speed up access // data are put into internal variables MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0); MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);
total=OrdersTotal(); if(total<1) { // no opened orders identified if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } // check for long position (BUY) possibility if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } // check for short position (SELL) possibility if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } return(0); } // it is important to enter the market correctly, // but it is more important to exit it correctly... for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // check for opened position OrderSymbol()==Symbol()) // check for symbol { if(OrderType()==OP_BUY) // long position is opened { // should it be closed? if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && MacdCurrent>(MACDCloseLevel*Point)) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position return(0); // exit } // check for trailing stop if(TrailingStop>0) { if(Bid-OrderOpenPrice()>Point*TrailingStop) { if(OrderStopLoss()<Bid-Point*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green); return(0); } } } } else // go to short position { // should it be closed? if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*Point)) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position return(0); // exit } // check for trailing stop if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } // the end.
|
|
|
|
 |
API Support
|
Post subject: Re: 2.15.3.2 Strategy Converter |
Post rating: 0
|
Posted: Tue 01 May, 2012, 16:06
|
|
User rating: ∞
Joined: Fri 31 Aug, 2007, 09:17 Posts: 6139
|
We back-tested the strategy in Historical Tester over the last week on 30 min bar chart and it did make two trades. If the strategy does not trade as expected please pinpoint to the market situation where it should have made the trade, but it did not. Custom settings:  Strategy parameters:  Visual mode and other Historical Tester settings:  The strategy example in your previous post also opens the trade as expected.
Attachments: |
macd_sample_chart.png [48.36 KiB]
Downloaded 1578 times
|
macd_sample_custom_settings.png [15.02 KiB]
Downloaded 1522 times
|
macd_sample_params.png [16.37 KiB]
Downloaded 1545 times
|
DISCLAIMER: Dukascopy Bank SA's waiver of responsability - Documents, data or information available on
this webpage may be posted by third parties without Dukascopy Bank SA being obliged to make any control
on their content. Anyone accessing this webpage and downloading or otherwise making use of any document,
data or information found on this webpage shall do it on his/her own risks without any recourse against
Dukascopy Bank SA in relation thereto or for any consequences arising to him/her or any third party from
the use and/or reliance on any document, data or information found on this webpage.
|
|
|
|
|
 |
MSI
|
Post subject: Re: 2.15.3.2 Strategy Converter |
Post rating: 0
|
Posted: Wed 02 May, 2012, 18:28
|
|
User rating: 0
Joined: Fri 27 Apr, 2012, 09:37 Posts: 4
|
Thank You! I draw your attention to the next: if I remove Visual mode, strategy doesn't test.
Attachments: |
gr.gif [101.5 KiB]
Downloaded 664 times
|
DISCLAIMER: Dukascopy Bank SA's waiver of responsability - Documents, data or information available on
this webpage may be posted by third parties without Dukascopy Bank SA being obliged to make any control
on their content. Anyone accessing this webpage and downloading or otherwise making use of any document,
data or information found on this webpage shall do it on his/her own risks without any recourse against
Dukascopy Bank SA in relation thereto or for any consequences arising to him/her or any third party from
the use and/or reliance on any document, data or information found on this webpage.
|
|
|
|
|
 |
|
Pages: [
1
]
|
|
|
|
|