[hot discuss] coding in mql4 !1

32
Show 40 post(s) from this thread on one page 01-07-2011 03:30 PM 01-07-2011 03:41 PM [HOT DISCUSS] Coding in MQL4 ! Printable View Givonly [HOT DISCUSS] Coding in MQL4 ! Ini thread saya bikin berangkat dari postingan Bro hermit88 di postingan2 sebelumnya yang sering ngajak diskusi tentang MQL4. Posting terakhir Bro hermit88 di thread sebelah rasanya koq mending dibikin thread tersendiri biar thread sebelah itu ngga tambah gemuk & semakin jadi gado2 :D Selain itu agar lebih fokus & nyaman diskusinya... :ok: Oya, thread ini bukan bengkel EA/indikator yang ditujukan untuk "mereparasi" indi/EA error. Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi yang sedang BELAJAR bikin EA/indikator hasil coding sendiri / coba2 ide sendiri.. :accute: 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. Karena itu bagi para master yang udah sering/hobi oprek atau utak-atik EA, sangat diharapkan saran dan bantuannya demi membantu sesama member forum yang ingin belajar. Regards, :respect: Givo. Givonly Langsung menyambung pertanyaan sebelumnya: Quote: Label itu termasuk object di MQL4, dengan penulisannya menggunakan koordinat layar X & Y. Ke contoh aja ya biar mudah. Ini adalah procedure Tulis yang saya bikin sekali, terus biasa saya pake untuk EA/indikator baru. Enak kalo udah dibikin procedure, tinggal copas :p PHP Code: //+------------------------------------------------------------------+ void Tulis(string namateks, string teks, color warna, int pojok, int posx, int posy { ObjectCreate(namateks, OBJ_LABEL, 0, 0, 0); ObjectSetText(namateks, teks, Ukuran_Font, Jenis_Font, warna); ObjectSet(namateks, OBJPROP_CORNER, Letak_Pojok); ObjectSet(namateks, OBJPROP_XDISTANCE, posx); ObjectSet(namateks, OBJPROP_YDISTANCE, posy); Page 1 of 21 1 2 3 11 ... Last Originally Posted by hermit88 untuk fungsi label sendiri contohnya gimana ya? [HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40 1 of 32 27/11/2011 9:14 PM

Upload: ha54n

Post on 25-Jul-2015

296 views

Category:

Documents


31 download

TRANSCRIPT

Page 1: [Hot Discuss] Coding in Mql4 !1

Show 40 post(s) from this thread on one page

01-07-2011 03:30 PM

01-07-2011 03:41 PM

[HOT DISCUSS] Coding in MQL4 !

Printable View

Givonly[HOT DISCUSS] Coding in MQL4 !

Ini thread saya bikin berangkat dari postingan Bro hermit88 di postingan2 sebelumnya yangsering ngajak diskusi tentang MQL4. Posting terakhir Bro hermit88 di thread sebelah rasanya koq

mending dibikin thread tersendiri biar thread sebelah itu ngga tambah gemuk & semakin jadi

gado2 :DSelain itu agar lebih fokus & nyaman diskusinya... :ok:

Oya, thread ini bukan bengkel EA/indikator yang ditujukan untuk "mereparasi" indi/EA error.

Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi yang sedang BELAJAR bikinEA/indikator hasil coding sendiri / coba2 ide sendiri.. :accute:

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.

Karena itu bagi para master yang udah sering/hobi oprek atau utak-atik EA, sangat diharapkansaran dan bantuannya demi membantu sesama member forum yang ingin belajar.

Regards,

:respect:Givo.

Givonly

Langsung menyambung pertanyaan sebelumnya:

Quote:

Label itu termasuk object di MQL4, dengan penulisannya menggunakan koordinat layar X & Y.

Ke contoh aja ya biar mudah.Ini adalah procedure Tulis yang saya bikin sekali, terus biasa saya pake untuk EA/indikator baru.

Enak kalo udah dibikin procedure, tinggal copas :p

PHP Code:

//+------------------------------------------------------------------+

void Tulis(string namateks, string teks, color warna, int pojok, int posx, int posy

{

ObjectCreate(namateks, OBJ_LABEL, 0, 0, 0);

ObjectSetText(namateks, teks, Ukuran_Font, Jenis_Font, warna);

ObjectSet(namateks, OBJPROP_CORNER, Letak_Pojok);

ObjectSet(namateks, OBJPROP_XDISTANCE, posx);

ObjectSet(namateks, OBJPROP_YDISTANCE, posy);

Page 1 of 21 1 2 3 11 ... Last

Originally Posted by hermit88

untuk fungsi label sendiri contohnya gimana ya?

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

1 of 32 27/11/2011 9:14 PM

Page 2: [Hot Discuss] Coding in Mql4 !1

01-07-2011 06:39 PM

}

Itu baris procedure taroh aja di bawah/akhir baris program.Ntar kita tinggal "manggil" dia, contohnya seperti ini:

PHP Code:

Tulis("Nama Programmer", "hermit88", Red, 1, 5, 5);

Maka ntar hasilnya akan muncul teks di pojok layar sebelah kanan atas berwarna merah, sesuai

dengan settingan yang kita buat di procedure sebelumnya.Jadi kalo ingin mengubah format tulisan, ya edit aja procedure-nya.

Catatan untuk pojok/corner:

0 - kiri atas

1 - kanan atas2 - kiri bawah

3 - kanan bawah

Sedangkan koordinat X & Y relatif terhadap corner ybs.Semoga cukup jelas.. :)

hermit88

Quote:

Originally Posted by Givonly

Langsung menyambung pertanyaan sebelumnya:

Label itu termasuk object di MQL4, dengan penulisannya menggunakan koordinat layar

X & Y.Ke contoh aja ya biar mudah.

Ini adalah procedure Tulis yang saya bikin sekali, terus biasa saya pake untuk

EA/indikator baru.Enak kalo udah dibikin procedure, tinggal copas :p

PHP Code:

//+------------------------------------------------------------------+void Tulis(string namateks, string teks, color warna, int pojok, int posx, int posy{ ObjectCreate(namateks, OBJ_LABEL, 0, 0, 0); ObjectSetText(namateks, teks, Ukuran_Font, Jenis_Font, warna); ObjectSet(namateks, OBJPROP_CORNER, Letak_Pojok); ObjectSet(namateks, OBJPROP_XDISTANCE, posx); ObjectSet(namateks, OBJPROP_YDISTANCE, posy);}

Itu baris procedure taroh aja di bawah/akhir baris program.

Ntar kita tinggal "manggil" dia, contohnya seperti ini:

PHP Code:

Tulis("Nama Programmer", "hermit88", Red, 1, 5, 5);

Maka ntar hasilnya akan muncul teks di pojok layar sebelah kanan atas berwarnamerah, sesuai dengan settingan yang kita buat di procedure sebelumnya.

Jadi kalo ingin mengubah format tulisan, ya edit aja procedure-nya.

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

2 of 32 27/11/2011 9:14 PM

