• Tidak ada hasil yang ditemukan

[Hot Discuss] Coding in Mql4 !1

N/A
N/A
Protected

Academic year: 2021

Membagikan "[Hot Discuss] Coding in Mql4 !1"

Copied!
32
0
0

Teks penuh

(1)

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

(2)

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,

(3)

: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.. :) 

(4)

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

(5)

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);   }   } 

(6)

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 

(7)

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); } }

(8)

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: 

(9)

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: 

(10)

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); } }

(11)

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 

(12)

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 

(13)

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 

(14)

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 

(15)

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

(16)

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 

(17)

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); }

(18)

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 

(19)

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 

(20)

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

(21)

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()

(22)

{ {

//----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)

(23)

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

Referensi

Dokumen terkait

Berdasarkan penelitian di atas, maka dibuatlah sistem pendukung keputusan yang diharapkan berfungsi untuk membantu pihak JSC (Jakarta Smart City) untuk melakukan

perubahan keempat ini adalah Undang-Undang dasar Negara Republik Indonesia Tahun 1945 yang ditetapkan pada tanggal 18 Agustus 1945 dan diberlakukan kembali dengan Dekrit Presiden

International Business &amp; Marketing Management – Victoria University of Wellington. Marketing Management

An online resource bank and community forum where teachers can access thousands of Cambridge support resources, exchange lesson ideas and materials, and join subject-specific

Dan semoga setelah apa yang kita dapat atau kita ketahui dari pembelajaran ini dapat membantu kita dan menjadikan kita seorang yang dapat berfikir dan bertindak dengan benar

Oleh karena itu informasi tentang kesehatan gigi merupakan bagian dari kesehatan secara keseluruhan yang tidak bisa dipisahkan dan penting dalam menunjang kualitas

1) Keanekaragaman jenis burung diurnal di Hutan Sebadal Taman Nasional Gunung Palung ditemukan 40 jenis yang masuk ke dalam 17 family dan 4 ordo dengan total

Penelitian untuk mengetahui pengaruh konsentrasi asam, suhu hidrolisis dan lama waktu fermentasi dari biomassa yang digunakan yaitu alang-alang menjadi