iCustom

Jika anda memiliki indikator sendiri, dan ingin membuat EA berdasarkan indikator tersebut, maka ada 2 solusi yang bisa dipakai.

1) menggunakan function iCustom()
2) mengembed algoritma indikator ke EA nya

menggunakan iCustom lebih simpel dan rapi daripada mengembed algoritma indikator ke dalam EA (karena EA nya nanti jadi panjang codingnya)..

fungsi lengkapnya :

Code:
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
ok, sebagai contoh, gw punya indikator range1 (gw attach ex4 nya). indikator ini menampilkan bar range seperti ini :



nah, gw mau mengimplementasikan nilai dari indikator ini (range=absolute(high-low)) ke EA gw. 

kita pake aja contoh EA yang di bagian 8.

7) Posisi baru dibuka kalau sedang tidak ada posisi, dan juga tidak trade di hari Jumat (gw tambahi rulenya)
gw tambahi jadi

7) Posisi baru dibuka kalau sedang tidak ada posisi, dan juga tidak trade di hari Jumat, dan range candle jam sekarang dan jam sebelumnya tidak boleh lebih dari 100 pip.
nah, gimana caranya untuk mendapatkan nilai dari iCustom..

contoh sekarang, custom indikatornya bernama range1.ex4 (ada di folder expert/indicator)

maka, syntaxnya begini :

[code]
double range0, range1=0;
range0=iCustom(Symbol(),0,"range1",0,0); //range pada candle jam sekarang
range1=iCustom(Symbol(),0,"range1",0,1); //range pada candle jam sebelom sekarang
[code]

sedangkan di EA nya, asalnya :

Code:
bool bolehTrade()
{
   //kalau jumat, EA ga trade ; atau kalau ada order terbuka, EA juga ga trade
   if (DayOfWeek()==5 || OrdersTotal()>0) { return (false); } else { return(true); }
}
ditambahi jadi begini

Code:
bool bolehTrade()
{
   //kalau jumat, EA ga trade ; atau kalau ada order terbuka, EA juga ga trade
   //klo range diatas 100 untuk candle sekarang dan sebelomnya, juga ga trade
   range0=iCustom(Symbol(),0,"range1",0,0); //range pada candle jam sekarang
   range1=iCustom(Symbol(),0,"range1",0,1); //range pada candle jam sebelom sekarang
   if (DayOfWeek()==5 || OrdersTotal()>0 || range0>100 || range1>100 ) { return (false); } else { return(true); }
}
gampang kan 

pada iCustom :
Symbol() = symbol dimana ea dipasang
0 = timeframe dimana ea dipasang (kalau mau fix 30 menit, ya isi aja PERIOD_M30)
range1 = nama ex4 custom indikatornya (range1.ex4)
0 = mode
0,1 (paling belakang) = shift (penjelasannya ada di bagian fungsi indikator)

mode

Mode dalam iCustom itu untuk memilih mendapatkan nilai dari buffer yang mane (buffer 0-7)

kebetulan indikator range1 tadi cuman 1 kluaran outputnya, jadi ya pilih mode 0



contoh indikator yang kasih keluaran 6 output : (gw ambil dari indikator member di bagian 8)



maka klo mo ambil nilai DownTrendLine misalnya, ya mode nya diisi 5

Code:
iCustom(Symbol(),0,"namaindi",........(inputan).....,5,0)
nah, kebetulan juga indikator range1 tadi tidak ada inputan, bagaimana klo indikatornya ada inputan, seperti yang di bagian 8 (Bagian 8 - Menyusun EA)



nah.... jadi begitu 
paramater2 inputannya ditaruh seperti itu (garis2 biru) (moga2 ngerti klo liat gambarnya)...
terus mode yang gw maksud itu untuk mendapatkan nilai yang gw kasih garis ijo

iCustom ini cukup luas penerapannya.. tapi basicnya ya seperti contoh2 diatas..

klo ada pertanyaan silakan di post..