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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40
4 of 32 27/11/2011 9:14 PM
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
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
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
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
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
btw,
sekarang saya mau tanya structure.di meta editor, ketika kita akan membuat new expert advisor
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
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
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
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
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
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
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..
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
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
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
// 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); } }
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
[HOT DISCUSS] Coding in MQL4 ! http://indo.mt5.com/printthread.php?t=2427&pp=40
28 of 32 27/11/2011 9:14 PM
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
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
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
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.