Page 3: [Hot Discuss] Coding in Mql4 !1

:happy: akhirnya ada solusi biar :o (mata) kagak belok :D :D

1. Terimakasih sudah dibuatkan thread khusus ini.

Code:

//+------------------------------------------------------------------+

//| Tampilkan Nilai SMA.mq4 |

//| hermit88 |

//| http://indo.mt5.com/member.php?3846-hermit88 |

//+------------------------------------------------------------------+

#property copyright "hermit88"

#property link "http://indo.mt5.com/member.php?3846-hermit88"

extern bool TampilkanCurrentSMA = true;

extern int No1_SMA_Berapa = 100;

extern int No2_SMA_Berapa = 200;

int init() {return(0);}

int deinit() {return(0);}

int start()

{

if(TampilkanCurrentSMA)

{

Tulis("No1_SMA_Berapa", StringConcatenate("SMA ",No1_SMA_Berapa,"

SAAT INI @

",DoubleToStr(iMA(NULL,0,No1_SMA_Berapa,0,MODE_SMA,PRICE_CLOSE,0),4)),

Red, 2, 5, 40);

Tulis("No2_SMA_Berapa", StringConcatenate("SMA ",No2_SMA_Berapa,"

SAAT INI @

",DoubleToStr(iMA(NULL,0,No2_SMA_Berapa,0,MODE_SMA,PRICE_CLOSE,0),4)),

Red, 2, 5, 5);

}

if(!TampilkanCurrentSMA)

return(0);

}

//+------------------------------------------------------------------+

void Tulis(string namateks, string teks, color warna, int pojok, int

posx, int posy)

{

ObjectCreate(namateks, OBJ_LABEL, 0, 0, 0);

ObjectSetText(namateks, teks, 16, "Times New Roman", Red);

ObjectSet(namateks, OBJPROP_CORNER, pojok);

ObjectSet(namateks, OBJPROP_XDISTANCE, posx);

ObjectSet(namateks, OBJPROP_YDISTANCE, posy);

}

2. jadi penerapannya kurang lebih :accute: kan bro ?

3. akan saya pelajari lebih lanjut kalo bingung pastinya tanya lagi....

btw,terimakasih kanjeng guru Givonly udah berkenan membimbing pelajaran coding saya

Catatan untuk pojok/corner:0 - kiri atas

1 - kanan atas2 - kiri bawah

3 - kanan bawah

Sedangkan koordinat X & Y relatif terhadap corner ybs.

Semoga cukup jelas.. :)

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

3 of 32 27/11/2011 9:14 PM

Page 4: [Hot Discuss] Coding in Mql4 !1

01-07-2011 07:18 PM

01-09-2011 02:30 AM

:drink: :bravo:

Givonly

Yup begitu.Tapi alangkah baiknya jika dipotong, jangan panjang2 kayak uler :p

Code:

StringConcatenate("SMA ",No2_SMA_Berapa," SAAT INI @

",DoubleToStr(iMA(NULL,0,No2_SMA_Berapa,0,MODE_SMA,PRICE_CLOSE,0),4))

PHP Code:

iMA(NULL,0,No2_SMA_Berapa,0,MODE_SMA,PRICE_CLOSE,0)

Kasih variabel aja biar enak bacanya :accute:

hermit88

Quote:

lagi seneng uler uleran gan, kan tahun baru

tapi lain kali pasti ganti pake variable aja deh,nurut ama gurunya biar nggak di hukum :D :D :D

tanya lagi ahh... :woo: cari cari jawaban sendiri kagak nemu yang pasti :woo:

apa bedanya :pleeease:

1. return;

2. return(0);

3. return(1);

4. int CalcSum(int x, int y){

return(x+y);

Originally Posted by Givonly

Yup begitu.

Tapi alangkah baiknya jika dipotong, jangan panjang2 kayak uler :p

Code:

StringConcatenate("SMA ",No2_SMA_Berapa," SAAT INI @",DoubleToStr(iMA(NULL,0,No2_SMA_Berapa,0,MODE_SMA,PRICE_CLOSE,0),4))

PHP Code:

iMA(NULL,0,No2_SMA_Berapa,0,MODE_SMA,PRICE_CLOSE,0)

Kasih variabel aja biar enak bacanya :accute:

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

4 of 32 27/11/2011 9:14 PM

Page 5: [Hot Discuss] Coding in Mql4 !1

01-09-2011 08:29 AM

}

Givonly

Quote:

Haha, botol ketemu tutup.. :D

Sebenarnya dari coding Bro yang sebelumnya, saya ingin komen bagian yang ini:

Code:

......

if(!TampilkanCurrentSMA)

return(0);

}

Menurut saya, bagian if(!TampilkanCurrentSMA) itu tidak perlu.

Oke, jadi begini.

Operator return itu berfungsi MENGHENTIKAN fungsi yang bersangkutan, dengan mengembalikannilai tertentu yang diletakkan di dalam tanda kurungnya.

Tapi kita tahu, tidak setiap FUNCTION itu menghasilkan nilai. Ada yang cuma melakukan perintah,tanpa ada output-nya.

Kebetulan function dari contoh sebelumnya (function Tulis) PAS banget sebagai contoh. Ituadalah contoh FUNCTION yang tanpa output nilai, dia hanya menghasilkan perintah untuk menulis

text saja.

Nah dalam MQL:

Function yang menghasilkan nilai selalu didahului dengan tipe data-nya (int, double,string, dll) sesuai dengan nilai yang ingin dicari.Sedangkan funnction yang tidak menghasilkan nilai tertentu, didahului dengan tipedata void (seperti contoh di atas).

Ke pertanyaan:

return;

Nah, ini contoh return yang diletakkan di function yang tanpa output nilai. Bro

Originally Posted by hermit88

lagi seneng uler uleran gan, kan tahun baru

tapi lain kali pasti ganti pake variable aja deh,nurut ama gurunya biar nggak di hukum :D :D :D

tanya lagi ahh... :woo: cari cari jawaban sendiri kagak nemu yang pasti :woo:

apa bedanya :pleeease:

1. return;

2. return(0);

3. return(1);

4. int CalcSum(int x, int y)

{return(x+y);

}

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

5 of 32 27/11/2011 9:14 PM

Page 6: [Hot Discuss] Coding in Mql4 !1

01-09-2011 02:46 PM

perhatikan ngga ada tanda kurungnya khan?Nah return yang seperti ini BOLEH tidak ditulis, makanya Bro liat dari function Tulisyang saya bikin sebelumnya, itu di bagian akhir ngga saya kasih return wong nggaada gunanya hehe :p

return(0);ini return yang menghasilkan output 0 atau false.

return(1);ini return yang menghasilkan output 1 atau true.

int CalcSum(int x, int y){

return(x+y);}

Nah, perhatikan ini contoh function yang menghasilkan output nilai. Apa nilainya?Yakni x+y.

Oya, sebagai catatan.Dalam bahasa pemrograman yang lain, biasanya function tanpa nilai disebut prosedur (procedure)sedangkan yang ada output nilai-nya disebut fungsi (function). Tapi kalo di MQL ini dan untukdiskusi selanjutnya, semua disebut function aja.

hermit88

Quote:

Originally Posted by Givonly

Haha, botol ketemu tutup.. :D

Sebenarnya dari coding Bro yang sebelumnya, saya ingin komen bagian yang ini:

Code:

...... if(!TampilkanCurrentSMA) return(0); }

