BTC USD 84,000.0 Gold USD 4,285.46
Time now: Jun 1, 12:00 AM

Mari Buat the BEST EA together!

//+------------------------------------------------------------------+
//| Ultimate1.mq4
//|
//| First Update : 23 July 2010 - Description : Developing the Best EA
//| Second Update : 24 July 2010 - Defining more variables, more function for Money Management
//} 3rd Update : 26 July 2010 - First Rule : based on Onaji San Candle
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, UltimateForexEA"
#property link "http://www.ultimateforexea.com"


#define MAGICNO 123456

extern string Pair = "EURUSD";
extern int TimeFrame = 15;
extern int Slippage = 5;

double LotSize;
extern double StopLoss = 40;
extern double TakeProfit = 60;
extern double Risk_Percent = 2.0;
extern double TP_Percent = 3.0;
extern double LotFactor = 1.0; //1 = Directional, 0.1 = Grid, 0.01 = Martingale

//onaji San variables
extern double MinCandleLength = 10;
bool OpenSignal = 0; // 0 - no signal, 1 - buy signal, 2 - sell signal



int init()
{

CheckGlobalVariable();
AdjustSymbolForMiniMicro();

return(0);
}

int deinit()
{

return(0);
}

int start()
{

LotSizeCalculation();

//The Rule of Opening Trades

CheckRuleOpenPosition();

if (OpenSignal == 1)
{

OrderSend(Pair,OP_BUY,LotSize,MarketInfo(Pair,MODE_ASK),Slippage,MarketInfo(Pair,MODE_ASK) - StopLoss*MarketInfo(Pair, MODE_POINT),MarketInfo(Pair,MODE_ASK) + TakeProfit*MarketInfo(Pair,MODE_POINT),"Buy",MAGICNO,0,Blue);

}
if (OpenSignal == 2)
{

OrderSend(Pair,OP_SELL,LotSize,MarketInfo(Pair,MODE_BID),Slippage,MarketInfo(Pair,MODE_BID) + StopLoss*MarketInfo(Pair, MODE_POINT),MarketInfo(Pair,MODE_BID) - TakeProfit*MarketInfo(Pair,MODE_POINT),"Sell",MAGICNO,0,Red);

}


//The Rule of Closing Trades
// -- for now close using TP and SL

Comment ("EA Name : Ultimate1", "\nLotSize = ", LotSize );

return(0);
}

