BTC USD 78,133.2 Gold USD 4,376.65
Time now: Jun 1, 12:00 AM

Belajar Coding EA (mql) asas

//----------------------------+
int bilangan_post()
{
int bil=0;
for(int i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue;
bil++;
}
return(bil);
}
//------------------------+

function ni digunakan utk mengesan ada atau tidak open trade, function ni mengesan berdasarkan pair dan magic number. fungtion ni diletakkan di luar int start()

camana nak panggil function tu??...kita kena buat koding dlm int start()....contohnya cam ni

int start()
{
if(bilangan_post()==0) // ni kita panggil function tadi
{
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-sl*Point,Ask+tp*Point,"NamaEA",MagicNumber,0,Blue);
}
return(0);
}

kirenye kalau kite nk letak first arahan dkt sesuatu dalam ea gune code ni la ye bro?

nk tanye bro ni,pe maksub ni kod ni= int init()
biasenye ape kite buat or letak lam area ni?

ini plk untuk ape = return(0); dan ini //-------------------------
pastu kenape kene letak yg ni eik dkt hujung2 dia,= }
 
Last edited:
int init() berfungsi sekali sahaja masa kita mula2 attach ea

boleh letak apa2 function sukahati kita, tetapi ianya hanya sekali berfungsi sahaja pada mula2. betul ke tak penerangan aku ni hehehehe...

contoh sy nak letak konfigurasi utk saiz lot

int init()
{
minimum_lot = MarketInfo(Symbol(),MODE_MINLOT);
if(minimum_lot==0.01) decim=2;
if(minimum_lot==0.1) decim=1;
return(0);
}

jadi kalau kita dah buat function ni, ea kita akan automatik trade ikut broker nyer minimun lot.
cara guna camni, letak kat ordersend function kat lot dia cam ni
ordersend(Symbil(),OP_BUY,NormalizeDouble(lot,decim),Ask........);
 
bahasa C ne... lupa da benda ne semua...
 
Salam rakan rakan senior...

Nak tanya je.... Ada tak indi yang bolek kita nilai candle (open -close)

newbi tumpang tanya je.... Sebelum ni pernah ternampak. Tapi lupa dah pula link nya.....
 
Salam rakan rakan senior...

Nak tanya je.... Ada tak indi yang bolek kita nilai candle (open -close)

newbi tumpang tanya je.... Sebelum ni pernah ternampak. Tapi lupa dah pula link nya.....

rasanya masta aura88 ada indi nih. cuba tanya dia. tak pon tanya masta bidara
 
secara lazimnya terdapat 3 function di dalam EA yang akan dipanggil oleh terminal secara automatik

Code:
int init ()
{	
	[COLOR="gray"]//-- code anda[/COLOR]
	[COLOR="gray"]//-- dipanggil ketika anda attach EA ke chart[/COLOR]
	return(0);
}

Code:
int deinit ()
{	
	[COLOR="gray"]//-- code anda[/COLOR]
	[COLOR="gray"]//-- dipanggil ketika anda remove EA daripada chart[/COLOR]
	return(0);
}

Code:
int start ()
{
	[COLOR="gray"]//-- code anda[/COLOR]
	[COLOR="gray"]//-- dipanggil setiap kali ada new tick coming.[/COLOR]
	return(0);
}

Walaubagaimanapun, selain daripada 3 function di atas, kita juga boleh create custom function yang lain.
Custom function boleh di panggil hanya daripada mana2 3 function di atas.

Untuk create custom function, perkara asas yang kita perlu kenal ialah jenis functions/types

Jenis2 function ialah:
int = return integer, eg: return (123);
double = return type number yang ada decimal, eg: return (123.0);
string = return type string, mesti ada simbol " " , eg return ("123");
bool = return type hanya true atau false, eg return (true);
color = return type color, eg return (red);
datetime = return type datetime, eg return (D'2011.07.21 12:15');
void = tak perlu return apa-apa

Kalau anda perhatikan ke 3 3 function init,deinit dan start merupakan jenis int, sebabtu sebelum curly bracket "}" terakhir, masing2 perlu ada return(0); nak letak return (1); ataupun return (-1); pun boleh, tapi jangan pulak letak return (1.0);, sebab 1.0 bukanlah integer tetapi double(ada decimal).

Di bawah ni contoh function string,
perhatikan juga format function dan format apply value kepada variable. Setiap syntax ada ";" kat hujung
Setiap open bracket "(" atau curly bracket "{" mesti ditutup semula ")" dan "}".

Code:
string NamaSaya ()
{
	string myName = "Nama Saya Aiman."; [COLOR="Gray"]//-- declare variable type dan value kepada 'myName'[/COLOR]
	return (myName);                    [COLOR="gray"]//-- return type mesti string, myName merupakan string variable[/COLOR]
}

Saya akan panggil function NamaSaya() di dalam start()
Keseluruhan Ea saya akan jadi macam ni

Code:
int init ()
{	
	[COLOR="gray"]// -- [/COLOR]
	return(0);
}

int deinit ()
{	
	Comment ("");  [COLOR="gray"]//-- padam comment bila remove EA daripada chart[/COLOR]
		       [COLOR="gray"]//-- kalau tak letak, text comment akan kekal selepas anda remove EA[/COLOR]
	return(0);
}

int start ()
{
	string textComment = NamaSaya(); [COLOR="gray"]//-- declare type dan letak value dengan cara panggil custom function NamaSaya()[/COLOR]

	Comment (textComment);  [COLOR="gray"]//-- display comment pada chart (belah kiri atas)[/COLOR]
	return(0);
}

[COLOR="Gray"]//-- My custom function[/COLOR]
string NamaSaya ()
{
	string myName = "Nama Saya Aiman."; [COLOR="gray"]//-- declare type dan letak value kepada variable 'myName'[/COLOR]
	return (myName);                    [COLOR="gray"]//-- return type mesti string, myName merupakan string variable[/COLOR]
}

Untuk mempelajari syntax MQL, pada saya tempat terbaik ada pada metaeditor itu sendiri.
open navigator atau press ctrl+D di dalam metaeditor, di bawah navigator terdapat 3 tab (files, dictionary dan search)
Semua syntax mql beserta contoh format dah ada di dictionary
 
Last edited:
contoh Aiman bagi ni memang cukup baik untuk create custom function. Kalau rajin dan saja nak syok-syok, boleh cuba modify code aiman tu jadi camni.

Code:
int init ()
{	
	// -- 
	return(0);
}

int deinit ()
{	
	Comment ("");  //-- padam comment bila remove EA daripada chart
		       //-- kalau tak letak, text comment akan kekal selepas anda remove EA
	return(0);
}

int start ()
{
	[COLOR="Red"]Comment (NamaSaya()); [/COLOR] //-- display comment pada chart (belah kiri atas)
	return(0);
}

//-- My custom function
string NamaSaya ()
{
	string myName = "Nama Saya Aiman."; //-- declare type dan letak value kepada variable 'myName'
	return (myName);                    //-- return type mesti string, myName merupakan string variable
}

Maksudnya custom function anda boleh terus jadi sebagai passing parameter...
 
Mari kita belajar EA forex hacked@masyukkkkkkkkk

Code:
void ManageBuy() {
   int l_datetime_0 = 0;
   double l_ord_open_price_4 = 0;
   double l_ord_lots_12 = 0;
   double l_ord_takeprofit_20 = 0;
   int l_cmd_28 = -1;
   int l_ticket_32 = 0;
   int l_pos_36 = 0;
   for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
      OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber() != MagicNo || OrderType() != OP_BUY) continue;
      if (OrderOpenTime() > l_datetime_0) {
         l_datetime_0 = OrderOpenTime();
         l_ord_open_price_4 = OrderOpenPrice();
         l_cmd_28 = OrderType();
         l_ticket_32 = OrderTicket();
         l_ord_takeprofit_20 = OrderTakeProfit();
      }
      if (OrderLots() > l_ord_lots_12) l_ord_lots_12 = OrderLots();
   }
   double l_isar_40 = iSAR(NULL, 0, Step, Max, 0);
   double l_ima_48 = iMA(NULL, 0, g_period_148, gi_152, g_ma_method_156, g_applied_price_160, 0);
   int li_56 = MathRound(MathLog(l_ord_lots_12 / Lots) / MathLog(Multiplier)) + 1.0;
   if (li_56 < 0) li_56 = 0;
   g_lots_140 = NormalizeDouble(Lots * MathPow(Multiplier, li_56), gi_184);
   if ((li_56 == 0 && l_isar_40 < l_ima_48 && DayOfWeek() < Jumlah_Hari_Trade) || (li_56 == 0 && l_isar_40 < l_ima_48 && DayOfWeek() == Jumlah_Hari_Trade && Hour() <= Waktu_Tamat)) OpenBuy();
   if (l_ord_open_price_4 - Ask > Pips * Point && li_56 < MaxTrades) {
      OpenBuy();
      return;
   }
   for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
      OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
      if (OrderMagicNumber() != MagicNo || OrderType() != OP_BUY || OrderTakeProfit() == l_ord_takeprofit_20 || l_ord_takeprofit_20 == 0.0) continue;
      OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), l_ord_takeprofit_20, 0, Red);
   }
}
 

Latest Posts

Live Forex Chart

Currency
Rates
EUR / USD
1.14835
USD / JPY
157.955
GBP / USD
1.33710
USD / CHF
0.82461
USD / CAD
1.39976
EUR / JPY
181.388
AUD / USD
0.71250
Back
Top
Log in Register