Menurut saya, bagian if(!TampilkanCurrentSMA) itu tidak perlu.

Oke, jadi begini.Operator return itu berfungsi MENGHENTIKAN fungsi yang bersangkutan, dengan

mengembalikan nilai tertentu yang diletakkan di dalam tanda kurungnya.

Tapi kita tahu, tidak setiap FUNCTION itu menghasilkan nilai. Ada yang cuma melakukanperintah, tanpa ada output-nya.

Kebetulan function dari contoh sebelumnya (function Tulis) PAS banget sebagai contoh.Itu adalah contoh FUNCTION yang tanpa output nilai, dia hanya menghasilkan perintah

untuk menulis text saja.

Nah dalam MQL:

Function yang menghasilkan nilai selalu didahului dengan tipe data-nya(int, double, string, dll) sesuai dengan nilai yang ingin dicari.

Sedangkan funnction yang tidak menghasilkan nilai tertentu, didahului

dengan tipe data void (seperti contoh di atas).

Ke pertanyaan:

return;

Nah, ini contoh return yang diletakkan di function yang tanpa output nilai.

Bro perhatikan ngga ada tanda kurungnya khan?Nah return yang seperti ini BOLEH tidak ditulis, makanya Bro liat dari

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

6 of 32 27/11/2011 9:14 PM

Page 7: [Hot Discuss] Coding in Mql4 !1

01-09-2011 03:04 PM

jika

Code:

int CalcSum(int x, int y)

{

return(x+y);

}

saya rubah menjadi

Code:

int CalcSum(int x=3, int y=5)

{

return(x+y);

}

maka pada function int CalcSum

a. menghasilkan nilai 8

b. menghasilkan nilai x=3 dan y=5c. menghasilkan nilai x=0 dan y=0

d. menghasilkan nilai x=1 dan y=1e. kalau salah semua berapa nilai yang dihasilkan?

mana yang benar guru? :woo:

Givonly

Quote:

function Tulis yang saya bikin sebelumnya, itu di bagian akhir ngga sayakasih return wong ngga ada gunanya hehe :p

return(0);ini return yang menghasilkan output 0 atau false.

return(1);

ini return yang menghasilkan output 1 atau true.int CalcSum(int x, int y)

{

return(x+y);}

Nah, perhatikan ini contoh function yang menghasilkan output nilai. Apa

nilainya? Yakni x+y.

Oya, sebagai catatan.

Dalam bahasa pemrograman yang lain, biasanya function tanpa nilai disebut prosedur

(procedure) sedangkan yang ada output nilai-nya disebut fungsi (function). Tapi kalo diMQL ini dan untuk diskusi selanjutnya, semua disebut function aja.

Originally Posted by hermit88

jika

Code:

int CalcSum(int x, int y) { return(x+y); }

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

7 of 32 27/11/2011 9:14 PM

Page 8: [Hot Discuss] Coding in Mql4 !1

Quote:

itu tidak lazim (kalo tidak disebut sebagai kurang tepat :p)

Jadi function itu ibarat mesin yang siap menerima input, tapi input tersebut jangan langsungdimasukkan ke function secara langsung.

Jadi begini

Code:

int a=3;

int b=5;

int c=CalcSum(3,5); //perhatikan inilah baris yang memanggil function

CalcSum & dimasukkan ke variabel c.

saya rubah menjadi

Code:

int CalcSum(int x=3, int y=5) { return(x+y); }

maka pada function int CalcSum

a. menghasilkan nilai 8b. menghasilkan nilai x=3 dan y=5

c. menghasilkan nilai x=0 dan y=0

d. menghasilkan nilai x=1 dan y=1e. kalau salah semua berapa nilai yang dihasilkan?

mana yang benar guru? :woo:

Originally Posted by hermit88

jika

Code:

int CalcSum(int x, int y) { return(x+y); }

saya rubah menjadi

Code:

int CalcSum(int x=3, int y=5) { return(x+y); }

maka pada function int CalcSum

a. menghasilkan nilai 8b. menghasilkan nilai x=3 dan y=5

c. menghasilkan nilai x=0 dan y=0

d. menghasilkan nilai x=1 dan y=1e. kalau salah semua berapa nilai yang dihasilkan?

mana yang benar guru? :woo:

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

8 of 32 27/11/2011 9:14 PM

Page 9: [Hot Discuss] Coding in Mql4 !1

01-09-2011 11:34 PM

int CalcSum(int x, int y)

{

return(x+y);

}

Kalo ditulis demikian, tentu c nilainya 8 :)

Untuk yang Bro tulis di atas, kalopun benar nanti itu akan menghasilkan 8.

Tetapi bedanya, itu menjadi function yang tidak bisa dipakai ulang karena variabel x dan y difungsi akan SELALU bernilai 3 dan 5 (padahal tujuan function adalah agar bisa dipanggil berkali-

kali).Coba bandingkan dengan function Tulis pada contoh sebelumnya, dari segi penulisan.

Yang perlu diingat dalam function adalah:

Ada bagian untuk deklarasi/penulisan function (berisi logic dari function itu sendiri),dan

1.

Ada bagian untuk memakai/"memanggil" function tersebut.2.

:accute:

hermit88

Quote:

terimakasih guru, sekarang saya lebih paham untuk membuat function :happy:

Originally Posted by Givonly

itu tidak lazim (kalo tidak disebut sebagai kurang tepat :p)

Jadi function itu ibarat mesin yang siap menerima input, tapi input tersebut jangan

langsung dimasukkan ke function secara langsung.

Jadi begini

Code:

int a=3;int b=5;int c=CalcSum(3,5); //perhatikan inilah baris yang memanggilfunction CalcSum & dimasukkan ke variabel c.

int CalcSum(int x, int y) { return(x+y); }

Kalo ditulis demikian, tentu c nilainya 8 :)

Untuk yang Bro tulis di atas, kalopun benar nanti itu akan menghasilkan 8.Tetapi bedanya, itu menjadi function yang tidak bisa dipakai ulang karena variabel x dan

y di fungsi akan SELALU bernilai 3 dan 5 (padahal tujuan function adalah agar bisa

dipanggil berkali-kali).Coba bandingkan dengan function Tulis pada contoh sebelumnya, dari segi penulisan.

Yang perlu diingat dalam function adalah:

Ada bagian untuk deklarasi/penulisan function (berisi logic dari function itusendiri), dan

1.

Ada bagian untuk memakai/"memanggil" function tersebut.2.

:accute:

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

9 of 32 27/11/2011 9:14 PM