void CheckRuleOpenPosition()
{

//based on Onaji San
if (iClose(Pair,TimeFrame,4) > iOpen(Pair, TimeFrame,4) && (iClose(Pair,TimeFrame,4) - iOpen(Pair, TimeFrame,4)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) > iOpen(Pair, TimeFrame,3) && (iClose(Pair,TimeFrame,3) - iOpen(Pair, TimeFrame,3)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,2) > iOpen(Pair, TimeFrame,2) && (iClose(Pair,TimeFrame,2) - iOpen(Pair, TimeFrame,2)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) > iClose(Pair, TimeFrame,4) &&
iClose(Pair,TimeFrame,2) > iClose(Pair, TimeFrame,3) &&
iClose(Pair,TimeFrame,0) > iHigh(Pair, TimeFrame,2) + 1*MarketInfo(Pair,MODE_POINT) &&
OrdersTotal() == 0)

{
OpenSignal = 1; //buy signal
}
else if (iClose(Pair,TimeFrame,4) > iOpen(Pair, TimeFrame,4) && (iClose(Pair,TimeFrame,4) - iOpen(Pair, TimeFrame,4)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) > iOpen(Pair, TimeFrame,3) && (iClose(Pair,TimeFrame,3) - iOpen(Pair, TimeFrame,3)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,2) > iOpen(Pair, TimeFrame,2) && (iClose(Pair,TimeFrame,2) - iOpen(Pair, TimeFrame,2)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) > iClose(Pair, TimeFrame,4) &&
iClose(Pair,TimeFrame,2) > iClose(Pair, TimeFrame,3) &&
iClose(Pair,TimeFrame,0) < iLow(Pair, TimeFrame,2) - 1*MarketInfo(Pair,MODE_POINT) &&
OrdersTotal() == 0)

{
OpenSignal = 2; //sell signal
}
else if (iClose(Pair,TimeFrame,4) < iOpen(Pair, TimeFrame,4) && (iOpen(Pair,TimeFrame,4) - iClose(Pair, TimeFrame,4)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) < iOpen(Pair, TimeFrame,3) && (iOpen(Pair,TimeFrame,3) - iClose(Pair, TimeFrame,3)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,2) < iOpen(Pair, TimeFrame,2) && (iOpen(Pair,TimeFrame,2) - iClose(Pair, TimeFrame,2)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) < iClose(Pair, TimeFrame,4) &&
iClose(Pair,TimeFrame,2) < iClose(Pair, TimeFrame,3) &&
iClose(Pair,TimeFrame,0) < iLow(Pair, TimeFrame,2) - 1*MarketInfo(Pair,MODE_POINT) &&
OrdersTotal() == 0)

{
OpenSignal = 2;
}
else if (iClose(Pair,TimeFrame,4) < iOpen(Pair, TimeFrame,4) && (iOpen(Pair,TimeFrame,4) - iClose(Pair, TimeFrame,4)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) < iOpen(Pair, TimeFrame,3) && (iOpen(Pair,TimeFrame,3) - iClose(Pair, TimeFrame,3)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,2) < iOpen(Pair, TimeFrame,2) && (iOpen(Pair,TimeFrame,2) - iClose(Pair, TimeFrame,2)) > MinCandleLength*MarketInfo(Pair,MODE_POINT) &&
iClose(Pair,TimeFrame,3) < iClose(Pair, TimeFrame,4) &&
iClose(Pair,TimeFrame,2) < iClose(Pair, TimeFrame,3) &&
iClose(Pair,TimeFrame,0) > iHigh(Pair, TimeFrame,2) + 1*MarketInfo(Pair,MODE_POINT) &&
OrdersTotal() == 0)

{
OpenSignal = 1;
}
else OpenSignal = 0;
}

void LotSizeCalculation()
{

if(MarketInfo(Pair,MODE_MINLOT) == 0.1) int LotSizeDigit = 1;
else if(MarketInfo(Pair,MODE_MINLOT) == 0.01) LotSizeDigit = 2;
double MinLots = NormalizeDouble(MarketInfo(Pair,MODE_MINLOT),LotSizeDigit);
double MaxLots = NormalizeDouble(MarketInfo(Pair,MODE_MAXLOT),LotSizeDigit);
double AccountFM = NormalizeDouble(AccountFreeMargin(),2);

if (MarketInfo(Pair, MODE_LOTSIZE) == 100000) LotSize = (AccountFM*(Risk_Percent/100) * LotFactor) / (StopLoss * MarketInfo(Pair, MODE_TICKVALUE));
else if (MarketInfo(Pair, MODE_LOTSIZE) == 10000) LotSize = (AccountFM*(Risk_Percent/100) * LotFactor)/ (StopLoss * MarketInfo(Pair, MODE_TICKVALUE));
else if (MarketInfo(Pair, MODE_LOTSIZE) == 1000) LotSize = (AccountFM*(Risk_Percent/100) * LotFactor)/ (StopLoss * MarketInfo(Pair, MODE_TICKVALUE));

LotSize = NormalizeDouble(LotSize,LotSizeDigit);

if(LotSize > MaxLots) LotSize = MaxLots;

if(LotSize < MinLots)
{
LotSize = MinLots;
//Alert("Your Equity is Below Tradeable Lots, EA changed to Min Lot possible."); //Message Box will pop up
//Print("Your Equity is Below Tradeable Lots, EA changed to Min Lot possible."); //This message will appear in Expert tab

}



}

void CheckGlobalVariable()
{

}

void AdjustSymbolForMiniMicro()
{
if (StringLen(Symbol()) == 7)
{
Pair = Pair + StringSubstr(Symbol(), 6, 1);

}

}




// nota : ada perubahan pada lotsize management bila saya compile - sila betulkan

// saya buat ni agak cepat - sila test samada ikut rule atau tidak
// for the time being, saya pakai flat rule 40 SL dan 60 TP - nanti boleh update atau ada orang lain nak kasi update -

