• Welcome back! Thank you for being a part of this Traders Community. Let's discuss and share :)
    Selamat datang kembali! Trimakasih telah menjadi bagian dari Komunitas Trader ini. Mari berdiskusi dan berbagi :)

Tanya Jawab MQL

Penempatan Fungsinya tidak di Init(), tetapi di OnTick(), dengan catatan buat fungsi pengitung Oerder
Jadi logikanya adalah, JIKA Jumlah ORDER BUY=0, maka OP_BUY, begitu juga dengan SELL, coba but dulu nanti kita bantu koreksi :)
oke makasi om hendro fx dan abi manyu atas koreksinya dan saranya, saya bikin dl sesuai dng saranya.
 
agar bisa op lagi, ditaruh di sini "void OnTick(){}"
dan ditambahkan juga untuk filter setiap sudah TP mau OP berapa banyak.
contoh :
int TotalOPBuy = 0, TotalOPSell = 0; //ini ditaruh di Deklarasi Global
void OnTick(){
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY){TotalOPBuy++;if(TotalOPBuy<1)/*/masukkan signal untuk OP BUY disini/*/;}
if(OrderType()==OP_SELL){TotalOPSell++;if(TotalOPSell<1)/*/masukkan signal untuk OP SELLdisini/*/;}}



bingung com saya om hehe,,, code yang ini gimn ya om

