BTC USD 83,952.1 Gold USD 4,290.87
Time now: Jun 1, 12:00 AM

Mari Buat the BEST EA together!

kalo ea yg berdasarkan custom indicator camne lak TT???:-?:-?
 
aku nk wat ea yg gerenti profit 100%..hihihh

kalo ea yg gerenti loss 100% senang je nk wat..hihihih

p/s: aku x pernah n x reti kai ea ni..first cikgu fx aku 3 tahun lepas x kasi aku gun ea..nnti kene tarik telinga
 
Saya buat dengan cepat - sila test dan kasi mantap lagi jika ada idea

//+------------------------------------------------------------------+
//| 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 -
 
kenapa bila compile dia ada error ek..ke aku salah compile ni? :D
 
ea martingle yg boleh trade waktu news dgn boleh tukar steps,tp dan SL..bagus idea tu..dah lama mengidam..ada idea camner nak buat...boleh pm saya

TT boleh tak idea saya..news martingle..saya boleh bagi layout input martigle nie...ingat nak minta izin masta gaban nak modify masyuk enhance..memang power but kene time news boleh kantoi ea martingle nie..yg penting ada midification kat ea during news..
 
tt.. wt ea yg 100% loss.. pastu ubah skit bile buy tukar jd sell n vice versa.. nnti loss jd win.. hehe leh ke camtu..
 
ada error bile compile, mintak pertolongan tt...
 

Latest Posts

Live Forex Chart

Currency
Rates
EUR / USD
1.13999
USD / JPY
157.148
GBP / USD
1.32472
USD / CHF
0.82839
USD / CAD
1.41366
EUR / JPY
179.181
AUD / USD
0.70317
Back
Top
Log in Register