ZeroCode Sample: Create "10-Minute" Strategy Expert

 

Hello there,

This is a tutorial to create "10-Minute" strategy expert advisor for MetaTrader 3.x. I write this for ZeroCode educational purpose only.

Since MT terminal doesn't have 10 minutes timeframe, I'm going to double the indicators parameter to make the expert works in 5 minutes timeframe instead.

Setup Indicators in Order:

  • WMA 10
  • SMA 20
  • Stoch 10 6 6
  • RSI 28
  • MACD 24 52 18

Logics:

Compile:

Stop Loss = 25

This is it... Enjoys the simple the 10-minute

 

Compare yours with mine:



//*------------------------------------------------------------------------------------------------------------------*\
// This MQL is automatically generated by FXFisherman ZeroCode v1.0.2041.38510 (www.fxfisherman.com)
//
// FXFisherman ZeroCode is provided free of charge, and, therefore, on an "as is" basis, without warranty of any kind.
// In any case, the authors will not be responsible or liable for ANY LOSSES caused by using of this software.
//
//*--------------------------------------------PLEASE DO NOT REMOVE THIS HEADER--------------------------------------*/

/*[[ Name := 10 minutes
Author := TradeCurrency.ca, Scorpion
Link := Coded_by_FXFisherman_ZeroCode_@www.fxfisherman.com
Lots := 1
Stop Loss := 25
Take Profit := 60
Trailing Stop := 0
]]*/
defines: Slippage(3);
defines: ;
var: cnt(0),IsBuying(False),IsSelling(False),IsClosing(False),RealTP(0),RealSL(0);
var: macd5sig_1(0),macd5his_0(0),macd5sig_0(0),macd5his_1(0),rsi4_1(0),rsi4_0(0),stoc3d_1(0),stoc3d_0(0),stoc3k_1(0),stoc3k_0(0),ma1_1(0),ma1_0(0),ma2_1(0),ma2_0(0);

// Check for invalid bars and takeprofit
If Bars<200 then Exit;

// Calculate indicators' value
macd5sig_1 = iMACDEx(24,52,18,PRICE_CLOSE,MODE_SIGNAL,1);
macd5his_0 = iMACDEx(24,52,18,PRICE_CLOSE,MODE_MAIN,0);
macd5sig_0 = iMACDEx(24,52,18,PRICE_CLOSE,MODE_SIGNAL,0);
macd5his_1 = iMACDEx(24,52,18,PRICE_CLOSE,MODE_MAIN,1);
rsi4_1 = iRSI(28,1);
rsi4_0 = iRSI(28,0);
stoc3d_1 = iSTO(10,6,6,MODE_SMA,MODE_SIGNAL,1);
stoc3d_0 = iSTO(10,6,6,MODE_SMA,MODE_SIGNAL,0);
stoc3k_1 = iSTO(10,6,6,MODE_SMA,MODE_MAIN,1);
stoc3k_0 = iSTO(10,6,6,MODE_SMA,MODE_MAIN,0);
ma1_1 = iMAEx(10,MODE_LWMA,0,PRICE_CLOSE,1);
ma1_0 = iMAEx(10,MODE_LWMA,0,PRICE_CLOSE,0);
ma2_1 = iMAEx(20,MODE_SMA,0,PRICE_CLOSE,1);
ma2_0 = iMAEx(20,MODE_SMA,0,PRICE_CLOSE,0);


// Check for BUY, SELL, and CLOSE signal
IsBuying = (ma1_0 > ma2_0)
and (stoc3k_0 > stoc3d_0)
and (rsi4_0 > 50)
and (macd5his_0 > 0);
IsSelling = (ma1_0 < ma2_0)
and (stoc3k_0 < stoc3d_0)
and (rsi4_0 < 50)
and (macd5his_0 < 0);
IsClosing = False;