*/masukkan signal untuk OP BUY disini/*/;}
 
oke makasi om hendro fx dan abi manyu atas koreksinya dan saranya, saya bikin dl sesuai dng saranya.
 




bingung com saya om hehe,,, code yang ini gimn ya om

*/masukkan signal untuk OP BUY disini/*/;}
maksudnya seperti ini gan
Code:
int TotalOPBuy = 0, TotalOPSell = 0; //ini ditaruh di Deklarasi Global
void OnTick(){
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderType()==OP_BUY){TotalOPBuy++;if(TotalOPBuy<1)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"EACom",Magic,0,clrBlue);}
if(OrderType()==OP_SELL){TotalOPSell++;if(TotalOPSell<1)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"EACom",Magic,0,clrRed);}}
 
maksudnya seperti ini gan
Code:
int TotalOPBuy = 0, TotalOPSell = 0; //ini ditaruh di Deklarasi Global
void OnTick(){
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderType()==OP_BUY){TotalOPBuy++;if(TotalOPBuy<1)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"EACom",Magic,0,clrBlue);}
if(OrderType()==OP_SELL){TotalOPSell++;if(TotalOPSell<1)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"EACom",Magic,0,clrRed);}}



oke om abi manyu saya tes dl.terimah kasih sblmnya.
 
xixii mumpung dikasih lampu hijau dari om HendroFX di Thread ane, langsung tanya dulu ah....
pertanyaannya jika kita memiliki costum indikator dan mempunyai input namun tidak memiliki nilai apapun di Data Window ( untuk mengisi mode ), bagaimana caranya untuk dapat mengisi modenya...?
itu dulu deh yang pertama, xixii Thanks Om

Salam Profit Indonesia
 
saya punya indikator bbstop ,pasti agan agan sdah tahu, untuk mebuat ea dari indigator itu codingnya gmn y, jika diatas indi maka buy, jika dibawah indi mk sell,
 
salam kenal semua masta.... sy new bie mq4. saya pengen buat ea op otomatis buy/sel berdasarkan pergerakan point dari harga open harian. misal harga open harian di harga 1.09400, apabila pergerakan point sampai 100 point maka buka op otomatis. kl diharga 1.09500 maka sel, kl diharga 1.09300 maka buy. tolong bantuan master coding mq4.......
 
maaf numpang nanya..
saya kan pengin nulis di fungsi Comment
\nJarakAntarCandle

fungsinya ada dua canlde.. saya hitung Average True Rangenya.
misal atr_a dan atr_b
value yang diambil atr_a - atr_b

nah bagaimana mendeclare value tersebut dan memasukkannya ke comment \nJarakAntarCandle
?

makasih soehoe
 
gan klu yang ini bagaimana ya, apakah cukup sprt ini saja untuk mmproteksi ea yang hanya jalan di akun demo
Code:
if(!IsDemo()){Alert("Maaf khusus demo");return(0);}
atau ada tambahan lagi ?
 
master-master saya belum pernah membuat yang namanya EA, ini saya baru mau coba, tapi EAnya gak mau OP kira-kira apa yang salah ya?

string Sym;
if(Pair=="") Sym = Symbol(); else Sym = Pair;
double Price = Ask;
double SL = Ask -(StopLoss*Point);
double TP = Ask -(TakeProfit*Point);
if (StopLoss==0) SL =0;
if (TakeProfit==0) TP =0;
//int OpenBuy=OrderSend(Sym,OP_BUY,Lots,Ask,Slippage,TP,SL,EACom,Magic,0,clrAqua);
if(OrdersTotal()==0)
{
int OpenBuy=OrderSend(Sym,OP_BUY,Lots,Ask,Slippage,TP,SL,EACom,Magic,0,clrAqua);
}
 
xixii mumpung dikasih lampu hijau dari om HendroFX di Thread ane, langsung tanya dulu ah....
pertanyaannya jika kita memiliki costum indikator dan mempunyai input namun tidak memiliki nilai apapun di Data Window ( untuk mengisi mode ), bagaimana caranya untuk dapat mengisi modenya...?
itu dulu deh yang pertama, xixii Thanks Om

Salam Profit Indonesia
Kalih tahu dong mas contoh Indikatornya seperti apa, jangan hanya bertanya tetapi yang ditanyakan tidak dilampirkan.., bagaimana bisa teman teman yang lain bisa belajar ? :)
 
master-master saya belum pernah membuat yang namanya EA, ini saya baru mau coba, tapi EAnya gak mau OP kira-kira apa yang salah ya?

string Sym;
if(Pair=="") Sym = Symbol(); else Sym = Pair;
double Price = Ask;
double SL = Ask -(StopLoss*Point);
double TP = Ask -(TakeProfit*Point);
if (StopLoss==0) SL =0;
if (TakeProfit==0) TP =0;
//int OpenBuy=OrderSend(Sym,OP_BUY,Lots,Ask,Slippage,TP,SL,EACom,Magic,0,clrAqua);
if(OrdersTotal()==0)
{
int OpenBuy=OrderSend(Sym,OP_BUY,Lots,Ask,Slippage,TP,SL,EACom,Magic,0,clrAqua);
}
Jika belum Pernah membuat EA, harus belajar dari NOL, ada banyak Vidio yang bisa dijadikan reverensi
 
Jika belum Pernah membuat EA, harus belajar dari NOL, ada banyak Vidio yang bisa dijadikan reverensi

kalau liat videonya sudah gan, saya lihat youtubenya soehoe sampai perintah OrderSend, codingnya saya tulis persis seperti yang ada di video miliknya soehoe, kalau lihat divedeonya EAnya mau OP gan, tapi yang saya buat EAnya gak mau OP, padahal codingnya sama persis seperti yang ada divideo. Maka dari itulah saya tanyakan disini gan, mungkin cara penulisan codingnya ada versi terbaru gan. Jadi saya mohon bantuannya apa kira-kira yang salah dicoding tersebut gan?
 
master-master saya belum pernah membuat yang namanya EA, ini saya baru mau coba, tapi EAnya gak mau OP kira-kira apa yang salah ya?

string Sym;
if(Pair=="") Sym = Symbol(); else Sym = Pair;
double Price = Ask;
double SL = Ask -(StopLoss*Point);
double TP = Ask -(TakeProfit*Point);
if (StopLoss==0) SL =0;
if (TakeProfit==0) TP =0;
//int OpenBuy=OrderSend(Sym,OP_BUY,Lots,Ask,Slippage,TP,SL,EACom,Magic,0,clrAqua);
if(OrdersTotal()==0)
{
int OpenBuy=OrderSend(Sym,OP_BUY,Lots,Ask,Slippage,TP,SL,EACom,Magic,0,clrAqua);
}
Kalau saya perhatikan coding yang di tulis tdak lengkap. Semua harus di deklarasikan dengan jelas
Contoh
string EACom= "ea buy";
string Pair="";
double Lots= 0.1;
int TakeProfit= 20;
int StopLoss= 10;
int Slippage = 3;
int Magic= 48288;
double SL= Ask-(StopLoss*Point)
double TP= Ask+ (TakeProfit*Point) (bagian ini agan salah menulis)

setelah semua parameter di deklarasikan, baru perintah OrderSend dijalankan, Teliti sebelum menulis coding dan perhatikan pesan warning dan error
 
gan klu yang ini bagaimana ya, apakah cukup sprt ini saja untuk mmproteksi ea yang hanya jalan di akun demo
Code:
if(!IsDemo()){Alert("Maaf khusus demo");return(0);}
atau ada tambahan lagi ?
Sudah cukup, bila hanya membuat EA hanya berjalan di akun DEMO
 
om2 semua. mau nanya masalah membaca order profit.

saya ada basic membaca order profit seperti ini
Code:
input double TP = 1
int start()
  {

double Profit = AccountProfit();

if ((Profit>=TP)&&(TO==2))
   {
      CloseAllBuySell();
      }
 
   return(0);
}


void CloseAllBuySell() {
   int close_status;
   for (i = OrdersTotal() - 1; i >= 0; i--) {
      if (OrderSelect(i, SELECT_BY_POS))
         if ((OrderSymbol()==S1 || OrderSymbol()==S2 ) &&
         (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderMagicNumber() == magic)
         close_status=myOrderClose(OrderTicket(),OrderLots(),OrderClosePrice());
   }
}


nah saya pengen belajar mengenai cara membaca profit per Order Post. Profit per BUY dan Profit Per sell.

tujuannya biar saya bisa membuat void CloseAllBuy dan CloseAllSell. agar tiap kali profit hanya tertutup BUY only atau SELL Only.

double Profit = AccountProfit(); ini yang saya gunakan untuk membaca profit per BUY dan SELL.
atau pake Fungsi OrderProfit?
 
Untuk membaca order profit berdasarkan jenis ordernya maka harus menggunakan Order select seperti yang agan tulis tentang fungsi close all buy dan sell,
Contoh sederhana menghitung Order Buy.

Code:
double HdProfitbuy(int myMagic)
{double result=0.0;
for(int i=0; i<=OrdersTotal()-1; i++){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)
            ||  (OrderMagicNumber()!=myMagic) 
            || OrderType()!=0)continue;
            result= OrderProfit();
             }

return(result);
}
 
Untuk me

Untuk membaca order profit berdasarkan jenis ordernya maka harus menggunakan Order select seperti yang agan tulis tentang fungsi close all buy dan sell,
Contoh sederhana menghitung Order Buy.

Code:
double HdProfitbuy(int myMagic)
{double result=0.0;
for(int i=0; i<=OrdersTotal()-1; i++){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)
            ||  (OrderMagicNumber()!=myMagic)
            || OrderType()!=0)continue;
            result= OrderProfit();
             }

return(result);
}
---edited---
kan ini
for(int i=0; i<=OrdersTotal()-1; i++){
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)
|| (OrderMagicNumber()!=myMagic)
|| OrderType()!=0)continue;
result= OrderProfit();
}

untuk membaca profitnya.. cara menaruh value hasil pembacaan diatas gmn ya?
apa double HdProfitbuy(int myMagic)?
jadi nanti inggal
if (profit>=HdProfitbuy)
{
CloseAllBuy
}
 
Last edited:
ya secara sederhana seperti itu, Logika yang saya berikan adalah fungsi untuk menghitung semua order buy dengan magic number tertentu
 
maaf numpang nanya..
saya kan pengin nulis di fungsi Comment
\nJarakAntarCandle

fungsinya ada dua canlde.. saya hitung Average True Rangenya.
misal atr_a dan atr_b
value yang diambil atr_a - atr_b

nah bagaimana mendeclare value tersebut dan memasukkannya ke comment \nJarakAntarCandle
?

makasih soehoe

Hal yang pertama harus di ketahui adalah atr_a dn atr_b,
setelah ketemu hitung GAP yang terjadi antar keduanya Hasil perhitungan (GAP) diubah menjadi String dan dimasukkan dalam comment EA.
 
Back
Top