Page 10: [Hot Discuss] Coding in Mql4 !1

btw,

sekarang saya mau tanya structure.di meta editor, ketika kita akan membuat new expert advisor

pertama kali kita disuguhi :

Code:

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

ea akan berjalan dengan urutan

int init()int start()

int deinit

int init() dieksekusi sekali pada saat ea mulai mode on

int start() dieksekusi berulangint deinit() dieksekusi sekali sebelum ea mode off

yang saya masih rancu pengertiannya di int start()jadi, apa yang menyebabkan ea keluar dari int start() kemudian mengeksekusi int deinit() ?

apakah operator return(0); yang menyebabkan ea keluar dari start menuju deinit ?

kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka

sebenarnya maksud saya :

Code:

......

if(!TampilkanCurrentSMA)

return(0);

}

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

10 of 32 27/11/2011 9:14 PM

Page 11: [Hot Discuss] Coding in Mql4 !1

01-10-2011 02:58 AM

untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off

kalo jawaban saya salah mohon koreksi yang benar supaya saya lebih menjiwai

Givonly

Quote:

Originally Posted by hermit88

terimakasih guru, sekarang saya lebih paham untuk membuat function :happy:

btw,sekarang saya mau tanya structure.

di meta editor, ketika kita akan membuat new expert advisor

pertama kali kita disuguhi :

Code:

//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start() {//---- //---- return(0); }//+------------------------------------------------------------------+

ea akan berjalan dengan urutan

int init()int start()

int deinit

int init() dieksekusi sekali pada saat ea mulai mode on

int start() dieksekusi berulangint deinit() dieksekusi sekali sebelum ea mode off

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

11 of 32 27/11/2011 9:14 PM

Page 12: [Hot Discuss] Coding in Mql4 !1

Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit() ( denganasumsi seolah2 setelah start() kemudian deinit() ).

Meskipun inisialisasi dieksekusi dengan urutan seperti yang Bro paparkan di atas, tetapi masing-masing adalah independen, dalam artian ketiga function standar tersebut diekseskusi terpisah

(sebagaimana function2 yang lain juga demikian).Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat oleh

developer MQL, bahwa init() sebagai "pintu masuk" dan deinit() sebagai "pintu keluar".

Tanpa mempedulikan/pusing dengan hal2 yang lain, pokoknya init() pasti dieksekusi jika EAdiattach & deinit() juga pasti dieksekusi jika EA keluar (baik sengaja, maupun reject oleh MT4).

Dari sini, dapat dipahami sesungguhnya tidak ada yang mengeluarkan function start(), karena

function special ini adalah ruang utama program yang dieksekusi/tidaknya adalah berdasarkanpergerakan tick. Selama tick gerak, start() akan terus diekseskusi berulang2.

Perhatikan pernyataan:

Quote:

Jadi jangan dihubungkan sebagai sebuah urutan antara start() dan deinit() tersebut, karenamasing2 terpisah.

EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja).

Sekali lagi saya ulangi:

init() -----> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadi

pada function yang lain.deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapun yang terjadi

pada function yang lain.start() -----> dieksekusi saat ada gerak tick, tanpa peduli apapun yang terjadi pada

function yang lain.

Saya coba bikin analogi ya:

Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan perintah sbb:

yang saya masih rancu pengertiannya di int start()jadi, apa yang menyebabkan ea keluar dari int start() kemudian mengeksekusi int

deinit() ?

apakah operator return(0); yang menyebabkan ea keluar dari start menuju

deinit ?

kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar maka

sebenarnya maksud saya :

Code:

...... if(!TampilkanCurrentSMA) return(0); }

untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off

kalo jawaban saya salah mohon koreksi yang benar supaya saya lebih

menjiwai

untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

12 of 32 27/11/2011 9:14 PM

Page 13: [Hot Discuss] Coding in Mql4 !1

01-10-2011 02:58 AM

Jika sampai sana, sampaikan dulu salam dari atasan. [init()]1.

Jika kondisi mendukung, bahas proyek kerjasama. [start()]2.

Jika mau pulang, jangan lupa bawa barang pesanan. [deinit()]3.

Perhatikan bahwa, Bro harus tetap bawa barang pesanan meskipun ngga jadi bahas proyek,

termasuk ngga sempet titip salam segala misalnya :D

Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika Bro maupulang dari sana [deinit()].

Maaf jika analogi kurang tepat, sekedar gambaran biar lebih menjiwai :accute:

Givonly

Quote:

Originally Posted by hermit88

terimakasih guru, sekarang saya lebih paham untuk membuat function :happy:

btw,sekarang saya mau tanya structure.

di meta editor, ketika kita akan membuat new expert advisor

pertama kali kita disuguhi :

Code:

//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start() {//---- //---- return(0); }//+------------------------------------------------------------------+

ea akan berjalan dengan urutan

int init()int start()

int deinit

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

13 of 32 27/11/2011 9:14 PM

Page 14: [Hot Discuss] Coding in Mql4 !1

Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit() ( denganasumsi seolah2 setelah start() kemudian deinit() ).

Meskipun inisialisasi dieksekusi dengan urutan seperti yang Bro paparkan di atas, tetapi masing-

masing adalah independen, dalam artian ketiga function standar tersebut diekseskusi terpisah(sebagaimana function2 yang lain juga demikian).

Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat olehdeveloper MQL, bahwa init() sebagai "pintu masuk" dan deinit() sebagai "pintu keluar".

Tanpa mempedulikan/pusing dengan hal2 yang lain, pokoknya init() pasti dieksekusi jika EA

diattach & deinit() juga pasti dieksekusi jika EA keluar (baik sengaja, maupun reject oleh MT4).

Dari sini, dapat dipahami sesungguhnya tidak ada yang mengeluarkan function start(), karenafunction special ini adalah ruang utama program yang dieksekusi/tidaknya adalah berdasarkan

pergerakan tick. Selama tick gerak, start() akan terus diekseskusi berulang2.

Perhatikan pernyataan:

Quote:

Jadi jangan dihubungkan sebagai sebuah urutan antara start() dan deinit() tersebut, karenamasing2 terpisah.

EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja).

Sekali lagi saya ulangi:

init() -----> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yang terjadipada function yang lain.

deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapun yang terjadipada function yang lain.

start() -----> dieksekusi saat ada gerak tick, tanpa peduli apapun yang terjadi pada

int init() dieksekusi sekali pada saat ea mulai mode on

int start() dieksekusi berulangint deinit() dieksekusi sekali sebelum ea mode off

yang saya masih rancu pengertiannya di int start()

jadi, apa yang menyebabkan ea keluar dari int start() kemudian mengeksekusi intdeinit() ?

apakah operator return(0); yang menyebabkan ea keluar dari start menujudeinit ?

kalo jawabannya adalah benar operator return(0); yang menyebabkan keluar makasebenarnya maksud saya :

Code:

...... if(!TampilkanCurrentSMA) return(0); }

untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off

kalo jawaban saya salah mohon koreksi yang benar supaya saya lebih

menjiwai

untuk mengeluarkan ea dari int start() menuju deinit sebelum mode off

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

14 of 32 27/11/2011 9:14 PM

Page 15: [Hot Discuss] Coding in Mql4 !1

01-10-2011 03:21 AM

function yang lain.

Saya coba bikin analogi ya:

Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan perintah sbb:

Jika sampai sana, sampaikan dulu salam dari atasan. [init()]1.

Jika kondisi mendukung, bahas proyek kerjasama. [start()]2.

Jika mau pulang, jangan lupa bawa barang pesanan. [deinit()]3.

Perhatikan bahwa, Bro harus tetap bawa barang pesanan meskipun ngga jadi bahas proyek,termasuk ngga sempet titip salam segala misalnya :D

Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika Bro maupulang dari sana [deinit()].

Maaf jika analogi kurang tepat, sekedar gambaran biar lebih menjiwai :accute:

hermit88

Quote:

Originally Posted by Givonly

Sebenarnya Bro agak rancu mungkin karena menghubungkan start() dengan deinit() (dengan asumsi seolah2 setelah start() kemudian deinit() ).

Meskipun inisialisasi dieksekusi dengan urutan seperti yang Bro paparkan di atas, tetapi

masing-masing adalah independen, dalam artian ketiga function standar tersebut

diekseskusi terpisah (sebagaimana function2 yang lain juga demikian).Dan function standar tersebut memiliki sebuah "perjanjian/kesepakatan" yang dibuat

oleh developer MQL, bahwa init() sebagai "pintu masuk" dan deinit() sebagai "pintu

keluar".

Tanpa mempedulikan/pusing dengan hal2 yang lain, pokoknya init() pasti dieksekusi jika

EA diattach & deinit() juga pasti dieksekusi jika EA keluar (baik sengaja, maupun rejectoleh MT4).

Dari sini, dapat dipahami sesungguhnya tidak ada yang mengeluarkan function start(),karena function special ini adalah ruang utama program yang dieksekusi/tidaknya

adalah berdasarkan pergerakan tick. Selama tick gerak, start() akan terus diekseskusi

berulang2.

Perhatikan pernyataan:

Jadi jangan dihubungkan sebagai sebuah urutan antara start() dan deinit() tersebut,karena masing2 terpisah.

EA keluar dari int start --> penyebabnya karena tidak ada gerak tick (cuma itu saja).

Sekali lagi saya ulangi:

init() -----> dieksekusi saat inisialisasi (masuk), tanpa peduli apapun yangterjadi pada function yang lain.

deinit() ----> dieksekusi saat deinisialisasi (keluar), tanpa peduli apapunyang terjadi pada function yang lain.

start() -----> dieksekusi saat ada gerak tick, tanpa peduli apapun yang

terjadi pada function yang lain.

Saya coba bikin analogi ya:Misalnya Bro dapat perintah dari atasan untuk berkunjung ke rumah klien, dengan

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

15 of 32 27/11/2011 9:14 PM

Page 16: [Hot Discuss] Coding in Mql4 !1

01-10-2011 09:24 AM

:D:D:D ini nih... yang saya suka dari kanjeng guru :D:D:D

penjelasannya sangat mantap, gamblang dan tanpa basa basi... :good::good::good:ok bro...

terimakasih atas waktu dan penjelasannya... :peace:

saya bobok dulu ya...

besok atau lusa kalo ada waktu, discuss lagi. :happy:

zakki

akhirnya ada master... yg hadir... :)

master tolong bantu saya

saya tidak bisa EA , tapi karena butuh.. saya ingin bikin akhirnya..

Code:

extern int TakeProfit = 75;

extern int StopLoss = 10;

extern int Slippage = 3;

extern double Lots = 0.1;

extern int TrailingStop = 30;

extern bool Trailing = true;

int Current;

int iTrade=0;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

perintah sbb:

Jika sampai sana, sampaikan dulu salam dari atasan. [init()]1.Jika kondisi mendukung, bahas proyek kerjasama. [start()]2.

Jika mau pulang, jangan lupa bawa barang pesanan. [deinit()]3.

Perhatikan bahwa, Bro harus tetap bawa barang pesanan meskipun ngga jadi bahasproyek, termasuk ngga sempet titip salam segala misalnya :D

Karena instruksi untuk bawa barang pesanan tersebut syaratnya cuma 1, yakni jika Bro

mau pulang dari sana [deinit()].Maaf jika analogi kurang tepat, sekedar gambaran biar lebih menjiwai :accute:

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

16 of 32 27/11/2011 9:14 PM

Page 17: [Hot Discuss] Coding in Mql4 !1

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

Comment (" belajar membuat EA");

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 Sell1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1);

double Sell1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0);

//double dEMA1, dEMA2, dEMA1before, dEMA2before;

// int iTrade=0;

// dEMA1=iMA(NULL,0,EMA1Periode,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);

// dEMA2before=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,1);

if (OrdersTotal()<1)

{

if (AccountFreeMargin()<1000*Lots)

{ Comment("EA tidak bekerja, dana kurang :", AccountFreeMargin());

return(0);}

if (Buy1_1 < Buy1_2)

{

OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-

StopLoss*Point,Ask+TakeProfit*Point,0);

}

if (Sell1_1 > Sell1_2)

{

OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-

TakeProfit*Point,0);

}

}

/* >>> Fungsi Trailing Stop <<< */

if(Trailing==true)

{

for(iTrade=0;iTrade<OrdersTotal();iTrade++)

{

OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*5)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);

return(0);

}

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

17 of 32 27/11/2011 9:14 PM

Page 18: [Hot Discuss] Coding in Mql4 !1

01-10-2011 09:39 AM

01-10-2011 09:58 AM

}

}

else

{

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*5))

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);

return(0);

}

}

}

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

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 ingin ambil 5 poinsaja saat sar diatas , begitu pula sebaliknya saat buy saya take profit 5 poin saja, 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 buka sell