// Control open trades
for cnt=1 to TotalTrades
{
// Control only market trades not entry order
if OrderValue(cnt,VAL_TYPE)<=OP_SELL and
OrderValue(cnt,VAL_SYMBOL)=Symbol then
{

// Check for close signal for bought trade
If OrderValue(cnt,VAL_TYPE)=OP_BUY then
{

If IsSelling or IsClosing then
{
// Close bought trade
CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_LOTS),Bid,3,Violet);
Alert("10 minutes: Closing BUY order.");
};

// Check trailing stop
If TrailingStop>0 then
{
If (Bid-OrderValue(cnt,VAL_OPENPRICE))>(Point*TrailingStop) then
{
If OrderValue(cnt,VAL_STOPLOSS)<(Bid-Point*TrailingStop) then
{
// Modify trailing stop
ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),
Bid-Point*TrailingStop,OrderValue(cnt,VAL_TAKEPROFIT),Red);
};
};
};
}
else
{

// Check sold trade for close signal
If IsBuying or IsClosing then
{
CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_LOTS),Ask,3,Violet);
Alert("10 minutes: Closing SELL order.");
};

// Control trailing stop
If TrailingStop>0 then
{
If (OrderValue(cnt,VAL_OPENPRICE)-Ask)>(Point*TrailingStop) then
{
If OrderValue(cnt,VAL_STOPLOSS)=0 or
OrderValue(cnt,VAL_STOPLOSS)>(Ask+Point*TrailingStop) then
{
ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),
Ask+Point*TrailingStop,OrderValue(cnt,VAL_TAKEPROFIT),Red);
};
};
};
};
};
};


// If there is no open trade
If TotalTrades<1 then
{
// If we have enough money for 1 lot
If FreeMargin<1000 then Exit;

// Check for BUY entry signal
If IsBuying and IsSelling=False and IsClosing=False then
{
// Buy
If StopLoss>0 then
{
RealSL=Ask-StopLoss*Point;
}
If TakeProfit>0 then
{
RealTP=Ask+TakeProfit*Point;
}
SetOrder(OP_BUY,Lots,Ask, Slippage,RealSL,RealTP,RED);
Alert("10 minutes: Buying");
};

// Check for SELL entry signal
If IsSelling and IsBuying=False and IsClosing=False then
{
// Sell
If StopLoss>0 then
{
RealSL=Bid+StopLoss*Point;
}
If TakeProfit>0 then
{
RealTP=Bid-TakeProfit*Point;
}
SetOrder(OP_SELL,Lots,Bid,Slippage,RealSL,RealTP,RED);
Alert("10 minutes: Selling");
};
};


//-------------- Coded by FXFisherman ZeroCode v1.0.2041.38510

 

Just something to add before I go to sleep I think i remember reading that the system has to be run only at certain hours, we'll need the final version of zerocode in order to make it possible for this system to work at its fullest.. Also we'll need some optimizing to make it work in either 5 minute or 15 minute since there is no 10 minute chart on metatrader but rather VTTrader

 

hi mate I play it for some times mt 15 min what ever the indi is in 5 min time dif by 1/2 you get 10 mmin dif by 1/2 again +/- you have 15 min but the wip is the problem

 

Hi, I would like to know in MQ4 how to automatically execute BUY/SELL and CLOSE of position using CCI (14) with S/L of (say) 20. The BUY execution will only start when the tick leaves 0 towards positive value and curved back to 0 value of CCI to close BUY position. SELL execution will begin when the tick leaves 0 value down to negative value and curved back to 0 value to close position. The parameter applied to HCL/3.

Thank you.

 

Hi,

I am Mauro, new around here. I saw your ZeroCode sample and I am interested in trying it.

Thank you,

otero.felix@gmail.com

 

Hi Mauro

You can download ZeroCode for MT3 from https://c.mql5.com/3/139/ZeroCodeBeta1_ADX_Fixed.zip

 

Hi there, I am newbie with MT4 platform. How to edit indicator with ex4?

Thanks

 

Hi there

Version for MT4 is in design stage, so i guess it will take some weeks to get final. Stay tuned for all exciting features in the upcoming weeks!

 
How to edit indicator with ex4?

EX4s are compiled MQ4s and can't be edited - you can only edit MQ4s that make it. To change parameters you can right click on the indicator and change the properties or right click on the chart and choose indicator.

 
scorpion:
Hello there, Hi Scorpion. Can you please tell me where I can find exact information about downloading stuff from this site and putting it into my MT4 demo platform. Im struggling to get the best out of the site because I cant do this. I realise it is probably due to my inexperience. Can you please send me in the right direction. Thanks Todd.
Reason: