Show 40 post(s) from this thread on one page Show 40 post(s) from this thread on one page
01-07-2011 03:30 PM 01-07-2011 03:30 PM
01-07-2011 03:41 PM 01-07-2011 03:41 PM [HOT DISCUSS] Coding in MQL4 !
[HOT DISCUSS] Coding in MQL4 !
Printable View Printable View
Givonly
Givonly
[HOT DISCUSS] Coding in MQL4 ! [HOT DISCUSS] Coding in MQL4 !
Ini thread saya bikin
Ini thread saya bikin berangkat dari postingan Broberangkat dari postingan Bro hermit88hermit88di postingan2 sebelumnya yangdi postingan2 sebelumnya yang sering ngajak diskusi tentang MQL4.
sering ngajak diskusi tentang MQL4. Posting terakhir BroPosting terakhir Brohermit88hermit88di thread sebelahdi thread sebelahrasanya koqrasanya koq mending dibikin thread tersendiri biar thread sebelah itu
mending dibikin thread tersendiri biar thread sebelah itu ngga tambah gemuk & semakin jadingga tambah gemuk & semakin jadi gado2 :D
gado2 :D
Selain itu agar lebih
Selain itu agar lebih fokus & nyaman diskusinya... :ok:fokus & nyaman diskusinya... :ok: Oya, thread ini bukan
Oya, thread ini bukan bengkel EA/indikabengkel EA/indikator yang ditujukan untuk tor yang ditujukan untuk "mereparasi"mereparasi" indi/EA error." indi/EA error. Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi yang sedang BELAJAR bikin Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi yang sedang BELAJAR bikin EA/indika
EA/indikator hasil tor hasil coding sendiri / coding sendiri / coba2 ide sendiri.. :accute:coba2 ide sendiri.. :accute:
Ingin belajar tidak usah ijin & basa-basi, chit-chat & junk post tidak ditoleransi! :rules: Ingin belajar tidak usah ijin & basa-basi, chit-chat & junk post tidak ditoleransi! :rules: Btw, saya sendiri masih sangat awam di bidang coding MQL4 ini.
Btw, saya sendiri masih sangat awam di bidang coding MQL4 ini. Karena itu bagi para
Karena itu bagi para master yang udah sering/hobi oprek atau master yang udah sering/hobi oprek atau utak-atik EA, sangat diharapkanutak-atik EA, sangat diharapkan saran dan bantuannya demi membantu sesama member forum yang
saran dan bantuannya demi membantu sesama member forum yang ingin belajar.ingin belajar. Regards, Regards, :respect: :respect: Givo. Givo.
Givonly
Givonly
Langsung menyambung pertanyaan sebelumnya: Langsung menyambung pertanyaan sebelumnya:
Quote: Quote:
Label itu termasuk object di
Label itu termasuk object di MQL4, dengan penulisannya menggunakan koordinat layar X & Y.MQL4, dengan penulisannya menggunakan koordinat layar X & Y. Ke contoh aja ya biar mudah.
Ke contoh aja ya biar mudah. Ini adalah procedure
Ini adalah procedure TulisTulis yang saya bikin sekali, terus yang saya bikin sekali, terus biasa saya pake untuk biasa saya pake untuk EA/indikaEA/indikator baru.tor baru. Enak kalo udah dibikin procedure, tinggal copas :p
Enak kalo udah dibikin procedure, tinggal copas :p PHP Code:
PHP Code:
//+---//+---+---+ void Tulis
void Tulis((string namateksstring namateks,, string teksstring teks,, color warna,color warna, int pojokint pojok,, int posxint posx,, int posint pos {
{
ObjectCreate
ObjectCreate((namateksnamateks,, OBJ_LABELOBJ_LABEL,, 00,, 00,, 00);); ObjectSetText
ObjectSetText((namateksnamateks,, teksteks,, Ukuran_FontUkuran_Font,, Jenis_FontJenis_Font,, warnawarna);); ObjectSet
ObjectSet((namateksnamateks,, OBJPROP_CORNEROBJPROP_CORNER,, Letak_PojokLetak_Pojok);); ObjectSet
ObjectSet((namateksnamateks,, OBJPROP_XDISTANCEOBJPROP_XDISTANCE,, posxposx);); ObjectSet
ObjectSet((namateksnamateks,, OBJPROP_YDISTANCEOBJPROP_YDISTANCE,, posyposy););
Page 1 of 21
Page 1 of 21 11 22 33 1111 ... LastLast
Originally Posted by
Originally Posted by hermit88 hermit88 untuk fungsi label sendiri
01-07-2011 06:39 PM 01-07-2011 06:39 PM }
}
Itu baris procedure taroh
Itu baris procedure taroh aja di bawah/akhir baris program.aja di bawah/akhir baris program. Ntar kita tinggal "manggil" dia, contohnya seperti ini:
Ntar kita tinggal "manggil" dia, contohnya seperti ini: PHP Code:
PHP Code: Tulis
Tulis(("Nama Programmer""Nama Programmer",, "hermit88""hermit88",, Red,Red, 11,, 55,, 55););
Maka ntar hasilnya akan muncul teks di pojok layar sebelah kanan atas berwarna merah, sesuai Maka ntar hasilnya akan muncul teks di pojok layar sebelah kanan atas berwarna merah, sesuai dengan settingan yang kita buat
dengan settingan yang kita buat di procedure sebelumnya.di procedure sebelumnya. Jadi kalo ingin mengubah format tulisan, y
Jadi kalo ingin mengubah format tulisan, y a edit aja a edit aja procedure-nyaprocedure-nya.. Catatan untuk pojok/corner:
Catatan untuk pojok/corner: 0 - kiri atas 0 - kiri atas 1 - kanan atas 1 - kanan atas 2 - kiri bawah 2 - kiri bawah 3 - kanan bawah 3 - kanan bawah
Sedangkan koordinat X & Y relatif terhadap corner ybs. Sedangkan koordinat X & Y relatif terhadap corner ybs. Semoga cukup jelas.. :)
Semoga cukup jelas.. :)
hermit88
hermit88
Quote: Quote:
Originally Posted by
Originally Posted by Givonly Givonly
Langsung menyambung pertanyaan sebelumnya: Langsung menyambung pertanyaan sebelumnya:
Label itu termasuk object di
Label itu termasuk object di MQL4, dengan penulisannya menggunakan koordinat layar MQL4, dengan penulisannya menggunakan koordinat layar X & Y.
X & Y.
Ke contoh aja ya biar mudah. Ke contoh aja ya biar mudah. Ini adalah procedure
Ini adalah procedure Tulis Tulis yang saya bikin sekali, terus biasa saya pake untuk yang saya bikin sekali, terus biasa saya pake untuk EA/indikat
EA/indikator or baru.baru.
Enak kalo udah dibikin procedure, tinggal copas :p Enak kalo udah dibikin procedure, tinggal copas :p
PHP Code: PHP Code:
//+---//+---+----+ void Tulis
void Tulis((string namateksstring namateks,, string teksstring teks,, color warnacolor warna,, int pojokint pojok,, int posx int posx ,, intint {
{
ObjectCreate
ObjectCreate((namateksnamateks,, OBJ_LABELOBJ_LABEL,, 00,, 00,, 00);); ObjectSetText
ObjectSetText((namateksnamateks,, teksteks,, Ukuran_FontUkuran_Font,, Jenis_FontJenis_Font,, warnawarna);); ObjectSet
ObjectSet((namateksnamateks,, OBJPROP_CORNEROBJPROP_CORNER,, Letak_PojokLetak_Pojok);); ObjectSet
ObjectSet((namateksnamateks,, OBJPROP_XDISTANCE OBJPROP_XDISTANCE ,, posx posx );); ObjectSet
ObjectSet((namateksnamateks,, OBJPROP_YDISTANCE OBJPROP_YDISTANCE ,, posy posy );); }
}
Itu baris procedure taroh aja
Itu baris procedure taroh aja di bawah/akhir baris program.di bawah/akhir baris program. Ntar kita tinggal "manggil" dia, contohnya seperti ini: Ntar kita tinggal "manggil" dia, contohnya seperti ini:
PHP Code: PHP Code: Tulis
Tulis(("Nama Programmer""Nama Programmer",, "hermit88""hermit88",, Red Red ,, 11,, 55,, 55););
Maka ntar hasilnya akan muncul teks di pojok layar sebelah kanan atas berwarna Maka ntar hasilnya akan muncul teks di pojok layar sebelah kanan atas berwarna merah, sesuai dengan settingan yang
merah, sesuai dengan settingan yang kita buat di procedure sebelumnya.kita buat di procedure sebelumnya. Jadi kalo ingin mengubah format tulisan,
:happy: akhirnya ada solusi biar :o (mata) kagak belok :D :D :happy: akhirnya ada solusi biar :o (mata) kagak belok :D :D 1. Terimakasih sudah dibuatkan thread khusus ini.
1. Terimakasih sudah dibuatkan thread khusus ini. Code:
Code:
//+---//+---+---+ //|
//| Tampilkan Tampilkan Nilai Nilai SMA.mq4 SMA.mq4 || //|
//| hermit88 hermit88 ||
//|
//| http://indo.http://indo.mt5.com/membmt5.com/member.php?3846-herer.php?3846-hermit88 mit88 ||
//+---//+---+---+ #property copyright "hermit88"
#property copyright "hermit88" #property
#property link link "http://indo"http://indo.mt5.com/memb.mt5.com/member.php?3846-heer.php?3846-hermit88"rmit88" extern bool TampilkanCurrentSMA = true;
extern bool TampilkanCurrentSMA = true; extern
extern int int No1_SMA_Berapa No1_SMA_Berapa = = 100;100; extern
extern int int No2_SMA_Berapa No2_SMA_Berapa = = 200;200; int
int init() init() {return(0);}{return(0);} int
int deinit() deinit() {return(0);}{return(0);} int start() int start() { { if(TampilkanCurrentSMA) if(TampilkanCurrentSMA) { { Tulis("No1
Tulis("No1_SMA_Berapa", _SMA_Berapa", StringConcateStringConcatenate("SMA nate("SMA ",No1_SMA_Ber",No1_SMA_Berapa,"apa," SAAT INI @
SAAT INI @ ",DoubleToSt
",DoubleToStr(iMA(NULL,0,Nr(iMA(NULL,0,No1_SMA_Berapao1_SMA_Berapa,0,MODE_SMA,PR,0,MODE_SMA,PRICE_CLOSE,0),ICE_CLOSE,0),4)),4)), Red, 2, 5, 40);
Red, 2, 5, 40); Tulis("No2
Tulis("No2_SMA_Berapa", _SMA_Berapa", StringConcateStringConcatenate("SMA nate("SMA ",No2_SMA_Ber",No2_SMA_Berapa,"apa," SAAT INI @
SAAT INI @ ",DoubleToSt
",DoubleToStr(iMA(NULL,0,Nr(iMA(NULL,0,No2_SMA_Berapao2_SMA_Berapa,0,MODE_SMA,PR,0,MODE_SMA,PRICE_CLOSE,0),ICE_CLOSE,0),4)),4)), Red, 2, 5, 5); Red, 2, 5, 5); } } if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) return(0); return(0); } } //+---//+---+---+ void Tulis(string namateks, string teks, color warna, int
void Tulis(string namateks, string teks, color warna, int pojok, intpojok, int posx, int posy)
posx, int posy) {
{
ObjectCrea
ObjectCreate(namateks, OBJ_LABEL, 0, 0, te(namateks, OBJ_LABEL, 0, 0, 0);0); ObjectSetT
ObjectSetText(namateks, teks, 16, "Times ext(namateks, teks, 16, "Times New Roman", Red);New Roman", Red); ObjectSet(
ObjectSet(namateks, namateks, OBJPROP_CORNEOBJPROP_CORNER, R, pojok);pojok); ObjectSet(
ObjectSet(namateks, namateks, OBJPROP_XDISTOBJPROP_XDISTANCE, ANCE, posx);posx); ObjectSet(
ObjectSet(namateks, namateks, OBJPROP_YDISTOBJPROP_YDISTANCE, ANCE, posy);posy); }
}
2. jadi penerapannya kurang lebih :accute: kan 2. jadi penerapannya kurang lebih :accute: kan bro ?bro ? 3. akan saya
3. akan saya pelajari lebih lanjut kalo bingung pastinya tanya lagi....pelajari lebih lanjut kalo bingung pastinya tanya lagi.... btw,
btw,
terimakasih kanjeng guru Givonly
terimakasih kanjeng guru Givonly udah berkenan membimbing pelajaran coding sayaudah berkenan membimbing pelajaran coding saya Catatan untuk pojok/corner:
Catatan untuk pojok/corner: 0 - kiri atas 0 - kiri atas 1 - kanan atas 1 - kanan atas 2 - kiri bawah 2 - kiri bawah 3 - kanan bawah 3 - kanan bawah
Sedangkan koordinat X & Y relatif terhadap corner ybs. Sedangkan koordinat X & Y relatif terhadap corner ybs. Semoga cukup jelas.. :)
01-07-2011 07:18 PM 01-07-2011 07:18 PM 01-09-2011 02:30 AM 01-09-2011 02:30 AM :drink: :bravo: :drink: :bravo:
Givonly
Givonly
Yup begitu. Yup begitu.Tapi alangkah baiknya jika dipotong, jangan panjang2 kayak uler Tapi alangkah baiknya jika dipotong, jangan panjang2 kayak uler :p:p
Code: Code:
StringConcat
StringConcatenate("SMA ",No2_SMA_Berapaenate("SMA ",No2_SMA_Berapa," SAAT ," SAAT INI @INI @ ",DoubleToSt
",DoubleToStr(iMA(NULL,0,Nr(iMA(NULL,0,No2_SMA_Berapao2_SMA_Berapa,0,MODE_SMA,PR,0,MODE_SMA,PRICE_CLOSE,0),ICE_CLOSE,0),4))4))
PHP Code: PHP Code: iMA
iMA((NULLNULL,,00,,No2_SMA_BerapaNo2_SMA_Berapa,,00,,MODE_SMAMODE_SMA,,PRICE_CLOSEPRICE_CLOSE,,00))
Kasih variabel aja biar enak
Kasih variabel aja biar enak bacanya :accute:bacanya :accute:
hermit88
hermit88
Quote: Quote:
lagi seneng uler uleran gan, kan tahun baru lagi seneng uler uleran gan, kan tahun baru tapi lain kali pasti ganti pake variable aja deh, tapi lain kali pasti ganti pake variable aja deh, nurut ama gurunya biar nggak di hukum
nurut ama gurunya biar nggak di hukum:D :D :D:D :D :D tanya lagi ahh... :woo: cari cari
tanya lagi ahh... :woo: cari cari jawaban sendiri kagak nemu yang pasti :woo:jawaban sendiri kagak nemu yang pasti :woo: apa bedanya :pleeease:
apa bedanya :pleeease: 1. 1. return;return; 2. 2. return(0);return(0); 3. 3. return(1);return(1); 4. int CalcSum(int
4. int CalcSum(int xx, int, int yy)) {{
return(x+y); return(x+y);
Originally Posted by
Originally Posted by Givonly Givonly Yup begitu.
Yup begitu.
Tapi alangkah baiknya jika dipotong, jangan panjang2 kayak uler Tapi alangkah baiknya jika dipotong, jangan panjang2 kayak uler :p :p
Code: Code:
StringConcate
StringConcatenate("SMA ",No2_SMA_Berapnate("SMA ",No2_SMA_Berapa," SAAT a," SAAT INI @INI @ ",DoubleToStr
",DoubleToStr(iMA(NULL,0,N(iMA(NULL,0,No2_SMA_Berapo2_SMA_Berapa,0,MODE_SMA,PRa,0,MODE_SMA,PRICE_CLOSE,0)ICE_CLOSE,0),4)),4))
PHP Code: PHP Code: iMA
iMA ((NULLNULL,,00,,No2_SMA_BerapaNo2_SMA_Berapa,,0,0,MODE_SMA MODE_SMA ,,PRICE_CLOSE PRICE_CLOSE ,,00))
Kasih variabel aja biar enak
01-09-2011 08:29 AM 01-09-2011 08:29 AM }}
Givonly
Givonly
Quote: Quote:Haha, botol ketemu tutup.. :D Haha, botol ketemu tutup.. :D
Sebenarnya dari coding Bro yang sebelumnya, saya ingin komen bagian yang ini: Sebenarnya dari coding Bro yang sebelumnya, saya ingin komen bagian yang ini:
Code: Code: ... ... if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) return(0); return(0); } }
Menurut saya, bagian
Menurut saya, bagian if(!TampilkanCurrentSMA)if(!TampilkanCurrentSMA)itu tidak perlu.itu tidak perlu. Oke, jadi begini.
Oke, jadi begini. Operator
Operator returnreturnitu berfungsi MENGHENTIKAN fungsi yang bersangkutan, dengan mengembalikanitu berfungsi MENGHENTIKAN fungsi yang bersangkutan, dengan mengembalikan nilai tertentu yang diletakkan di
nilai tertentu yang diletakkan di dalam tanda kurungnya.dalam tanda kurungnya. Tapi kita tahu, tidak
Tapi kita tahu, tidak setiap FUNCTION itu menghasilkan nilai. Ada yang cuma melakukan perintah,setiap FUNCTION itu menghasilkan nilai. Ada yang cuma melakukan perintah, tanpa ada output-nya.
tanpa ada output-nya.
Kebetulan function dari contoh sebelumnya (
Kebetulan function dari contoh sebelumnya (function function TulisTulis) PAS banget sebagai contoh. Itu) PAS banget sebagai contoh. Itu
adalah contoh FUNCTION yang tanpa output nilai, dia hanya menghasilkan perintah untuk menulis adalah contoh FUNCTION yang tanpa output nilai, dia hanya menghasilkan perintah untuk menulis text saja.
text saja.
Nah dalam MQL: Nah dalam MQL:
Function
Function yang menghasilkan nilai selalu didahului dengan tipe data-nya (int, double,yang menghasilkan nilai selalu didahului dengan tipe data-nya (int, double, string, dll) sesuai dengan
string, dll) sesuai dengan nilai yang ingin dicari.nilai yang ingin dicari. Sedangkan
Sedangkan funnction funnction yang tidak menghasilkan nilai tertentu, didahului dengan tipeyang tidak menghasilkan nilai tertentu, didahului dengan tipe data
data voidvoid(seperti contoh di atas).(seperti contoh di atas).
Ke pertanyaan: Ke pertanyaan:
return; return;
Nah, ini contoh
Nah, ini contoh returnreturnyang diletakkan diyang diletakkan di function function yang tanpa output nilai. Broyang tanpa output nilai. Bro Originally Posted by
Originally Posted by hermit88 hermit88
lagi seneng uler uleran gan, kan tahun baru lagi seneng uler uleran gan, kan tahun baru tapi lain kali pasti ganti pake variable aja deh, tapi lain kali pasti ganti pake variable aja deh, nurut ama gurunya biar nggak di hukum
nurut ama gurunya biar nggak di hukum :D :D :D :D :D :D
tanya lagi ahh... :woo: cari cari jawaban sendiri kagak nemu yang pasti :woo: tanya lagi ahh... :woo: cari cari jawaban sendiri kagak nemu yang pasti :woo: apa bedanya :pleeease:
apa bedanya :pleeease: 1. 1. return; return; 2. 2. return(0); return(0); 3. 3. return(1); return(1); 4. int CalcSum(int
4. int CalcSum(int x x , int , int y y ) ) { { return(x+y); return(x+y); } }
01-09-2011 02:46 PM 01-09-2011 02:46 PM perhatikan ngga ada tanda kurungnya
perhatikan ngga ada tanda kurungnya khan?khan? Nah
Nah returnreturnyang seperti ini BOLEH tidak ditulis, makanya Bro yang seperti ini BOLEH tidak ditulis, makanya Bro liat dariliat dari function function TulisTulis yang saya bikin sebelumnya, itu di bagian akhir ngga saya kasih
yang saya bikin sebelumnya, itu di bagian akhir ngga saya kasih returnreturnwong nggawong ngga ada gunanya hehe :p
ada gunanya hehe :p return(0);
return(0); ini
ini returnreturnyang menghasilkan output 0 atauyang menghasilkan output 0 atau falsefalse.. return(1);
return(1); ini
ini returnreturnyang menghasilkan output 1 atauyang menghasilkan output 1 atau truetrue.. int CalcSum(int
int CalcSum(int xx, int, int yy)) {{
return(x+y); return(x+y); }}
Nah, perhatikan ini contoh
Nah, perhatikan ini contoh function function yang menghasilkan output nilai. Apa yang menghasilkan output nilai. Apa nilainya?nilainya? Yakni
Yakni x+y x+y..
Oya, sebagai catatan. Oya, sebagai catatan.
Dalam bahasa pemrograman yang lain,
Dalam bahasa pemrograman yang lain, biasanyabiasanya function function tanpa nilai disebut prosedur (tanpa nilai disebut prosedur (procedure procedure )) sedangkan yang ada output nilai-nya disebut
sedangkan yang ada output nilai-nya disebut fungsi (fungsi (function function ). Tapi kalo di MQL ini dan ). Tapi kalo di MQL ini dan untuk untuk diskusi selanjutnya, semua disebut
diskusi selanjutnya, semua disebut function function aja.aja.
hermit88
hermit88
Quote: Quote:
Originally Posted by
Originally Posted by Givonly Givonly Haha, botol ketemu tutup.. :D Haha, botol ketemu tutup.. :D
Sebenarnya dari coding Bro yang sebelumnya, saya ingin
Sebenarnya dari coding Bro yang sebelumnya, saya ingin komen bagian yang ini: komen bagian yang ini: Code: Code: ... ... if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) return(0); return(0); } }
Menurut saya, bagian
Menurut saya, bagian if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) itu tidak perlu.itu tidak perlu. Oke, jadi begini.
Oke, jadi begini. Operator
Operator return return itu berfungsi itu berfungsi MENGHEMENGHENTIKAN fungsi yang NTIKAN fungsi yang bersangkutan, dengan bersangkutan, dengan mengembali
mengembalikan nilai tertentu kan nilai tertentu yang diletakkan di dalam tyang diletakkan di dalam tanda kurungnya.anda kurungnya. Tapi kita tahu, tidak
Tapi kita tahu, tidak setiap FUNCTION itu menghasilkasetiap FUNCTION itu menghasilkan nilai. Ada yang n nilai. Ada yang cuma melakukan cuma melakukan perintah, tanpa ada output-nya.
perintah, tanpa ada output-nya. Kebetulan function dari contoh
Kebetulan function dari contoh sebelumnya (function sebelumnya (function Tulis Tulis ) PAS bang ) PAS banget sebagai cet sebagai contoh.ontoh. Itu adalah contoh FUNCTION yang tanpa output
Itu adalah contoh FUNCTION yang tanpa output nilai, dia hanya menghasilkan perintah nilai, dia hanya menghasilkan perintah untuk menulis text saja.
untuk menulis text saja. Nah dalam MQL:
Nah dalam MQL:
Function yang menghasilkan nilai selalu didahului
Function yang menghasilkan nilai selalu didahului dengan tipe data-nya dengan tipe data-nya (int, double, string, dll) sesuai dengan
(int, double, string, dll) sesuai dengan nilai yang ingin dicari.nilai yang ingin dicari. Sedangkan funnction yang tidak
Sedangkan funnction yang tidak menghasilkan nilai tertentu, didahului menghasilkan nilai tertentu, didahului dengan tipe data
dengan tipe data void void (seperti contoh di atas).(seperti contoh di atas).
Ke pertanyaan: Ke pertanyaan:
return; return;
Nah, ini contoh
Nah, ini contoh return return yang diletakkan di function yang tanpa yang diletakkan di function yang tanpa output nilai.output nilai. Bro perhatikan ngga ada tanda kurungnya khan?
Bro perhatikan ngga ada tanda kurungnya khan? Nah
01-09-2011 03:04 PM 01-09-2011 03:04 PM jika jika Code: Code: int CalcSum(int
int CalcSum(int xx, int, int yy)) { { return(x+y); return(x+y); } }
saya rubah menjadi saya rubah menjadi
Code: Code:
int CalcSum
int CalcSum(int(int x=3x=3, int, int y=5y=5)) { { return(x+y); return(x+y); } }
maka pada function
maka pada function int CalcSumint CalcSum a. menghasilkan nilai 8 a. menghasilkan nilai 8
b. menghasilkan nilai x=3 dan y=5 b. menghasilkan nilai x=3 dan y=5 c. menghasilkan nilai x=0 dan y=0 c. menghasilkan nilai x=0 dan y=0 d. menghasilkan nilai x=1 dan y=1 d. menghasilkan nilai x=1 dan y=1 e. kalau salah semua
e. kalau salah semua berapa nilai yang dihasilkan?berapa nilai yang dihasilkan? mana yang benar guru? :woo:
mana yang benar guru? :woo:
Givonly
Givonly
Quote: Quote:
function
function Tulis Tulis yang saya bikin sebelumnya, itu di yang saya bikin sebelumnya, itu di bagian akhir ngga saya bagian akhir ngga saya kasih
kasih return return wong ngga ada gunanya hehe :p wong ngga ada gunanya hehe :p return(0);
return(0); ini
ini return return yang menghasilkan output 0 atau yang menghasilkan output 0 atau false false .. return(1);
return(1); ini
ini return return yang menghasilkan output 1 atau yang menghasilkan output 1 atau true true .. int CalcSum(int
int CalcSum(int x x , int , int y y ) ) { { return(x+y); return(x+y); } }
Nah, perhatikan ini contoh function yang
Nah, perhatikan ini contoh function yang menghasilkmenghasilkan output nilai. an output nilai. Apa Apa nilainya? Yakni
nilainya? Yakni x+y x+y ..
Oya, sebagai catatan. Oya, sebagai catatan.
Dalam bahasa pemrograman yang lain, biasanya function tanpa nilai disebut prosedur Dalam bahasa pemrograman yang lain, biasanya function tanpa nilai disebut prosedur (procedure) sedangkan yang ada output nilai-nya disebut fungsi (function). Tapi kalo (procedure) sedangkan yang ada output nilai-nya disebut fungsi (function). Tapi kalo di di MQL ini dan untuk diskusi selanjutnya, semua disebut function aja.
MQL ini dan untuk diskusi selanjutnya, semua disebut function aja.
Originally Posted by
Originally Posted by hermit88 hermit88 jika
jika Code: Code:
int CalcSum(int
int CalcSum(int x x , int, int y y )) { { return(x+y); return(x+y); } }
Quote: Quote:
itu tidak lazim (kalo tidak disebut sebagai kurang tepat :p) itu tidak lazim (kalo tidak disebut sebagai kurang tepat :p) Jadi function itu ibarat mesin
Jadi function itu ibarat mesin yang siap menerima input, tapi input yang siap menerima input, tapi input tersebut jangan langsungtersebut jangan langsung dimasukkan ke function secara langsung.
dimasukkan ke function secara langsung. Jadi begini Jadi begini Code: Code: int a=3; int a=3; int b=5; int b=5;
int c=CalcSum(3,5); //perhatikan inilah baris yang
int c=CalcSum(3,5); //perhatikan inilah baris yang memanggil functionmemanggil function CalcSum & dimasukkan ke variabel c.
CalcSum & dimasukkan ke variabel c. saya rubah menjadi
saya rubah menjadi Code:
Code:
int CalcSum
int CalcSum(int(int x=3x=3, int, int y=5y=5)) { { return(x+y); return(x+y); } }
maka pada function
maka pada function int CalcSum int CalcSum a. menghasilkan nilai 8 a. menghasilkan nilai 8
b. menghasilkan nilai x=3 dan y=5 b. menghasilkan nilai x=3 dan y=5 c. menghasilkan nilai x=0 dan y=0 c. menghasilkan nilai x=0 dan y=0 d. menghasilkan nilai x=1 dan y=1 d. menghasilkan nilai x=1 dan y=1 e. kalau salah semua
e. kalau salah semua berapa nilai yang dihasilkan? berapa nilai yang dihasilkan? mana yang benar guru? :woo:
mana yang benar guru? :woo:
Originally Posted by
Originally Posted by hermit88 hermit88 jika
jika Code: Code:
int CalcSum(int
int CalcSum(int x x , int, int y y )) { { return(x+y); return(x+y); } }
saya rubah menjadi saya rubah menjadi
Code: Code:
int CalcSum
int CalcSum(int(int x=3x=3, int, int y=5y=5)) { { return(x+y); return(x+y); } }
maka pada function
maka pada function int CalcSum int CalcSum a. menghasilkan nilai 8 a. menghasilkan nilai 8
b. menghasilkan nilai x=3 dan y=5 b. menghasilkan nilai x=3 dan y=5 c. menghasilkan nilai x=0 dan y=0 c. menghasilkan nilai x=0 dan y=0 d. menghasilkan nilai x=1 dan y=1 d. menghasilkan nilai x=1 dan y=1 e. kalau salah semua
e. kalau salah semua berapa nilai yang dihasilkan? berapa nilai yang dihasilkan? mana yang benar guru? :woo:
01-09-2011 11:34 PM 01-09-2011 11:34 PM int CalcSum(int
int CalcSum(int xx, int, int yy)) { { return(x+y); return(x+y); } }
Kalo ditulis demikian, tentu c nilainya 8 Kalo ditulis demikian, tentu c nilainya 8 :):)
Untuk yang Bro tulis di atas, kalopun benar nanti itu
Untuk yang Bro tulis di atas, kalopun benar nanti itu akan menghasilkan 8.akan menghasilkan 8.
Tetapi bedanya, itu menjadi function yang tidak bisa dipakai ulang karena variabel x dan y di Tetapi bedanya, itu menjadi function yang tidak bisa dipakai ulang karena variabel x dan y di fungsi akan SELALU bernilai 3 dan
fungsi akan SELALU bernilai 3 dan 5 (padahal tujuan function adalah agar bisa 5 (padahal tujuan function adalah agar bisa dipanggil berkali-dipanggil berkali-kali).
kali).
Coba bandingkan dengan
Coba bandingkan dengan function function TulisTulis pada contoh sebelumnya, dari segi penulisan.pada contoh sebelumnya, dari segi penulisan. Yang perlu di
Yang perlu diingat dalaingat dalamm function function adalah:adalah: Ada bagian
Ada bagian untuk deklarasi/untuk deklarasi/penulisanpenulisan function function (berisi logic dari function itu sendiri),(berisi logic dari function itu sendiri), dan
dan 1. 1.
Ada bagian
Ada bagian untuk memakaiuntuk memakai/"memanggi/"memanggil"l" function function tersebut.tersebut. 2. 2. :accute: :accute:
hermit88
hermit88
Quote: Quote:terimakasih guru, sekarang saya lebih paham untuk
terimakasih guru, sekarang saya lebih paham untuk membuat function :happy:membuat function :happy: Originally Posted by
Originally Posted by Givonly Givonly itu tidak lazim (kalo tidak disebut
itu tidak lazim (kalo tidak disebut sebagai kurang tepat :p) sebagai kurang tepat :p) Jadi function itu ibarat mesin
Jadi function itu ibarat mesin yang siap menerima input, tapi input yang siap menerima input, tapi input tersebut jangan tersebut jangan langsung dimasukkan ke function secara langsung.
langsung dimasukkan ke function secara langsung. Jadi begini Jadi begini Code: Code: int a=3; int a=3; int b=5; int b=5;
int c=CalcSum(3,5); //perhatikan inilah baris yang
int c=CalcSum(3,5); //perhatikan inilah baris yang memanggilmemanggil function CalcSum & dimasukkan ke variabel c.
function CalcSum & dimasukkan ke variabel c. int CalcSum(int
int CalcSum(int x x , int y , int y )) { { return(x+y); return(x+y); } }
Kalo ditulis demikian, tentu c nilainya 8 Kalo ditulis demikian, tentu c nilainya 8 :) :)
Untuk yang Bro tulis di atas, kalopun benar nanti itu akan
Untuk yang Bro tulis di atas, kalopun benar nanti itu akan menghasilkamenghasilkan 8.n 8. Tetapi bedanya, itu menjadi function yang
Tetapi bedanya, itu menjadi function yang tidak bisa dipakai ulang karena variabel x dan tidak bisa dipakai ulang karena variabel x dan y di fungsi akan SELALU bernilai 3 dan 5 (padahal tujuan function adalah agar bisa y di fungsi akan SELALU bernilai 3 dan 5 (padahal tujuan function adalah agar bisa dipanggil berkali-kali).
dipanggil berkali-kali).
Coba bandingkan dengan function
Coba bandingkan dengan function Tulis Tulis pada contoh sebelumnya, dari segi penulisan.pada contoh sebelumnya, dari segi penulisan. Yang perlu diingat dalam function adalah:
Yang perlu diingat dalam function adalah: Ada bagia
Ada bagian untuk deklaran untuk deklarasi/penulisan funsi/penulisan function (beriction (berisi logic dsi logic dari function iari function itu tu sendiri), dan
sendiri), dan 1.
1.
Ada bagian
Ada bagian untuk memakauntuk memakai/"memanggi/"memanggil" function il" function tersebut.tersebut. 2.
2. :accute: :accute:
btw, btw,
sekarang saya mau tanya structure. sekarang saya mau tanya structure.
di meta editor, ketika kita akan membuat new expert advisor di meta editor, ketika kita akan membuat new expert advisor pertama kali kita disuguhi :
pertama kali kita disuguhi : Code:
Code:
//+---//+---+---+ //|
//| expert expert initializatioinitialization n function function || //+---//+---+---+ int init() int init() { { //----return(0); return(0); } } //+---//+---+---+ //|
//| expert expert deinitializatdeinitialization ion function function || //+---//+---+---+ int deinit() int deinit() { { //----return(0); return(0); } } //+---//+---+---+ //|
//| expert expert start start function function || //+---//+---+---+ int start() int start() { { //----return(0); return(0); } } //+---//+---+---+
ea akan berjalan dengan urutan ea akan berjalan dengan urutan
int init() int init() int start() int start() int deinit int deinit
int init() dieksekusi sekali pada saat ea mulai mode on int init() dieksekusi sekali pada saat ea mulai mode on int start() dieksekusi berulang
int start() dieksekusi berulang
int deinit() dieksekusi sekali sebelum ea mode int deinit() dieksekusi sekali sebelum ea mode off off
yang saya masih rancu pengertiannya di int start() yang saya masih rancu pengertiannya di int start() jadi, apa ya
jadi, apa yang menyebabkng menyebabkan ea keluar an ea keluar dari int startdari int start() kemudia() kemudian mengeksekusi n mengeksekusi int deinit() int deinit() ?? apakah operator return(0); yang menyebabkan ea keluar dari start
apakah operator return(0); yang menyebabkan ea keluar dari start menuju deinit ?menuju deinit ?
kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka sebenarnya maksud saya :
sebenarnya maksud saya : Code: Code: ... ... if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) return(0); return(0); } }
01-10-2011 02:58 AM 01-10-2011 02:58 AM untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off
untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off kalo jawaban saya salah mohon koreksi yang
kalo jawaban saya salah mohon koreksi yang benar supaya saya lebih menjiwaibenar supaya saya lebih menjiwai
Givonly
Givonly
Quote: Quote:
Originally Posted by
Originally Posted by hermit88 hermit88
terimakasih guru, sekarang saya lebih paham untuk membuat function :happy: terimakasih guru, sekarang saya lebih paham untuk membuat function :happy: btw,
btw,
sekarang saya mau tanya structure. sekarang saya mau tanya structure.
di meta editor, ketika kita akan membuat new expert advisor di meta editor, ketika kita akan membuat new expert advisor pertama kali kita disuguhi :
pertama kali kita disuguhi : Code:
Code:
//+---//+---+----+ //| expert initialization function
//| expert initialization function | | //+---//+---+----+ int init() int init() { { //----return(0); return(0); } } //+---//+---+----+ //| expert
//| expert deinitializdeinitialization functionation function | | //+---//+---+----+ int deinit() int deinit() { { //----return(0); return(0); } } //+---//+---+----+ //| expert start function
//| expert start function | | //+---//+---+----+ int start() int start() { { //----return(0); return(0); } } //+---//+---+----+
ea akan berjalan dengan urutan ea akan berjalan dengan urutan
int init() int init() int start() int start() int deinit int deinit
int init() dieksekusi sekali pada saat ea mulai mode on int init() dieksekusi sekali pada saat ea mulai mode on int start() dieksekusi berulang
int start() dieksekusi berulang
int deinit() dieksekusi sekali sebelum ea mode int deinit() dieksekusi sekali sebelum ea mode off off
Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit()
Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit() ( dengan ( dengan asumsi seolah2 setelah start() kemudian deinit() ).
asumsi seolah2 setelah start() kemudian deinit() ). Meskipun inisialisasi diekseku
Meskipun inisialisasi dieksekusi dengan urutan si dengan urutan seperti yang Bro paparkan di seperti yang Bro paparkan di atas, tetapi masing-atas, tetapi masing-masing adalah independen, dalam artian ketiga function standar tersebut diekseskusi terpisah masing adalah independen, dalam artian ketiga function standar tersebut diekseskusi terpisah (sebagaima
(sebagaimana function2 yang na function2 yang lain juga demikian).lain juga demikian).
Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat oleh Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat oleh developer MQL, bahwa init() sebagai "pintu masuk" dan
developer MQL, bahwa init() sebagai "pintu masuk" dan deinit() sebagai "pintu keluar".deinit() sebagai "pintu keluar". Tanpa mempedulikan/
Tanpa mempedulikan/pusing dengan hal2 yang lain, pusing dengan hal2 yang lain, pokoknya init() pasti dieksekusi jika EA pokoknya init() pasti dieksekusi jika EA diattach & deinit() juga pasti
diattach & deinit() juga pasti dieksekusi jika EA keluar (baik sengaja, maupun reject dieksekusi jika EA keluar (baik sengaja, maupun reject oleh MT4).oleh MT4). Dari sini, dapat dipahami sesungguhnya tidak ada
Dari sini, dapat dipahami sesungguhnya tidak ada yang mengeluarkan function start(), karenayang mengeluarkan function start(), karena function special ini adalah
function special ini adalah ruang utama program yang ruang utama program yang dieksekusi/tidieksekusi/tidaknya adalah berdasarkandaknya adalah berdasarkan pergerakan tick. Selama tick gerak, start() akan terus
pergerakan tick. Selama tick gerak, start() akan terus diekseskusi berulang2diekseskusi berulang2.. Perhatikan pernyataan:
Perhatikan pernyataan: Quote:
Quote:
Jadi jangan dihubungkan sebagai sebuah urutan antara
Jadi jangan dihubungkan sebagai sebuah urutan antara start() dan deinit() tersebut, karenastart() dan deinit() tersebut, karena masing2 terpisah.
masing2 terpisah.
EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja). EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja). Sekali lagi saya ulangi:
Sekali lagi saya ulangi:
init() ---> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadi init() ---> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadi pada function yang lain.
pada function yang lain.
deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapun yang terjadi deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapun yang terjadi pada function yang lain.
pada function yang lain.
start() ---> dieksekusi saat ada
start() ---> dieksekusi saat ada gerak tick, tanpa peduli apapun yang gerak tick, tanpa peduli apapun yang terjadi padaterjadi pada function yang lain.
function yang lain.
Saya coba bikin analogi ya: Saya coba bikin analogi ya:
Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan perintah sbb: Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan perintah sbb:
yang saya masih rancu pengertiannya di int start() yang saya masih rancu pengertiannya di int start() jadi, apa yang
jadi, apa yang menyebabkamenyebabkan ea keluar dn ea keluar dari int start(ari int start() kemudian ) kemudian mengeksekusi imengeksekusi int nt deinit() ?
deinit() ?
apakah operator return(0); yang menyebabkan ea keluar dari start
apakah operator return(0); yang menyebabkan ea keluar dari start menuju menuju deinit ?
deinit ?
kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka sebenarnya maksud saya :
sebenarnya maksud saya : Code: Code: ... ... if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) return(0); return(0); } }
untuk mengeluarkan ea dari int
untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off start() menuju deinit sebelum mode off kalo jawaban saya salah mohon koreksi yang benar
kalo jawaban saya salah mohon koreksi yang benar supaya saya lebih supaya saya lebih menjiwai
menjiwai
untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off
01-10-2011 02:58 AM 01-10-2011 02:58 AM Jika sampai sana, sampaikan dulu salam dari
Jika sampai sana, sampaikan dulu salam dari atasan. [init()]atasan. [init()] 1.
1.
Jika kondisi mendukung, bahas proyek kerjasama. [start()] Jika kondisi mendukung, bahas proyek kerjasama. [start()] 2.
2.
Jika mau pulang, jangan
Jika mau pulang, jangan lupa bawa barang pesanan. [deinit()]lupa bawa barang pesanan. [deinit()] 3.
3.
Perhatikan bahwa, Bro harus tetap bawa
Perhatikan bahwa, Bro harus tetap bawa barang pesanan meskipun ngga jadi bahas proyek,barang pesanan meskipun ngga jadi bahas proyek, termasuk ngga sempet titip salam segala misalnya :D
termasuk ngga sempet titip salam segala misalnya :D
Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika Bro mau Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika Bro mau pulang dari sana
pulang dari sana [deinit()][deinit()]..
Maaf jika analogi kurang tepat, sekedar
Maaf jika analogi kurang tepat, sekedar gambaran biar lebihgambaran biar lebih menjiwaimenjiwai:accute::accute:
Givonly
Givonly
Quote: Quote:
Originally Posted by
Originally Posted by hermit88 hermit88
terimakasih guru, sekarang saya lebih paham untuk membuat function :happy: terimakasih guru, sekarang saya lebih paham untuk membuat function :happy: btw,
btw,
sekarang saya mau tanya structure. sekarang saya mau tanya structure.
di meta editor, ketika kita akan membuat new expert advisor di meta editor, ketika kita akan membuat new expert advisor pertama kali kita disuguhi :
pertama kali kita disuguhi : Code:
Code:
//+---//+---+----+ //| expert initialization function
//| expert initialization function | | //+---//+---+----+ int init() int init() { { //----return(0); return(0); } } //+---//+---+----+ //| expert
//| expert deinitializdeinitialization functionation function | | //+---//+---+----+ int deinit() int deinit() { { //----return(0); return(0); } } //+---//+---+----+ //| expert start function
//| expert start function | | //+---//+---+----+ int start() int start() { { //----return(0); return(0); } } //+---//+---+----+
ea akan berjalan dengan urutan ea akan berjalan dengan urutan
int init() int init() int start() int start() int deinit int deinit
Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit()
Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit() ( dengan ( dengan asumsi seolah2 setelah start() kemudian deinit() ).
asumsi seolah2 setelah start() kemudian deinit() ). Meskipun inisialisasi diekseku
Meskipun inisialisasi dieksekusi dengan urutan si dengan urutan seperti yang Bro paparkan di seperti yang Bro paparkan di atas, tetapi masing-atas, tetapi masing-masing adalah independen, dalam artian ketiga function standar tersebut diekseskusi terpisah masing adalah independen, dalam artian ketiga function standar tersebut diekseskusi terpisah (sebagaima
(sebagaimana function2 yang na function2 yang lain juga demikian).lain juga demikian).
Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat oleh Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat oleh developer MQL, bahwa init() sebagai "pintu masuk" dan
developer MQL, bahwa init() sebagai "pintu masuk" dan deinit() sebagai "pintu keluar".deinit() sebagai "pintu keluar". Tanpa mempedulikan/
Tanpa mempedulikan/pusing dengan hal2 yang lain, pusing dengan hal2 yang lain, pokoknya init() pasti dieksekusi jika EA pokoknya init() pasti dieksekusi jika EA diattach & deinit() juga pasti
diattach & deinit() juga pasti dieksekusi jika EA keluar (baik sengaja, maupun reject dieksekusi jika EA keluar (baik sengaja, maupun reject oleh MT4).oleh MT4). Dari sini, dapat dipahami sesungguhnya tidak ada
Dari sini, dapat dipahami sesungguhnya tidak ada yang mengeluarkan function start(), karenayang mengeluarkan function start(), karena function special ini adalah
function special ini adalah ruang utama program yang ruang utama program yang dieksekusi/tidieksekusi/tidaknya adalah berdasarkandaknya adalah berdasarkan pergerakan tick. Selama tick gerak, start() akan terus
pergerakan tick. Selama tick gerak, start() akan terus diekseskusi berulang2diekseskusi berulang2.. Perhatikan pernyataan:
Perhatikan pernyataan: Quote:
Quote:
Jadi jangan dihubungkan sebagai sebuah urutan antara
Jadi jangan dihubungkan sebagai sebuah urutan antara start() dan deinit() tersebut, karenastart() dan deinit() tersebut, karena masing2 terpisah.
masing2 terpisah.
EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja). EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja). Sekali lagi saya ulangi:
Sekali lagi saya ulangi:
init() ---> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadi init() ---> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadi pada function yang lain.
pada function yang lain.
deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapun yang terjadi deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapun yang terjadi pada function yang lain.
pada function yang lain.
start() ---> dieksekusi saat ada
start() ---> dieksekusi saat ada gerak tick, tanpa peduli apapun yang gerak tick, tanpa peduli apapun yang terjadi padaterjadi pada int init() dieksekusi sekali pada saat ea mulai mode on
int init() dieksekusi sekali pada saat ea mulai mode on int start() dieksekusi berulang
int start() dieksekusi berulang
int deinit() dieksekusi sekali sebelum ea mode off int deinit() dieksekusi sekali sebelum ea mode off
yang saya masih rancu pengertiannya di int start() yang saya masih rancu pengertiannya di int start() jadi, apa yan
jadi, apa yang menyebabkag menyebabkan ea keluar dn ea keluar dari int startari int start() kemudian () kemudian mengeksekusi imengeksekusi int nt deinit() ?
deinit() ?
apakah operator return(0); yang menyebabkan ea keluar dari start
apakah operator return(0); yang menyebabkan ea keluar dari start menuju menuju deinit ?
deinit ?
kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka sebenarnya maksud saya :
sebenarnya maksud saya : Code: Code: ... ... if(!TampilkanCurrentSMA) if(!TampilkanCurrentSMA) return(0); return(0); } }
untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off kalo jawaban saya salah mohon koreksi yang benar
kalo jawaban saya salah mohon koreksi yang benar supaya saya lebih supaya saya lebih menjiwai
menjiwai
untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off
01-10-2011 03:21 AM 01-10-2011 03:21 AM function yang lain.
function yang lain.
Saya coba bikin analogi ya: Saya coba bikin analogi ya:
Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan perintah sbb: Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan perintah sbb:
Jika sampai sana, sampaikan dulu salam dari
Jika sampai sana, sampaikan dulu salam dari atasan. [init()]atasan. [init()] 1.
1.
Jika kondisi mendukung, bahas proyek kerjasama. [start()] Jika kondisi mendukung, bahas proyek kerjasama. [start()] 2.
2.
Jika mau pulang, jangan
Jika mau pulang, jangan lupa bawa barang pesanan. [deinit()]lupa bawa barang pesanan. [deinit()] 3.
3.
Perhatikan bahwa, Bro harus tetap bawa
Perhatikan bahwa, Bro harus tetap bawa barang pesanan meskipun ngga jadi bahas proyek,barang pesanan meskipun ngga jadi bahas proyek, termasuk ngga sempet titip salam segala misalnya :D
termasuk ngga sempet titip salam segala misalnya :D Karena instruksi untuk bawa barang pesanan
Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika tersebut syaratnya cuma 1, yakni jika BroBro maumau pulang dari sana
pulang dari sana [deinit()][deinit()]..
Maaf jika analogi kurang tepat, sekedar
Maaf jika analogi kurang tepat, sekedar gambaran biar lebihgambaran biar lebih menjiwaimenjiwai:accute::accute:
hermit88
hermit88
Quote: Quote:
Originally Posted by
Originally Posted by Givonly Givonly
Sebenarnya Bro agak rancu mungkin karena
Sebenarnya Bro agak rancu mungkin karena menghubungkamenghubungkan start() dengan n start() dengan deinit() ( deinit() ( dengan asumsi seolah2 setelah start() kemudian deinit() ).
dengan asumsi seolah2 setelah start() kemudian deinit() ). Meskipun inisialisasi dieksekus
Meskipun inisialisasi dieksekusi dengan urutan i dengan urutan seperti yang Bro paparkan di seperti yang Bro paparkan di atas, tetapi atas, tetapi masing-masing adalah independen, dalam artian ketiga function s
masing-masing adalah independen, dalam artian ketiga function s tandar tersebut tandar tersebut diekseskusi terpisah (sebagaimana function2 yang lain juga
diekseskusi terpisah (sebagaimana function2 yang lain juga demikian)demikian).. Dan function standar
Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat oleh developer MQL, bahwa init() sebagai "pintu masuk" dan
oleh developer MQL, bahwa init() sebagai "pintu masuk" dan deinit() sebagai "pintu deinit() sebagai "pintu keluar".
keluar".
Tanpa mempedulikan/
Tanpa mempedulikan/pusing dengan hal2 yang pusing dengan hal2 yang lain, pokoknya init() pasti dieksekusi jika lain, pokoknya init() pasti dieksekusi jika EA diattach & deinit() juga pasti
EA diattach & deinit() juga pasti dieksekusi jika EA keluar (baik sengaja, maupun reject dieksekusi jika EA keluar (baik sengaja, maupun reject oleh MT4).
oleh MT4).
Dari sini, dapat dipahami sesungguhnya tidak ada yang
Dari sini, dapat dipahami sesungguhnya tidak ada yang mengeluarkan function start(),mengeluarkan function start(), karena function special ini
karena function special ini adalah ruang utama adalah ruang utama program yang dieksekusi/tidaknya program yang dieksekusi/tidaknya adalah berdasarkan pergerakan tick. Selama tick gerak, start() akan terus diekseskusi adalah berdasarkan pergerakan tick. Selama tick gerak, start() akan terus diekseskusi berulang2.
berulang2.
Perhatikan pernyataan: Perhatikan pernyataan:
Jadi jangan dihubungkan sebagai sebuah urutan antara
Jadi jangan dihubungkan sebagai sebuah urutan antara start() dan deinit() tersebut,start() dan deinit() tersebut, karena masing2 terpisah.
karena masing2 terpisah.
EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja). EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja). Sekali lagi saya ulangi:
Sekali lagi saya ulangi:
init() ---> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang init() ---> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadi pada function yang lain.
terjadi pada function yang lain. deinit() ----> dieksekusi saat
deinit() ----> dieksekusi saat deinisialisadeinisialisasi (keluar), tanpa si (keluar), tanpa peduli apapun peduli apapun yang terjadi pada function yang lain.
yang terjadi pada function yang lain. start() ---> dieksekusi saat ada gerak
start() ---> dieksekusi saat ada gerak tick, tanpa peduli apapun yang tick, tanpa peduli apapun yang terjadi pada function yang lain.
terjadi pada function yang lain.
Saya coba bikin analogi ya: Saya coba bikin analogi ya:
Misalnya Bro dapat perintah dari atasan
01-10-2011 09:24 AM 01-10-2011 09:24 AM :D:D:D ini nih... yang saya suka dari kanjeng guru :D:D:D
:D:D:D ini nih... yang saya suka dari kanjeng guru :D:D:D penjelasannya sangat mantap, gamblang dan
penjelasannya sangat mantap, gamblang dan tanpa basa basi... tanpa basa basi... :good::good:::good::good::good:good: ok bro...
ok bro...
terimakasih atas waktu dan
terimakasih atas waktu dan penjelasannya... :peace:penjelasannya... :peace: saya bobok dulu ya...
saya bobok dulu ya... besok atau lusa kalo
besok atau lusa kalo ada waktu, discuss lagi. :happy:ada waktu, discuss lagi. :happy:
zakki
zakki
akhirnya ada master... yg hadir... :) akhirnya ada master... yg hadir... :) master tolong bantu saya
master tolong bantu saya
saya tidak bisa EA , tapi karena butuh.. saya ingin bikin akhirnya.. saya tidak bisa EA , tapi karena butuh.. saya ingin bikin akhirnya..
Code: Code: extern
extern int int TakeProfit TakeProfit = = 75;75; extern
extern int int StopLoss StopLoss = = 10;10; extern
extern int int Slippage Slippage = = 3;3; extern
extern double double Lots Lots = = 0.1;0.1; extern
extern int int TrailingStop TrailingStop = = 30;30; extern
extern bool bool Trailing Trailing = true;= true; int Current; int Current; int iTrade=0; int iTrade=0; //+---//+---+---+ //|
//| expert expert initializatioinitialization n function function || //+---//+---+---+ int init() int init() { { //----return(0); return(0); } } //+---//+---+---+ //|
//| expert expert deinitializatdeinitialization ion function function || //+---//+---+---+ int deinit() int deinit() { { //----perintah sbb: perintah sbb:
Jika sampai sana, sampaikan dulu salam dari atasan. [init()] Jika sampai sana, sampaikan dulu salam dari atasan. [init()] 1.
1.
Jika kondisi mendukung, bahas
Jika kondisi mendukung, bahas proyek kerjasama. [start()] proyek kerjasama. [start()] 2.
2.
Jika mau pulang, jangan lupa
Jika mau pulang, jangan lupa bawa barang pesanan. [deinit()] bawa barang pesanan. [deinit()] 3.
3.
Perhatikan bahwa, Bro harus tetap bawa
Perhatikan bahwa, Bro harus tetap bawa barang pesanan meskipun ngga jadi bahas barang pesanan meskipun ngga jadi bahas proyek, termasuk ngga sempet titip salam segala misalnya :D
proyek, termasuk ngga sempet titip salam segala misalnya :D Karena instruksi untuk bawa barang pesanan
Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika tersebut syaratnya cuma 1, yakni jika Bro Bro mau pulang dari sana [deinit()].
mau pulang dari sana [deinit()].
Maaf jika analogi kurang tepat, sekedar gambaran biar lebih
return(0); return(0); } } //+---//+---+---+ //|
//| expert expert start start function function || //+---//+---+---+ int start() int start() { {
//----Comment (" belajar membuat EA"); Comment (" belajar membuat EA");
double Buy1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Buy1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Buy1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); double Buy1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); double Sell1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Sell1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Sell1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); double Sell1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0);
//double
//double dEMA1, dEMA1, dEMA2, dEMA2, dEMA1before, dEMA1before, dEMA2before;dEMA2before; //
// int int iTrade=0;iTrade=0;
// dEMA1=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA1=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA2=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA2=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA1before=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,1); // dEMA1before=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,1); // dEMA2before=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,1); // dEMA2before=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,1); if if (OrdersTota(OrdersTotal()<1)l()<1) { { if
if (AccountFreeM(AccountFreeMargin()<1000*argin()<1000*Lots)Lots) { Comment("EA tidak bekerja,
{ Comment("EA tidak bekerja, dana kurang :", dana kurang :", AccountFreeMaAccountFreeMargin());rgin()); return(0);} return(0);} if (Buy1_1 < Buy1_2) if (Buy1_1 < Buy1_2) { { OrderSend(Symb
OrderSend(Symbol(),OP_BUY,Lol(),OP_BUY,Lots,Ask,Slippaots,Ask,Slippage,Bid- ge,Bid-StopLoss*Poi
StopLoss*Point,Ask+TakePront,Ask+TakeProfit*Point,0);fit*Point,0); } } if (Sell1_1 > Sell1_2) if (Sell1_1 > Sell1_2) { { OrderSend(Sy
OrderSend(Symbol(),OP_SELLmbol(),OP_SELL,Lots,Bid,Sli,Lots,Bid,Slippage,Ask+Stopppage,Ask+StopLoss*Point,BiLoss*Point,Bid- d-TakeProfit*Point,0); TakeProfit*Point,0); } } } }
/* >>> Fungsi Trailing Stop <<< */ /* >>> Fungsi Trailing Stop <<< */
if(Trailing==true) if(Trailing==true) {
{
for(iTrade
for(iTrade=0;iTrade<Orde=0;iTrade<OrdersTotal();iTrrsTotal();iTrade++)ade++) {
{
OrderSelec
OrderSelect(iTrade,SELECt(iTrade,SELECT_BY_POS,MODET_BY_POS,MODE_TRADES);_TRADES); if(OrderTy
if(OrderType()==OP_BUY pe()==OP_BUY && && OrderSymbol()OrderSymbol()==Symbol())==Symbol()) { { if(TrailingStop>0) if(TrailingStop>0) { { if(Bid-OrderOpenPrice()>Point*5) if(Bid-OrderOpenPrice()>Point*5) { { OrderClose(O
OrderClose(OrderTicket(),rderTicket(),OrderLots(),BiOrderLots(),Bid,3,CLR_NONE)d,3,CLR_NONE);; return(0);
return(0); }
01-10-2011 09:39 AM 01-10-2011 09:39 AM 01-10-2011 09:58 AM 01-10-2011 09:58 AM } } } } else else { { if(TrailingStop>0) if(TrailingStop>0) { { if((OrderOpenPrice()-Ask)>(Point*5)) if((OrderOpenPrice()-Ask)>(Point*5)) { { OrderClose(O
OrderClose(OrderTicket(),rderTicket(),OrderLots(),AsOrderLots(),Ask,3,CLR_NONE)k,3,CLR_NONE);; return(0); return(0); } } } } } } } } } } //----return(0); return(0); } } //+---//+---+---+
EA ini hanya rakitan master, karena saya gk punya bahan lagi xixixixiii.... EA ini hanya rakitan master, karena saya gk punya bahan lagi xixixixiii.... system kerjanya, saat titik SAR diatas dia akan sell, nah dari sini saya hanya
system kerjanya, saat titik SAR diatas dia akan sell, nah dari sini saya hanya ingin ambil 5 poiningin ambil 5 poin saja saat sar diatas ,
saja saat sar diatas , begitu pula sebaliknya saat buy saya take profit 5 poin saja, tapi kendalanya..begitu pula sebaliknya saat buy saya take profit 5 poin saja, tapi kendalanya.. saat profit tercapai, fungsi EA masih
saat profit tercapai, fungsi EA masih tereksekusi..tereksekusi..
ex : tf (30) , titik SAR diatas maka sell tp :5 pip , namun setelah dapat 5 pip .. EA malah buka sell ex : tf (30) , titik SAR diatas maka sell tp :5 pip , namun setelah dapat 5 pip .. EA malah buka sell lagi, ... alhasil stoploss nya juga kena... :( .. dikarnakan titik SAR dibawah dan harga berbailk jadi lagi, ... alhasil stoploss nya juga kena... :( .. dikarnakan titik SAR dibawah dan harga berbailk jadi buy.. :wall:
buy.. :wall:
master mohon sarannya , saya ingin membuat fungsi seperti ini : master mohon sarannya , saya ingin membuat fungsi seperti ini : 1. jika signal sell, tp 5 pip
1. jika signal sell, tp 5 pip tercapai.. maka tunggtercapai.. maka tunggu signal buy untuk op u signal buy untuk op selanjut nya..selanjut nya.. atau begini
atau begini
2. jika order sell == 2 op
2. jika order sell == 2 op maka tunggu signal buy untuk op selanjutnya..maka tunggu signal buy untuk op selanjutnya.. tapi saya ndak tahu buatnya, saya mohon master, bantu saya ya
tapi saya ndak tahu buatnya, saya mohon master, bantu saya ya ...:(...:(
jhonie
jhonie
bingung gan ngikutin, samasekali awan urusan coding EA.. bingung gan ngikutin, samasekali awan urusan coding EA.. gak ada kamus istilah-istilah EA ya?
gak ada kamus istilah-istilah EA ya?
ndorojuragan
ndorojuragan
Quote: Quote:
Originally Posted by
Originally Posted by Givonly Givonly
Ini thread saya bikin berangkat dari postingan Bro
01-10-2011 12:06 PM 01-10-2011 12:06 PM
01-10-2011 06:47 PM 01-10-2011 06:47 PM Gan, jika ada ebook berisi syntax mql4, mungkin bisa dishare di sini sehingga diskusi bisa lebih
Gan, jika ada ebook berisi syntax mql4, mungkin bisa dishare di sini sehingga diskusi bisa lebih mudah diikuti dan lebih hidup.
mudah diikuti dan lebih hidup. thx thx
zakki
zakki
Quote: Quote:klo yang bahasa inggris sebenarnya banyak gan ebook yang di share, ada tuh
klo yang bahasa inggris sebenarnya banyak gan ebook yang di share, ada tuh di thread sebelah.di thread sebelah. tapi klo yang bhs indo nunggu
tapi klo yang bhs indo nunggu master saja yang ngajarin , lebih enak :good:master saja yang ngajarin , lebih enak :good:
ane sendiri gk terlalu bisa coding, cuman karena sering maenin game puzzle , sedikit2 ane coba ane sendiri gk terlalu bisa coding, cuman karena sering maenin game puzzle , sedikit2 ane coba ngerakit EA.. kacangan wkwkwkwkwk ...:D
ngerakit EA.. kacangan wkwkwkwkwk ...:D
ndorojuragan
ndorojuragan
yang sering ngajak diskusi tentang
yang sering ngajak diskusi tentang MQL4.MQL4. Posting terakhir Bro Posting terakhir Bro hermit88 hermit88 di thread di thread sebelah
sebelah rasanya koq mending dibikin thread tersendiri biar thread rasanya koq mending dibikin thread tersendiri biar thread sebelah itu ngga sebelah itu ngga tambah gemuk & semakin jadi gado2 :D
tambah gemuk & semakin jadi gado2 :D Selain itu agar lebih fokus
Selain itu agar lebih fokus & nyaman diskusinya... :ok: & nyaman diskusinya... :ok: Oya, thread ini bukan
Oya, thread ini bukan bengkel EA/indikatbengkel EA/indikator yang ditujukan or yang ditujukan untuk "mereparasi" indi/EA untuk "mereparasi" indi/EA error.
error.
Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi
Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi yang sedang yang sedang BELAJAR bikin EA/indika
BELAJAR bikin EA/indikator hasil tor hasil coding sendiri / coding sendiri / coba2 ide sendiri.. :accute: coba2 ide sendiri.. :accute:
Ingin belajar tidak usah ijin & basa-basi, chit-chat & junk post tidak ditoleransi! :rules: Ingin belajar tidak usah ijin & basa-basi, chit-chat & junk post tidak ditoleransi! :rules: Btw, saya sendiri masih sangat awam di bidang coding MQL4 ini.
Btw, saya sendiri masih sangat awam di bidang coding MQL4 ini. Karena itu bagi para master
Karena itu bagi para master yang udah sering/hobi oprek atau utak-atik yang udah sering/hobi oprek atau utak-atik EA, sangat EA, sangat diharapkan saran dan bantuannya demi membantu sesama member forum yang ingin diharapkan saran dan bantuannya demi membantu sesama member forum yang ingin belajar. belajar. Regards, Regards, :respect: :respect: Givo. Givo.
Originally Posted by
Originally Posted by ndorojuragan ndorojuragan Gan, jika ada ebook
Gan, jika ada ebook berisi syntax mql4, mungkin bisa dishare di sini berisi syntax mql4, mungkin bisa dishare di sini sehingga diskusi sehingga diskusi bisa lebih mudah diikuti dan lebih
bisa lebih mudah diikuti dan lebih hidup.hidup. thx
01-10-2011 07:05 PM 01-10-2011 07:05 PM 01-10-2011 08:52 PM 01-10-2011 08:52 PM 01-10-2011 09:20 PM 01-10-2011 09:20 PM Quote: Quote:
ebook forex atau ebook coding gan? ebook forex atau ebook coding gan?
wwwboy
wwwboy
ebook yang mungkin bisa bantu dalam Coding in MQL4 ! ebook yang mungkin bisa bantu dalam Coding in MQL4 ! Mql - Metatrader Development Course
Mql - Metatrader Development Course http://7609098f.linkbucks.com
http://7609098f.linkbucks.com
rzidh
rzidh
wew mantap nih ada trit yg membahas MQL :) wew mantap nih ada trit yg membahas MQL :)
ane mau tanya ya maklum masih newbie nih dgn bahasa MQL ane mau tanya ya maklum masih newbie nih dgn bahasa MQL saya lagi belajar mengkombinasikan 3 EMA cross nih
saya lagi belajar mengkombinasikan 3 EMA cross nih logikanya:
logikanya:
* Jika EMA 3 cross EMA 6 dan EMA 3 & 6 berada diatas garis EMA 50 maka OP buy begitu juga * Jika EMA 3 cross EMA 6 dan EMA 3 & 6 berada diatas garis EMA 50 maka OP buy begitu juga sebaliknya Jika EMA 3 cross kebawah EMA 6 dan EMA 3 & EMA 6 berada di bawah EMA 50 maka sebaliknya Jika EMA 3 cross kebawah EMA 6 dan EMA 3 & EMA 6 berada di bawah EMA 50 maka OP sell.
OP sell. jadi kalo gar
jadi kalo garis EMA 3 is EMA 3 & 6 masih & 6 masih berada dibawberada dibawah EMA 5ah EMA 50 maka d0 maka dia cuma Oia cuma OP sell aja bP sell aja begitu jugaegitu juga sebaliknya.
sebaliknya.
gimana ya bahasa MQLnya :) gimana ya bahasa MQLnya :) mohon pencerahannya mohon pencerahannya :drink: :drink:
zakki
zakki
Quote: Quote:Originally Posted by
Originally Posted by zakki zakki
klo yang bahasa inggris sebenarnya banyak gan ebook yang di share, ada tuh di
klo yang bahasa inggris sebenarnya banyak gan ebook yang di share, ada tuh di thread thread sebelah.
sebelah.
tapi klo yang bhs indo nunggu master
tapi klo yang bhs indo nunggu master saja yang ngajarin , lebih enak :good: saja yang ngajarin , lebih enak :good: ane sendiri gk
ane sendiri gk terlalu bisa coding, cuman karena sering maenin game puzzle terlalu bisa coding, cuman karena sering maenin game puzzle , sedikit2 , sedikit2 ane coba ngerakit EA.. kacangan wkwkwkwkwk ...:D
ane coba ngerakit EA.. kacangan wkwkwkwkwk ...:D
Originally Posted by
Originally Posted by rzidh rzidh
wew mantap nih ada trit yg membahas MQL :) wew mantap nih ada trit yg membahas MQL :)
ane mau tanya ya maklum masih newbie nih dgn bahasa MQL ane mau tanya ya maklum masih newbie nih dgn bahasa MQL saya lagi belajar mengkombinasikan 3 EMA cross nih
saya lagi belajar mengkombinasikan 3 EMA cross nih logikanya:
logikanya:
* Jika EMA 3 cross EMA 6 dan EMA 3 & 6 berada diatas garis EMA 50 maka OP buy * Jika EMA 3 cross EMA 6 dan EMA 3 & 6 berada diatas garis EMA 50 maka OP buy begitu juga sebaliknya Jika EMA 3 cross kebawah EMA 6 dan EMA 3 & EMA 6 berada di begitu juga sebaliknya Jika EMA 3 cross kebawah EMA 6 dan EMA 3 & EMA 6 berada di bawah EMA 50 maka OP sell.
bawah EMA 50 maka OP sell. jadi kalo g
01-10-2011 10:03 PM 01-10-2011 10:03 PM ada itu gan... di threadnya master DwiM
ada itu gan... di threadnya master DwiM http://indo.m
http://indo.mt5.com/showt5.com/showthread.php?9..thread.php?9...t-EA-Sederhana.t-EA-Sederhana.. lengkap dijamin... :good:
lengkap dijamin... :good:
amtwoxtwo
amtwoxtwo
Quote: Quote:begitu juga
begitu juga sebaliknya.sebaliknya.
gimana ya bahasa MQLnya :) gimana ya bahasa MQLnya :) mohon pencerahannya mohon pencerahannya :drink:
:drink:
Originally Posted by
Originally Posted by zakki zakki
akhirnya ada master... yg hadir... :) akhirnya ada master... yg hadir... :) master tolong bantu saya
master tolong bantu saya
saya tidak bisa EA , tapi karena butuh.. saya ingin bikin akhirnya.. saya tidak bisa EA , tapi karena butuh.. saya ingin bikin akhirnya..
Code: Code: extern
extern int int TakeProfit TakeProfit = = 75;75; extern
extern int int StopLoss StopLoss = = 10;10; extern
extern int int Slippage Slippage = = 3;3; extern
extern double double Lots Lots = = 0.1;0.1; extern
extern int int TrailingStTrailingStop op = = 30;30; extern
extern bool bool Trailing Trailing = = true;true; int Current; int Current; int iTrade=0; int iTrade=0; //+---//+---+----+ //| expert initialization function
//| expert initialization function | | //+---//+---+----+ int init() int init() { { //----return(0); return(0); } } //+---//+---+----+ //| expert
//| expert deinitializdeinitialization functionation function | | //+---//+---+----+ int deinit() int deinit() { { //----return(0); return(0); } } //+---//+---+----+ //| expert start function
//| expert start function | | //+---//+---+----+ int start() int start()
{ {
//----Comment (" belajar membuat EA"); Comment (" belajar membuat EA");
double Buy1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Buy1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Buy1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); double Buy1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); double Sell1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Sell1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1); double Sell1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); double Sell1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0);
//double
//double dEMA1, dEMA1, dEMA2, dEMA2, dEMA1beforedEMA1before, dEMA, dEMA2before;2before; //
// int int iTrade=0;iTrade=0;
// dEMA1=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA1=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA2=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA2=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,0); // dEMA1before=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,1); // dEMA1before=iMA(NULL,0,EMA1Periode,0,MODE_EMA,PRICE_CLOSE,1); // dEMA2before=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,1); // dEMA2before=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,1); if if (OrdersTotal((OrdersTotal()<1))<1) { { if
if (AccountFre(AccountFreeMargin()<1000eMargin()<1000*Lots)*Lots)
{ Comment("EA tidak bekerja, dana kurang :", { Comment("EA tidak bekerja, dana kurang :", AccountFreeMa
AccountFreeMargin()); rgin()); return(0);}return(0);} if (Buy1_1 < Buy1_2)
if (Buy1_1 < Buy1_2) {
{
OrderSend(
OrderSend(Symbol(),OP_BUSymbol(),OP_BUY,Lots,Ask,SlY,Lots,Ask,Slippage,Bid- ippage,Bid-StopLoss*Poin
StopLoss*Point,Ask+TakeProt,Ask+TakeProfit*Point,0)fit*Point,0);; } } if (Sell1_1 > Sell1_2) if (Sell1_1 > Sell1_2) { { OrderSend(Sym
OrderSend(Symbol(),OP_SELLbol(),OP_SELL,Lots,Bid,Sl,Lots,Bid,Slippage,Ask+Stopippage,Ask+StopLoss*Point,BLoss*Point,Bid- id-TakeProfit*Point,0); TakeProfit*Point,0); } } } }
/* >>> Fungsi Trailing Stop <<< */ /* >>> Fungsi Trailing Stop <<< */
if(Trailing==true) if(Trailing==true) {
{
for(iTrade=0;
for(iTrade=0;iTrade<OrdersiTrade<OrdersTotal();iTradeTotal();iTrade++)++) {
{
OrderSelect(
OrderSelect(iTrade,SELECT_iTrade,SELECT_BY_POS,MODE_TBY_POS,MODE_TRADES);RADES); if(OrderType
if(OrderType()==OP_BUY ()==OP_BUY && && OrderSymbol()OrderSymbol()==Symbol())==Symbol()) { { if(TrailingStop>0) if(TrailingStop>0) { { if(Bid-OrderOpenPrice()>Point*5) if(Bid-OrderOpenPrice()>Point*5) { { OrderClose(Or
OrderClose(OrderTicket(),OderTicket(),OrderLots(),BrderLots(),Bid,3,CLR_NONE);id,3,CLR_NONE); return(0); return(0); } } } } } } else else { { if(TrailingStop>0) if(TrailingStop>0)
sy coba jawab nomor 1 y. sy coba jawab nomor 1 y. buat variabel bool buy
buat variabel bool buy = true,sell=true;= true,sell=true; Setelah fungsi OrderSend,kasih bool tadi. Setelah fungsi OrderSend,kasih bool tadi. Misal :
Misal : Code: Code:
OrderSend
OrderSend (OP_BUY,xxx,xx(OP_BUY,xxx,xxx,xxx,xx,xx);x,xxx,xx,xx);buy=false;sellbuy=false;sell=true;=true; Begitu juga dg
Begitu juga dg OrderSell buy=true;sell=OrderSell buy=true;sell=false;false;
nah di atas
nah di atas sebelum OrderSend dikasihsebelum OrderSend dikasih Code:
Code:
if(buy==true
if(buy==true)(OrderSend )(OrderSend (OP_BUY,xxx,x(OP_BUY,xxx,xxx,xxx,xxx);xx,xxx,xxx); if(sell==tru
if(sell==true)(Ordersend e)(Ordersend (OP_SELL,xxx(OP_SELL,xxx,xxx,xxx,xxx);,xxx,xxx,xxx);
itu cara yg termudah. itu cara yg termudah.
Skrg coba sy jwb yg nomor 2. Skrg coba sy jwb yg nomor 2.
Pertama2, bikin variabel penanda OPBUY,OPSELL. Pertama2, bikin variabel penanda OPBUY,OPSELL. contoh :
contoh :
{ {
if((OrderOpe
if((OrderOpenPrice()-AsknPrice()-Ask)>(Point*5)))>(Point*5)) {
{
OrderClose(Or
OrderClose(OrderTicket(),OderTicket(),OrderLots(),ArderLots(),Ask,3,CLR_NONE);sk,3,CLR_NONE); return(0); return(0); } } } } } } } } } } //----return(0); return(0); } } //+---//+---+----+
EA ini hanya rakitan master, karena saya gk punya bahan lagi xixixixiii.... EA ini hanya rakitan master, karena saya gk punya bahan lagi xixixixiii.... system kerjanya, saat titik SAR diatas dia akan sell, nah dari sini saya h
system kerjanya, saat titik SAR diatas dia akan sell, nah dari sini saya h anya ingin ambil anya ingin ambil 5 poin saja saat sar
5 poin saja saat sar diatas , begitu pula sebaliknya saat buy saya take profit 5 poin saja,diatas , begitu pula sebaliknya saat buy saya take profit 5 poin saja, tapi kendalanya.. saat profit tercapai, fungsi EA masih tereksekusi..
tapi kendalanya.. saat profit tercapai, fungsi EA masih tereksekusi..
ex : tf (30) , titik SAR diatas maka sell tp :5 pip , namun setelah dapat 5 pip .. EA malah ex : tf (30) , titik SAR diatas maka sell tp :5 pip , namun setelah dapat 5 pip .. EA malah buka sell lagi, ... alhasil stoploss nya juga kena... :( ..
buka sell lagi, ... alhasil stoploss nya juga kena... :( .. dikarnakan titik SAR dibawadikarnakan titik SAR dibawah dan h dan harga berbailk jadi buy.. :wall:
harga berbailk jadi buy.. :wall:
master mohon sarannya , saya ingin membuat fungsi seperti ini : master mohon sarannya , saya ingin membuat fungsi seperti ini : 1. jika signal sell, tp 5 pip tercapai.. maka tunggu signal buy untuk op
1. jika signal sell, tp 5 pip tercapai.. maka tunggu signal buy untuk op selanjut nya..selanjut nya.. atau begini
atau begini
2. jika order sell == 2 op
2. jika order sell == 2 op maka tunggu signal buy untuk op selanjutnya..maka tunggu signal buy untuk op selanjutnya.. tapi saya ndak tahu buatnya, saya mohon master, bantu saya ya