lagi, ... alhasil stoploss nya juga kena... :( .. dikarnakan titik SAR dibawah dan harga berbailk jadibuy.. :wall:

master mohon sarannya , saya ingin membuat fungsi seperti ini :

1. jika signal sell, tp 5 pip tercapai.. maka tunggu signal buy untuk op selanjut nya..

atau begini2. jika order sell == 2 op maka tunggu signal buy untuk op selanjutnya..

tapi saya ndak tahu buatnya, saya mohon master, bantu saya ya ...:(

jhonie

bingung gan ngikutin, samasekali awan urusan coding EA..

gak ada kamus istilah-istilah EA ya?

ndorojuragan

Quote:

Originally Posted by Givonly

Ini thread saya bikin berangkat dari postingan Bro hermit88 di postingan2 sebelumnya

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

18 of 32 27/11/2011 9:14 PM

Page 19: [Hot Discuss] Coding in Mql4 !1

01-10-2011 12:06 PM

01-10-2011 06:47 PM

Gan, jika ada ebook berisi syntax mql4, mungkin bisa dishare di sini sehingga diskusi bisa lebihmudah diikuti dan lebih hidup.

thx

zakki

Quote:

klo yang bahasa inggris sebenarnya banyak gan ebook yang di share, ada tuh di thread sebelah.

tapi klo yang bhs indo nunggu master saja yang ngajarin , lebih enak :good:

ane sendiri gk terlalu bisa coding, cuman karena sering maenin game puzzle , sedikit2 ane cobangerakit EA.. kacangan wkwkwkwkwk ...:D

ndorojuragan

yang sering ngajak diskusi tentang MQL4. Posting terakhir Bro hermit88 di threadsebelah rasanya koq mending dibikin thread tersendiri biar thread sebelah itu ngga

tambah gemuk & semakin jadi gado2 :DSelain itu agar lebih fokus & nyaman diskusinya... :ok:

Oya, thread ini bukan bengkel EA/indikator yang ditujukan untuk "mereparasi" indi/EAerror.

Tapi thread ini lebih merupakan diskusi coding MQL4 terutama bagi yang sedang

BELAJAR bikin EA/indikator hasil coding sendiri / coba2 ide sendiri.. :accute:

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.

Karena itu bagi para master yang udah sering/hobi oprek atau utak-atik EA, sangat

diharapkan saran dan bantuannya demi membantu sesama member forum yang inginbelajar.

Regards,:respect:

Givo.

Originally Posted by ndorojuragan

Gan, jika ada ebook berisi syntax mql4, mungkin bisa dishare di sini sehingga diskusi

bisa lebih mudah diikuti dan lebih hidup.

thx

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

19 of 32 27/11/2011 9:14 PM

Page 20: [Hot Discuss] Coding in Mql4 !1

01-10-2011 07:05 PM

01-10-2011 08:52 PM

01-10-2011 09:20 PM

Quote:

ebook forex atau ebook coding gan?

wwwboy

ebook yang mungkin bisa bantu dalam Coding in MQL4 !Mql - Metatrader Development Course

http://7609098f.linkbucks.com

rzidh

wew mantap nih ada trit yg membahas MQL :)

ane mau tanya ya maklum masih newbie nih dgn bahasa MQLsaya lagi belajar mengkombinasikan 3 EMA cross nih

logikanya:* 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 makaOP sell.

jadi kalo garis EMA 3 & 6 masih berada dibawah EMA 50 maka dia cuma OP sell aja begitu juga

sebaliknya.

gimana ya bahasa MQLnya :)mohon pencerahannya

:drink:

zakki

Quote:

Originally Posted by zakki

klo yang bahasa inggris sebenarnya banyak gan ebook yang di share, ada tuh di thread

sebelah.

tapi klo yang bhs indo nunggu master saja yang ngajarin , lebih enak :good:

ane sendiri gk terlalu bisa coding, cuman karena sering maenin game puzzle , sedikit2

ane coba ngerakit EA.. kacangan wkwkwkwkwk ...:D

Originally Posted by rzidh

wew mantap nih ada trit yg membahas MQL :)

ane mau tanya ya maklum masih newbie nih dgn bahasa MQL

saya lagi belajar mengkombinasikan 3 EMA cross nihlogikanya:

* 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 dibawah EMA 50 maka OP sell.

jadi kalo garis EMA 3 & 6 masih berada dibawah EMA 50 maka dia cuma OP sell aja

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

20 of 32 27/11/2011 9:14 PM

Page 21: [Hot Discuss] Coding in Mql4 !1

01-10-2011 10:03 PM

ada itu gan... di threadnya master DwiM

http://indo.mt5.com/showthread.php?9...t-EA-Sederhana.

lengkap dijamin... :good:

amtwoxtwo

Quote:

begitu juga sebaliknya.

gimana ya bahasa MQLnya :)mohon pencerahannya

:drink:

Originally Posted by zakki

akhirnya ada master... yg hadir... :)

master tolong bantu saya

saya tidak bisa EA , tapi karena butuh.. saya ingin bikin akhirnya..

Code:

extern int TakeProfit = 75;extern int StopLoss = 10;extern int Slippage = 3;extern double Lots = 0.1;extern int TrailingStop = 30;extern bool Trailing = true;int Current;int iTrade=0;

//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

21 of 32 27/11/2011 9:14 PM

Page 22: [Hot Discuss] Coding in Mql4 !1

{//---- Comment (" belajar membuat EA"); 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 Sell1_1 = iSAR(NULL, 0, 0.04, 0.2, Current + 1);double Sell1_2 = iSAR(NULL, 0, 0.04, 0.2, Current + 0); //double dEMA1, dEMA2, dEMA1before, dEMA2before;// int iTrade=0;

// dEMA1=iMA(NULL,0,EMA1Periode,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);// dEMA2before=iMA(NULL,0,EMA2Periode,0,MODE_EMA,PRICE_CLOSE,1); if (OrdersTotal()<1) { if (AccountFreeMargin()<1000*Lots) { Comment("EA tidak bekerja, dana kurang :",AccountFreeMargin()); return(0);} if (Buy1_1 < Buy1_2) { OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,0); }

if (Sell1_1 > Sell1_2) { OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,0); } }

/* >>> Fungsi Trailing Stop <<< */