// backtest - tak berapa sangat for this version -

TT...
tolong add kn filter H4 utk EA ni...
yg for3xg@l punya EA yg da filter H4 nya x mowk kongsi...
kedekut...mkn sorg2...sorie...
 
TT...
tolong add kn filter H4 utk EA ni...
yg for3xg@l punya EA yg da filter H4 nya x mowk kongsi...
kedekut...mkn sorg2...sorie...

Hi,

This Onaji San Candles trading system is not profitable even if you add the 4H candles filter to it. It will only minimise your losses in the long run. Overall, it will gradually deplete your account and would eventually be wiped out.

The On@j1 S@n C@ndl3s EA coded by me is profitable because I do not stick to the original rules stipulated in the original thread started by Phenomenonexy. I have coded multiple generic logics and added MTF filter amongst other indicators to determine a precise and accurate entry into the market. Without these additions, the original idea of this system even with 4H filter wouldn't be profitable.

As to why I don't share my EA publicly, you couldn't pick a more suitable place to ask this question. Ask ExpertTrader why he was reluctant to share his Special Martingale EA with me when I requested for a public upload. His decision has somewhat appalled me into a negative perception regarding public sharing of custom coded EAs.

Regards,
Ashlynne
 
TT...
tolong add kn filter H4 utk EA ni...
yg for3xg@l punya EA yg da filter H4 nya x mowk kongsi...
kedekut...mkn sorg2...sorie...


Saya letak kat sini kalau dapat membantu, coding signal & filter ni saya sedut sana sini (termasuk coding Onaji San dlm thread ni oleh TT - harap halalkan) untuk dapat result macam ni:

TesterGraph.gif



Signal:

PHP:
void Candlestick()
{
   SwingUp    = 
      (
       (iClose(NULL,0,4) > iOpen(NULL, 0,4) && (iClose(NULL,0,4) - iOpen(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) > iOpen(NULL, 0,3) && (iClose(NULL,0,3) - iOpen(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) > iOpen(NULL, 0,2) && (iClose(NULL,0,2) - iOpen(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) > iClose(NULL, 0,4) && iClose(NULL,0,2) > iClose(NULL, 0,3) && iClose(NULL,0,0) > iHigh(NULL, 0,2) + 1*Point)
       ||
       (iClose(NULL,0,4) < iOpen(NULL, 0,4) && (iOpen(NULL,0,4) - iClose(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) < iOpen(NULL, 0,3) && (iOpen(NULL,0,3) - iClose(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) < iOpen(NULL, 0,2) && (iOpen(NULL,0,2) - iClose(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) < iClose(NULL, 0,4) && iClose(NULL,0,2) < iClose(NULL, 0,3) && iClose(NULL,0,0) > iHigh(NULL, 0,2) + 1*Point)       
       ||
       (High[4]>High[3] && Low[4]>Low[3] && High[3]>High[2] && Low[3]>Low[2] && High[2]<High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Bullish Engulfing pattern
       ||
       (High[4]>High[3] && Low[4]>Low[3] && High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Piercing Pattern
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]>Close[1] && (High[1]-Open[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Hammer
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]<Close[1] && (High[1]-Close[1])<=(High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3) // Hammer
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Close[1]>Open[1] && (Open[1]-Low[1])<= (High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3)  // Shooting Star Down
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]>Close[1] && (Close[1]-Low[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Inverted Hammer Down


       );
   SwingDown   = 
      (
       (iClose(NULL,0,4) > iOpen(NULL, 0,4) && (iClose(NULL,0,4) - iOpen(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) > iOpen(NULL, 0,3) && (iClose(NULL,0,3) - iOpen(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) > iOpen(NULL, 0,2) && (iClose(NULL,0,2) - iOpen(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) > iClose(NULL, 0,4) && iClose(NULL,0,2) > iClose(NULL, 0,3) && iClose(NULL,0,0) < iLow(NULL, 0,2) - 1*Point && OrdersTotal() == 0)
       ||
       (iClose(NULL,0,4) < iOpen(NULL, 0,4) && (iOpen(NULL,0,4) - iClose(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) < iOpen(NULL, 0,3) && (iOpen(NULL,0,3) - iClose(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) < iOpen(NULL, 0,2) && (iOpen(NULL,0,2) - iClose(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) < iClose(NULL, 0,4) && iClose(NULL,0,2) < iClose(NULL, 0,3) && iClose(NULL,0,0) < iLow(NULL, 0,2) - 1*Point && OrdersTotal() == 0)
       ||
       (High[4]<High[3] && Low[4]<Low[3] && High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Bearish Engulfing pattern
       ||
       (High[4]<High[3] && Low[4]<Low[3] && High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Dark Cloud Cover pattern  
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[1]>Close[1] && (High[1]-Open[1])<=(High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3)  // Hanging Man   
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[1]<Close[1] && (High[1]-Close[1])<=(High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3) // Hanging Man
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Close[1]<Open[1] && (Close[1]-Low[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Inverted Hammer Up
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Close[1]>Open[1] && (Open[1]-Low[1])<= (High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3)  // Shooting Star Up

       );
   NoSwing     = false;
}

Filter:

PHP:
void Stochastic()
{
   double Stoc1    = iStochastic(NULL,PERIOD_H4,15,3,3,MODE_SMA,0,MODE_MAIN,1);
   Oversold        = (Stoc1<15);
   Overbought      = (Stoc1>85);
   PeakCondition   = false;
}


Zigzag:

PHP:
int CheckZigZag(int TimeFrame)
{
   int TradeBar=0;
   int Ret=0;
   int Limit=500;
   int j=0;
   double Zig=0;

   for(int i=TradeBar;i<=Limit;i++)
   {
	  double Zig_Cur=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
	  double Zig_Prev=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i+1);
	  if(Zig_Cur>0)
	  {
	     j=i;
	     Zig=Zig_Cur;
	     break;
	  }
   }

   for(i=j+1;i<=Limit;i++)
   {
	  Zig_Cur=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
	  Zig_Prev=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i+1);
	  if(Zig_Cur>0)
	  {
	     break;
	  }
   }

   if(Zig>Zig_Cur)
   {
      Ret=-1;
   }
   if(Zig<Zig_Cur)
   {
      Ret=1;
   }
   return(Ret);
}

Tak lupa credit untuk masta dSena, Master Doji & master ExperTrader untuk ini.
 
Last edited:
Hi,

This Onaji San Candles trading system is not profitable even if you add the 4H candles filter to it. It will only minimise your losses in the long run. Overall, it will gradually deplete your account and would eventually be wiped out.

The On@j1 S@n C@ndl3s EA coded by me is profitable because I do not stick to the original rules stipulated in the original thread started by Phenomenonexy. I have coded multiple generic logics and added MTF filter amongst other indicators to determine a precise and accurate entry into the market. Without these additions, the original idea of this system even with 4H filter wouldn't be profitable.

As to why I don't share my EA publicly, you couldn't pick a more suitable place to ask this question. Ask ExpertTrader why he was reluctant to share his Special Martingale EA with me when I requested for a public upload. His decision has somewhat appalled me into a negative perception regarding public sharing of custom coded EAs.

Regards,
Ashlynne

Its ok then if u d0esnt want 2 share ur EA...cos s0me of Malaysian trader is stingy n x helpful alot...sorie but im x saying its u,i said s0me only...ok,peace n0 war...8 least others cn give s well...the m0re u give,the m0re u get...
 
Its ok then if u d0esnt want 2 share ur EA...cos s0me of Malaysian trader is stingy n x helpful alot...sorie but im x saying its u,i said s0me only...ok,peace n0 war...8 least others cn give s well...the m0re u give,the m0re u get...

Great! If you are as generous as you claimed to be and believe that the more you give, the more you get, you should share the EA that you have asked me not to share with anybody after compiling it for you. Or have you forgotten what you said?

What happened to that EA? In the end you didn't even send the EA to me because you were afraid to share it with me and others. If you really live by your words, why don't you start by sharing that EA here in CG with everyone. I don't mind being at the receiving end so that you could give more and get more. :p

Cheers,
Ashlynne
 
Great! If you are as generous as you claimed to be and believe that the more you give, the more you get, you should share the EA that you have asked me not to share with anybody after compiling it for you. Or have you forgotten what you said?

What happened to that EA? In the end you didn't even send the EA to me because you were afraid to share it with me and others. If you really live by your words, why don't you start by sharing that EA here in CG with everyone. I don't mind being at the receiving end so that you could give more and get more. :p

Cheers,
Ashlynne

:p:p:p
i had forget about that EA...
it had a big DD...
i x use it anymore if u want to know...
its just ordinary EA that depends on Pattern Price...
didnt have much success wit that EA...
 
Saya letak kat sini kalau dapat membantu, coding signal & filter ni saya sedut sana sini (termasuk coding Onaji San dlm thread ni oleh TT - harap halalkan) untuk dapat result macam ni:

TesterGraph.gif



Signal:

PHP:
void Candlestick()
{
   SwingUp    = 
      (
       (iClose(NULL,0,4) > iOpen(NULL, 0,4) && (iClose(NULL,0,4) - iOpen(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) > iOpen(NULL, 0,3) && (iClose(NULL,0,3) - iOpen(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) > iOpen(NULL, 0,2) && (iClose(NULL,0,2) - iOpen(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) > iClose(NULL, 0,4) && iClose(NULL,0,2) > iClose(NULL, 0,3) && iClose(NULL,0,0) > iHigh(NULL, 0,2) + 1*Point)
       ||
       (iClose(NULL,0,4) < iOpen(NULL, 0,4) && (iOpen(NULL,0,4) - iClose(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) < iOpen(NULL, 0,3) && (iOpen(NULL,0,3) - iClose(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) < iOpen(NULL, 0,2) && (iOpen(NULL,0,2) - iClose(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) < iClose(NULL, 0,4) && iClose(NULL,0,2) < iClose(NULL, 0,3) && iClose(NULL,0,0) > iHigh(NULL, 0,2) + 1*Point)       
       ||
       (High[4]>High[3] && Low[4]>Low[3] && High[3]>High[2] && Low[3]>Low[2] && High[2]<High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Bullish Engulfing pattern
       ||
       (High[4]>High[3] && Low[4]>Low[3] && High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Piercing Pattern
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]>Close[1] && (High[1]-Open[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Hammer
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]<Close[1] && (High[1]-Close[1])<=(High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3) // Hammer
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Close[1]>Open[1] && (Open[1]-Low[1])<= (High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3)  // Shooting Star Down
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]>Close[1] && (Close[1]-Low[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Inverted Hammer Down


       );
   SwingDown   = 
      (
       (iClose(NULL,0,4) > iOpen(NULL, 0,4) && (iClose(NULL,0,4) - iOpen(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) > iOpen(NULL, 0,3) && (iClose(NULL,0,3) - iOpen(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) > iOpen(NULL, 0,2) && (iClose(NULL,0,2) - iOpen(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) > iClose(NULL, 0,4) && iClose(NULL,0,2) > iClose(NULL, 0,3) && iClose(NULL,0,0) < iLow(NULL, 0,2) - 1*Point && OrdersTotal() == 0)
       ||
       (iClose(NULL,0,4) < iOpen(NULL, 0,4) && (iOpen(NULL,0,4) - iClose(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) < iOpen(NULL, 0,3) && (iOpen(NULL,0,3) - iClose(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) < iOpen(NULL, 0,2) && (iOpen(NULL,0,2) - iClose(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) < iClose(NULL, 0,4) && iClose(NULL,0,2) < iClose(NULL, 0,3) && iClose(NULL,0,0) < iLow(NULL, 0,2) - 1*Point && OrdersTotal() == 0)
       ||
       (High[4]<High[3] && Low[4]<Low[3] && High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Bearish Engulfing pattern
       ||
       (High[4]<High[3] && Low[4]<Low[3] && High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Dark Cloud Cover pattern  
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[1]>Close[1] && (High[1]-Open[1])<=(High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3)  // Hanging Man   
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[1]<Close[1] && (High[1]-Close[1])<=(High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3) // Hanging Man
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Close[1]<Open[1] && (Close[1]-Low[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Inverted Hammer Up
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Close[1]>Open[1] && (Open[1]-Low[1])<= (High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3)  // Shooting Star Up

       );
   NoSwing     = false;
}

Filter:

PHP:
void Stochastic()
{
   double Stoc1    = iStochastic(NULL,PERIOD_H4,15,3,3,MODE_SMA,0,MODE_MAIN,1);
   Oversold        = (Stoc1<15);
   Overbought      = (Stoc1>85);
   PeakCondition   = false;
}


Zigzag:

PHP:
int CheckZigZag(int TimeFrame)
{
   int TradeBar=0;
   int Ret=0;
   int Limit=500;
   int j=0;
   double Zig=0;

   for(int i=TradeBar;i<=Limit;i++)
   {
	  double Zig_Cur=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
	  double Zig_Prev=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i+1);
	  if(Zig_Cur>0)
	  {
	     j=i;
	     Zig=Zig_Cur;
	     break;
	  }
   }

   for(i=j+1;i<=Limit;i++)
   {
	  Zig_Cur=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
	  Zig_Prev=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i+1);
	  if(Zig_Cur>0)
	  {
	     break;
	  }
   }

   if(Zig>Zig_Cur)
   {
      Ret=-1;
   }
   if(Zig<Zig_Cur)
   {
      Ret=1;
   }
   return(Ret);
}

Tak lupa credit untuk masta dSena, Master Doji & master ExperTrader untuk ini.

macam mana nak satukan nih.. ada masta boleh tolong jernihkan lagi..

Bantuan masta..
 
Saya letak kat sini kalau dapat membantu, coding signal & filter ni saya sedut sana sini (termasuk coding Onaji San dlm thread ni oleh TT - harap halalkan) untuk dapat result macam ni:

TesterGraph.gif



Signal:

PHP:
void Candlestick()
{
   SwingUp    = 
      (
       (iClose(NULL,0,4) > iOpen(NULL, 0,4) && (iClose(NULL,0,4) - iOpen(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) > iOpen(NULL, 0,3) && (iClose(NULL,0,3) - iOpen(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) > iOpen(NULL, 0,2) && (iClose(NULL,0,2) - iOpen(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) > iClose(NULL, 0,4) && iClose(NULL,0,2) > iClose(NULL, 0,3) && iClose(NULL,0,0) > iHigh(NULL, 0,2) + 1*Point)
       ||
       (iClose(NULL,0,4) < iOpen(NULL, 0,4) && (iOpen(NULL,0,4) - iClose(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) < iOpen(NULL, 0,3) && (iOpen(NULL,0,3) - iClose(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) < iOpen(NULL, 0,2) && (iOpen(NULL,0,2) - iClose(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) < iClose(NULL, 0,4) && iClose(NULL,0,2) < iClose(NULL, 0,3) && iClose(NULL,0,0) > iHigh(NULL, 0,2) + 1*Point)       
       ||
       (High[4]>High[3] && Low[4]>Low[3] && High[3]>High[2] && Low[3]>Low[2] && High[2]<High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Bullish Engulfing pattern
       ||
       (High[4]>High[3] && Low[4]>Low[3] && High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Piercing Pattern
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]>Close[1] && (High[1]-Open[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Hammer
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]<Close[1] && (High[1]-Close[1])<=(High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3) // Hammer
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Close[1]>Open[1] && (Open[1]-Low[1])<= (High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3)  // Shooting Star Down
       ||
       (High[3]>High[2] && Low[3]>Low[2] && High[2]>High[1] && Low[2]>Low[1] && Open[1]>Close[1] && (Close[1]-Low[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Inverted Hammer Down


       );
   SwingDown   = 
      (
       (iClose(NULL,0,4) > iOpen(NULL, 0,4) && (iClose(NULL,0,4) - iOpen(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) > iOpen(NULL, 0,3) && (iClose(NULL,0,3) - iOpen(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) > iOpen(NULL, 0,2) && (iClose(NULL,0,2) - iOpen(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) > iClose(NULL, 0,4) && iClose(NULL,0,2) > iClose(NULL, 0,3) && iClose(NULL,0,0) < iLow(NULL, 0,2) - 1*Point && OrdersTotal() == 0)
       ||
       (iClose(NULL,0,4) < iOpen(NULL, 0,4) && (iOpen(NULL,0,4) - iClose(NULL, 0,4)) > MinCandleLength*Point && iClose(NULL,0,3) < iOpen(NULL, 0,3) && (iOpen(NULL,0,3) - iClose(NULL, 0,3)) > MinCandleLength*Point && iClose(NULL,0,2) < iOpen(NULL, 0,2) && (iOpen(NULL,0,2) - iClose(NULL, 0,2)) > MinCandleLength*Point && iClose(NULL,0,3) < iClose(NULL, 0,4) && iClose(NULL,0,2) < iClose(NULL, 0,3) && iClose(NULL,0,0) < iLow(NULL, 0,2) - 1*Point && OrdersTotal() == 0)
       ||
       (High[4]<High[3] && Low[4]<Low[3] && High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]>Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Bearish Engulfing pattern
       ||
       (High[4]<High[3] && Low[4]<Low[3] && High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[2]<Close[2] && Open[1]>Close[1] && (Open[1]-Close[1])>(High[1]-Low[1])/3 && (Close[2]-Open[2])>(High[2]-Low[2])/3) // Dark Cloud Cover pattern  
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[1]>Close[1] && (High[1]-Open[1])<=(High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3)  // Hanging Man   
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Open[1]<Close[1] && (High[1]-Close[1])<=(High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3) // Hanging Man
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Close[1]<Open[1] && (Close[1]-Low[1])<= (High[1]-Low[1])/6 && (Open[1]-Close[1])<=(High[1]-Low[1])/3) // Inverted Hammer Up
       ||
       (High[3]<High[2] && Low[3]<Low[2] && High[2]<High[1] && Low[2]<Low[1] && Close[1]>Open[1] && (Open[1]-Low[1])<= (High[1]-Low[1])/6 && (Close[1]-Open[1])<=(High[1]-Low[1])/3)  // Shooting Star Up

       );
   NoSwing     = false;
}

Filter:

PHP:
void Stochastic()
{
   double Stoc1    = iStochastic(NULL,PERIOD_H4,15,3,3,MODE_SMA,0,MODE_MAIN,1);
   Oversold        = (Stoc1<15);
   Overbought      = (Stoc1>85);
   PeakCondition   = false;
}


Zigzag:

PHP:
int CheckZigZag(int TimeFrame)
{
   int TradeBar=0;
   int Ret=0;
   int Limit=500;
   int j=0;
   double Zig=0;

   for(int i=TradeBar;i<=Limit;i++)
   {
	  double Zig_Cur=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
	  double Zig_Prev=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i+1);
	  if(Zig_Cur>0)
	  {
	     j=i;
	     Zig=Zig_Cur;
	     break;
	  }
   }

   for(i=j+1;i<=Limit;i++)
   {
	  Zig_Cur=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
	  Zig_Prev=iCustom(NULL,TimeFrame,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i+1);
	  if(Zig_Cur>0)
	  {
	     break;
	  }
   }

   if(Zig>Zig_Cur)
   {
      Ret=-1;
   }
   if(Zig<Zig_Cur)
   {
      Ret=1;
   }
   return(Ret);
}

Tak lupa credit untuk masta dSena, Master Doji & master ExperTrader untuk ini.

byk juak error code ni bro???
leh tlng compile semua skali x???
ngan ExpertTrader punya EA...
capturexc.jpg
 
Sekarang, seterusnya.. saya buka, sesapa ada RASA idea yang cukup bagus utk dijadikan BEST Trading strategies -

Sila postkan -

1) ..?
2) .. ?

Silakan -

salam bro tt..boleh ke buat ea suh dia buka post ikut indi..guna indi duniafx ok gak..anak panah turun, buka post sell, anak panah naik close sell buka buy lakk.boleh ke camtu..tq bro
 

Latest Posts

Live Forex Chart

Currency
Rates
EUR / USD
1.13910
USD / JPY
157.285
GBP / USD
1.32505
USD / CHF
0.82827
USD / CAD
1.41455
EUR / JPY
179.163
AUD / USD
0.70328
Back
Top
Log in Register