if(Trailing==true) {

for(iTrade=0;iTrade<OrdersTotal();iTrade++) { OrderSelect(iTrade,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { if(TrailingStop>0) { if(Bid-OrderOpenPrice()>Point*5) { OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); return(0); } }

} else { if(TrailingStop>0)

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

22 of 32 27/11/2011 9:14 PM

Page 23: [Hot Discuss] Coding in Mql4 !1

sy coba jawab nomor 1 y.

buat variabel bool buy = true,sell=true;

Setelah fungsi OrderSend,kasih bool tadi.Misal :

Code:

OrderSend (OP_BUY,xxx,xxx,xxx,xx,xx);buy=false;sell=true;

Begitu juga dg OrderSell buy=true;sell=false;

nah di atas sebelum OrderSend dikasih

Code:

if(buy==true)(OrderSend (OP_BUY,xxx,xxx,xxx,xxx);

if(sell==true)(Ordersend (OP_SELL,xxx,xxx,xxx,xxx);

itu cara yg termudah.

Skrg coba sy jwb yg nomor 2.

Pertama2, bikin variabel penanda OPBUY,OPSELL.contoh :

{ if((OrderOpenPrice()-Ask)>(Point*5)) { OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); return(0); } } } }

}

//---- return(0); }//+------------------------------------------------------------------+

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 ingin ambil5 poin saja saat sar diatas , begitu pula sebaliknya saat buy saya take profit 5 poin saja,

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 malahbuka sell lagi, ... alhasil stoploss nya juga kena... :( .. dikarnakan titik SAR dibawah dan

harga berbailk jadi buy.. :wall:

master mohon sarannya , saya ingin membuat fungsi seperti ini :

1. jika signal sell, tp 5 pip tercapai.. maka tunggu signal buy untuk op selanjut nya..

atau begini

2. jika order sell == 2 op maka tunggu signal buy untuk op selanjutnya..

tapi saya ndak tahu buatnya, saya mohon master, bantu saya ya ...:(

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

23 of 32 27/11/2011 9:14 PM

Page 24: [Hot Discuss] Coding in Mql4 !1

01-11-2011 10:01 AM

Code:

for (int a = 0; a < OrdersTotal(); a++)

{

if(OrderSelect(a, SELECT_BY_POS,MODE_TRADES) == true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() ==

MagicNumber && OrderCloseTime() == 0)

{

if(OrderType() == OP_BUY) OPBuy++;

if(OrderType() == OP_SELL) OPSell++;

}

}

}

nah, dari sini kita bisa ketahui jumlah order sell & buy.Mudah saja,

tinggal ditambahkan

Code:

if(OPBuy==2){buy=false;sell=true;}

if(OPSell==2){buy=true;sell=false;}

zakki

(>_<) cihuuyy ....

makasih bnyk master ... aku ke bengkel EA dulu ya ...

Quote:

Originally Posted by amtwoxtwo

sy coba jawab nomor 1 y.

buat variabel bool buy = true,sell=true;

Setelah fungsi OrderSend,kasih bool tadi.

Misal :

Code:

OrderSend (OP_BUY,xxx,xxx,xxx,xx,xx);buy=false;sell=true;Begitu juga dg OrderSell buy=true;sell=false;

nah di atas sebelum OrderSend dikasih

Code:

if(buy==true)(OrderSend (OP_BUY,xxx,xxx,xxx,xxx);if(sell==true)(Ordersend (OP_SELL,xxx,xxx,xxx,xxx);

itu cara yg termudah.

Skrg coba sy jwb yg nomor 2.

Pertama2, bikin variabel penanda OPBUY,OPSELL.

contoh :

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

24 of 32 27/11/2011 9:14 PM

Page 25: [Hot Discuss] Coding in Mql4 !1

01-11-2011 04:52 PM

Alhamdulillah... sukses master :)terima kasih bnyk

zakki

Quote:

Code:

for (int a = 0; a < OrdersTotal(); a++) { if(OrderSelect(a, SELECT_BY_POS,MODE_TRADES) == true) { if (OrderSymbol() == Symbol() && OrderMagicNumber() ==MagicNumber && OrderCloseTime() == 0) { if(OrderType() == OP_BUY) OPBuy++; if(OrderType() == OP_SELL) OPSell++; } } }

nah, dari sini kita bisa ketahui jumlah order sell & buy.Mudah saja,

tinggal ditambahkan

Code:

if(OPBuy==2){buy=false;sell=true;}if(OPSell==2){buy=true;sell=false;}

Originally Posted by amtwoxtwo

sy coba jawab nomor 1 y.

buat variabel bool buy = true,sell=true;

Setelah fungsi OrderSend,kasih bool tadi.

Misal :

Code:

Begitu juga dg OrderSell buy=true;sell=false;

nah di atas sebelum OrderSend dikasih

Code:

if(buy==true)(OrderSend (OP_BUY,xxx,xxx,xxx,xxx);if(sell==true)(Ordersend (OP_SELL,xxx,xxx,xxx,xxx);

itu cara yg termudah.

Skrg coba sy jwb yg nomor 2.

Pertama2, bikin variabel penanda OPBUY,OPSELL.contoh :

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

25 of 32 27/11/2011 9:14 PM

Page 26: [Hot Discuss] Coding in Mql4 !1

01-12-2011 07:22 PM

master, tanya lagi .. hehhehehhehe....

untuk yang nomor 2. saat variabel OPBuy n OPSell == 2 ... maka setelah itu EA tidak akan OP lagi...

cara ngereset variabel jadi nol lagi bagaimana master... sebelumnya terima kasih bnyk ya.... sayanubie abis.. maaf klo saya mengganggu ..

amtwoxtwo

Code:

for (int a = 0; a < OrdersTotal(); a++) { if(OrderSelect(a, SELECT_BY_POS,MODE_TRADES) == true) { if (OrderSymbol() == Symbol() && OrderMagicNumber() ==MagicNumber && OrderCloseTime() == 0) { if(OrderType() == OP_BUY) OPBuy++; if(OrderType() == OP_SELL) OPSell++; } } }

nah, dari sini kita bisa ketahui jumlah order sell & buy.Mudah saja,

tinggal ditambahkan

Code:

if(OPBuy==2){buy=false;sell=true;}if(OPSell==2){buy=true;sell=false;}

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

26 of 32 27/11/2011 9:14 PM

Page 27: [Hot Discuss] Coding in Mql4 !1

01-12-2011 08:11 PM

Quote:

langsung 0 kok kalo emang gak ada order.

karena fungsi

Code:

for (int a = 0; a < OrdersTotal(); a++)

{

if(OrderSelect(a, SELECT_BY_POS,MODE_TRADES) == true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() ==

MagicNumber && OrderCloseTime() == 0)

{

if(OrderType() == OP_BUY) OPBuy++;

if(OrderType() == OP_SELL) OPSell++;

}

}

}

adlah utk mengecek keberadaan jumlah order sedang aktif yg Dieksekusi oleh EA saat itu.Kalo gakada order aktif, 0 semua.

Oh y, OPBuy & OPSell merupakan tipe int.

zakki

Quote:

Originally Posted by zakki

master, tanya lagi .. hehhehehhehe....

untuk yang nomor 2. saat variabel OPBuy n OPSell == 2 ... maka setelah itu EA tidak

akan OP lagi ...cara ngereset variabel jadi nol lagi bagaimana master... sebelumnya terima kasih bnyk

ya.... saya nubie abis.. maaf klo saya mengganggu ..

Originally Posted by amtwoxtwo

langsung 0 kok kalo emang gak ada order.

karena fungsi

Code:

for (int a = 0; a < OrdersTotal(); a++) { if(OrderSelect(a, SELECT_BY_POS,MODE_TRADES) == true) { if (OrderSymbol() == Symbol() && OrderMagicNumber() ==MagicNumber && OrderCloseTime() == 0) { if(OrderType() == OP_BUY) OPBuy++; if(OrderType() == OP_SELL) OPSell++; } } }

adlah utk mengecek keberadaan jumlah order sedang aktif yg Dieksekusi oleh EA saat

itu.Kalo gak ada order aktif, 0 semua.

Oh y, OPBuy & OPSell merupakan tipe int.

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

27 of 32 27/11/2011 9:14 PM

Page 28: [Hot Discuss] Coding in Mql4 !1

01-14-2011 09:53 AM

01-15-2011 09:53 PM

berarti no.2 saya salah pasang kodenya... okey master.. saya pelajari lagi.. sebelumnya terima

kasih bnyk :)

zakki

Quote:

pak master... kali ini saya kesulitan pak... :wall:

kali ini buy sell nya open terus menerus.. sudah dikasih variabel buy sell masih tetap..mohon bimbingan nya guru :pleeease:

ini EA nyahttp://www.ziddu.com/download/133870...ustom.zip.html

iniangga

Quote:

maaf gan...

saya coba download..tapi link nya nggak bisa di buka...

coba pake attachment aja gan...

Originally Posted by amtwoxtwo

langsung 0 kok kalo emang gak ada order.karena fungsi

Code:

for (int a = 0; a < OrdersTotal(); a++) { if(OrderSelect(a, SELECT_BY_POS,MODE_TRADES) == true) { if (OrderSymbol() == Symbol() && OrderMagicNumber() ==MagicNumber && OrderCloseTime() == 0) { if(OrderType() == OP_BUY) OPBuy++; if(OrderType() == OP_SELL) OPSell++; } } }

adlah utk mengecek keberadaan jumlah order sedang aktif yg Dieksekusi oleh EA saat

itu.Kalo gak ada order aktif, 0 semua.

Oh y, OPBuy & OPSell merupakan tipe int.

Originally Posted by zakki

pak master... kali ini saya kesulitan pak... :wall:

kali ini buy sell nya open terus menerus.. sudah dikasih variabel buy sell masih tetap..mohon bimbingan nya guru :pleeease:

ini EA nya

http://www.ziddu.com/download/133870...ustom.zip.html

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

28 of 32 27/11/2011 9:14 PM

Page 29: [Hot Discuss] Coding in Mql4 !1

01-17-2011 12:22 PM

01-17-2011 02:04 PM

01-17-2011 03:08 PM

01-17-2011 10:39 PM

iniangga

Help...

master-master saya mau tanya..

apakah dengan adanya

PHP Code:

if(OrdersTotal()<1)

op akan close sendiri untuk menjaga OP yg terbuka hanya satu atau tetap harus ada fungsi

orderclose ?

Givonly

Quote:

Itu cuma membatasi jumlah OP aja.

Jadi tetep harus ada OrderClose.

nuttinu

kalo buat nambahin trailing stop gimana ya om?maksudnya...tiap harga berubah..langsung lock profit kaya gitu

iniangga

Quote:

Originally Posted by iniangga

Help...

master-master saya mau tanya..

apakah dengan adanya

PHP Code:

if(OrdersTotal()<1)

op akan close sendiri untuk menjaga OP yg terbuka hanya satu atau tetap harus adafungsi orderclose ?

Originally Posted by nuttinu

kalo buat nambahin trailing stop gimana ya om?

maksudnya...tiap harga berubah..langsung lock profit kaya gitu

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

29 of 32 27/11/2011 9:14 PM

Page 30: [Hot Discuss] Coding in Mql4 !1

01-18-2011 01:45 AM

01-18-2011 08:25 AM

01-18-2011 08:36 AM

01-18-2011 09:26 AM

ada di thread sebelah tu om....

ni link nya...

OPEN NEW TAB :peace:

nuttinu

Quote:

jadi logic nya ambil dari lock profit tersebut ya om?

zakki

master.. ada yang bisa buat auto lot..kalau balance nambah setiap $100 lot op dinaikkan.. kira2 bagaimana ya bunyi logica nya.. terima

kasih

Givonly

Quote:

Balance $100 lot=1

Balance $110 lot=1.1 ato tetep =1 nunggu dulu sampe $200 baru naik?Tolong pertanyaan diperjelas dengan CONTOH !

al-kahfi

bung givon...

saya suka nyetir pakai ea sejuta umat, selama ini perfect op di broker 4 digit, sekarang mau sayanaikkan ke broker 5 digit di exxness.. yah.. gak mau op bung... mohon bantuanya

oh..ya, sepertinya bung givon sudah pernah buat ndi auto Supply an Demand yah..

al-kahfi

Originally Posted by iniangga

ada di thread sebelah tu om....

ni link nya...

OPEN NEW TAB :peace:

Originally Posted by zakki

master.. ada yang bisa buat auto lot..

kalau balance nambah setiap $100 lot op dinaikkan.. kira2 bagaimana ya bunyi logicanya.. terima kasih

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

30 of 32 27/11/2011 9:14 PM

Page 31: [Hot Discuss] Coding in Mql4 !1

01-18-2011 09:32 AM

01-18-2011 05:52 PM

01-18-2011 06:00 PM

01-18-2011 07:05 PM

gtx

Quote:

ada tuh masta di share eadisana ada dibahas juga kok itu ea yang otomatis lotnya bertingkatsetelah profit di op pertama kemudian di op k2 pasti lotnya naik dan bisa disett sesuai keinginan

ontoh ea thuyul tuh modelnya seperti yang agan maksud , mav kalo salah mohon dikoreksi

zakki

Quote:

oke master.. link nya apa?

zakki

Quote:

iya master .. seperti itu.. balance awal $100 , jika balance udah $200, $300 , dst.. maka.. lot akan

naik secara otomatis.. Lot = 0.1, 0.11, 0.12, 0.13 dst.. mohon petunjuk dengan sangat....:pleeease: , sebelumnya maaf klo sudah merepotkan... master

Givonly

Quote:

Originally Posted by zakki

master.. ada yang bisa buat auto lot..kalau balance nambah setiap $100 lot op dinaikkan.. kira2 bagaimana ya bunyi logica

nya.. terima kasih

Originally Posted by gtx

ada tuh masta di share eadisana ada dibahas juga kok itu ea yang otomatis lotnya

bertingkat setelah profit di op pertama kemudian di op k2 pasti lotnya naik dan bisadisett sesuai keinginan ontoh ea thuyul tuh modelnya seperti yang agan maksud , mav

kalo salah mohon dikoreksi

Originally Posted by Givonly

Balance $100 lot=1Balance $110 lot=1.1 ato tetep =1 nunggu dulu sampe $200 baru naik?

Tolong pertanyaan diperjelas dengan CONTOH !

Originally Posted by zakki

iya master .. seperti itu.. balance awal $100 , jika balance udah $200, $300 , dst..

maka.. lot akan naik secara otomatis.. Lot = 0.1, 0.11, 0.12, 0.13 dst.. mohon petunjukdengan sangat.... :pleeease: , sebelumnya maaf klo sudah merepotkan... master

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

31 of 32 27/11/2011 9:14 PM

Page 32: [Hot Discuss] Coding in Mql4 !1

01-18-2011 07:49 PM

Show 40 post(s) from this thread on one page

Sebenarnya Bro blom menjawab pertanyaan saya sebelumnya.Tapi yaudahlah ini dicoba aja dulu, ntar kalo ngga sesuai silahkan ditanyain maunya gimana :woo:

Code:

double Lot = NormalizeDouble(AccountBalance()/1000,2);

metatraders

Cara menghapus tp sama sl gmana? Klo tp nya 0 malah eror.

All times are GMT +8. The time now is 09:12 PM.

Powered by vBulletin™ Version 4.0.2Copyright © 2011 vBulletin Solutions, Inc. All rights reserved.

Page 1 of 21 1 2 3 11 ... Last

[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40

32 of 32 27/11/2011 9:14 PM