• 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

terimakasih infonya mas...
maksud sy bukan script full hehehhe cuma syntax nya aja atau apa lah itu namanya....maaf ya om...

oia yg saya maksud MA dan RSI,gabungan 2 indic tersebut sebagai acuan open order. MA hasilnya harga,sedangkan RSI hasilnya nilain 0-100.Bagaimana cara menemukan perpaduan nilai keduanya??
terimakasih sebelumnya om...
Prinsip pengambilan Nilai RSI sama dengan pengambilan data MA, Bila RSI maka

Code:
double iRSI(
string symbol, // symbol
int timeframe, // timeframe
int period, // period
int applied_price, // applied price
int shift// shift
);

if(iRSI(NULL,0,14,PRICE_CLOSE,0)>iRSI(NULL,0,14,PRICE_CLOSE,1))
// Perintah BUY

Jika Nilai RSI sekarang lebih Besar dari Nilai RSI candle sebelumnya, maka OP BUY

Untuk penggabungan kedua Indikator yaitu MA dan RSI akan saya bahas setelah beberapa komentar di bawah ini
 
Saya akan membuat Contoh Gabungan Indikator RSI dengan MA, dan pengambilan data Nilai RSI dan MA untuk dijadikan Signal
aturan.jpg
Misalnya: Rule Untuk Op Buy adalah, Jika RSI lebih besar dari 70 dan MA10 lebih besar dari MA 100, maka OP BUY

Code:
double HdRsi=iRSI(Symbol(),0,14,PRICE_CLOSE,1);
double HdMa10=iMA(Symbol(),0,10,0,MODE_SMA,PRICE_CLOSE,1);
double HdMa100=iMA(Symbol(),0,100,0,MODE_SMA,PRICE_CLOSE,1);

if(HdRsi>=70&&HdMa10>HdMa100)// PERINTAH BUY.........
 
kalo untuk mendapatkan data lot transaksi yg sedang berjalan (open trade) gimana yah gan ?
spt di bawah ini atau bukan yah gan?

double lots=OrderLots();

Tapi sy udah coba command ini di metaeditor tetap saja tidak bisa mendapatkan data lot yg dimaksud.

lot.png
 
cara pertama:
int tOrder = OrdersTotal();
for (int i = tOrder-1; i>= 0; i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
double lots = OrderLots();
}

cara kedua:
bila tau no tiketnya,
OrderSelect(noTicket, SELECT_BY_TICKET, MODE_TRADES);
double lots = OrderLots();
 
Gan gimana caranya bikin indikator support n resistance?

1. Definikan dengan baik bagaimana kamu menentukan Support dan Resistance.
2. gunakan iHighest, iHigh, iLowest dan iLow utk menentukan posisi support resistance.
 
cara pertama:
int tOrder = OrdersTotal();
for (int i = tOrder-1; i>= 0; i--){
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
double lots = OrderLots();
}

cara kedua:
bila tau no tiketnya,
OrderSelect(noTicket, SELECT_BY_TICKET, MODE_TRADES);
double lots = OrderLots();

=========================================================

Terima kasih atas sharing nya, lot size sudah bisa ditampilkan di chart. :-)
Cuma masih ada "warning" ; gimana cara menghilangkan "warning" nya.
Sudah dicoba ditambah : return(0); tapi warning nya masih tetap muncul.


warning.png
 
Penulisan "Orderselect" harus dikembalikan dengan nilai boolen, yaitu True atau false.
Code:
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue;
// jika gagal untuk memilih maka pencarian akan dilanjutkan

coba di buat seperti yang saya contohkan, semoga tidak ada warning lagi :)
 
Penulisan "Orderselect" harus dikembalikan dengan nilai boolen, yaitu True atau false.
Code:
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue;
// jika gagal untuk memilih maka pencarian akan dilanjutkan

coba di buat seperti yang saya contohkan, semoga tidak ada warning lagi :)
=========================================================================

Sudah bisa gan, "warning" nya sudah hilang.

Terima kasih buat semuanya atas sharing nya. :-)

warning2.png
 
Salam kenal semua,
Ane newbi nih buat mql,
Ane mau tanya kalo code close all berdasarkan dari data open terakhir gmn ya,

Trims,
 
Last edited:
Mohon bantuan para Master ! ... kira kira salah nya dimana ini kok tidak mau close
sebelumnya terima kasih

void Toclose()
// CLOSE BUY //
{
bool close = false;
bool closeAllow_Buy = false;
{
if (SelisihBuy >= Tutup||SelisihBuy <= Tutup*-1){
closeAllow_Buy = True ;
}
if(closeAllow_Buy) {

for(int i = 0; i < OrdersTotal(); i++) {

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()==OP_SELL)
{
continue;
}
else if(OrderType()==OP_BUY)
{
close = OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);
}
}
}
// CLOSE SELL /
{

bool closeAllow_sell = false;
{
if (SelisihSell <= Tutup*-1||SelisihSell >= Tutup){
closeAllow_sell = True ;
}
if(closeAllow_sell) {

for(int j = 0; j < OrdersTotal(); j--) {

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()==OP_BUY)
{
continue;
}
else if(OrderType()==OP_SELL)
{
close = OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
}
}
}
}
}
}
 
Mohon bantuan para Master ! ... kira kira salah nya dimana ini kok tidak mau close
sebelumnya terima kasih

void Toclose()
// CLOSE BUY //
{
bool close = false;
bool closeAllow_Buy = false;
{
if (SelisihBuy >= Tutup||SelisihBuy <= Tutup*-1){
closeAllow_Buy = True ;
}
if(closeAllow_Buy) {

for(int i = 0; i < OrdersTotal(); i++) {

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()==OP_SELL)
{
continue;
}
else if(OrderType()==OP_BUY)
{
close = OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);
}
}
}
// CLOSE SELL /
{

bool closeAllow_sell = false;
{
if (SelisihSell <= Tutup*-1||SelisihSell >= Tutup){
closeAllow_sell = True ;
}
if(closeAllow_sell) {

for(int j = 0; j < OrdersTotal(); j--) {

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()==OP_BUY)
{
continue;
}
else if(OrderType()==OP_SELL)
{
close = OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
}
}
}
}
}
}
Logika untuk menutup order harus jelas, saya tidak bisa menunjukkan mana kesalahan dari coding ini karena logika awal tidak jelas
 
void Toclose()
// CLOSE BUY //
{
bool close = false;
bool closeAllow_Buy = false;
{
if (SelisihBuy >= Tutup||SelisihBuy <= Tutup*-1){
closeAllow_Buy = True ;
}
if(closeAllow_Buy) {

for(int i = 0; i < OrdersTotal(); i++) {

if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){continue;}
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()!=OP_BUY){continue;}
close = OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);

}
}
// CLOSE SELL /
{

bool closeAllow_sell = false;
{
if (SelisihSell <= Tutup*-1||SelisihSell >= Tutup){
closeAllow_sell = True ;
}
if(closeAllow_sell) {

for(int j = 0; j < OrdersTotal(); j++) {

if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){continue;}
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()!=OP_SELL){continue;}
close = OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
}
}
}
}
}
 
sel
void Toclose()
// CLOSE BUY //
{
bool close = false;
bool closeAllow_Buy = false;
{
if (SelisihBuy >= Tutup||SelisihBuy <= Tutup*-1){
closeAllow_Buy = True ;
}
if(closeAllow_Buy) {

for(int i = 0; i < OrdersTotal(); i++) {

if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){continue;}
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()!=OP_BUY){continue;}
close = OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrRed);

}
}
// CLOSE SELL /
{

bool closeAllow_sell = false;
{
if (SelisihSell <= Tutup*-1||SelisihSell >= Tutup){
closeAllow_sell = True ;
}
if(closeAllow_sell) {

for(int j = 0; j < OrdersTotal(); j++) {

if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){continue;}
if(OrderSymbol() != Symbol()) continue;
// continue;
if(OrderType()!=OP_SELL){continue;}
close = OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
}
}
}
}
}
Logika untuk menutup order harus jelas, saya tidak bisa menunjukkan mana kesalahan dari coding ini karena logika awal tidak jelas

terima kasih telah menanggapi
karena keterbatasan pengetahuan saya ini tetep tidak bisa close
berikut saya sertakan mq4 nya, EA ini cuma hasil comot sana sini saja kali kali ada yang berkenan menyempurnakan EA ini sehingga bermanfaat bagi kita semua, EA ini bertipe arbitrage
jadi ada 2 file yang terdiri dari server dan client
 

Attachments

sel



terima kasih telah menanggapi
karena keterbatasan pengetahuan saya ini tetep tidak bisa close
berikut saya sertakan mq4 nya, EA ini cuma hasil comot sana sini saja kali kali ada yang berkenan menyempurnakan EA ini sehingga bermanfaat bagi kita semua, EA ini bertipe arbitrage
jadi ada 2 file yang terdiri dari server dan client
Ini yang sudah saya betulkan, coba perhatikan baris ke 115 dan bandingkan yang belum diperbaiki. Coba test apakah masih belum bisa close?
 

Attachments

Salam kenal semua,
Ane newbi nih buat mql,
Ane mau tanya kalo code close all berdasarkan dari data open terakhir gmn ya,

Trims,
Mungkin bisa dijelaskan maksud dari pertanyaan Close All posisi dari data open order terakir bagaimana gan?

Untuk mengetahui open order terakir dapata menggunakan
Code:
int tiket;
for(int i=OrdersTotal()-1; i>=0; i--)
  { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) continue;
     tiket=OrderTilet();
   if (tiket >0) break;
// di sini kita dapatkan info mengenai data terakir dari order
}
 
Help
permisi om admin newbie izin bertanya kepda smua master..
bagaimana coding agar EA hanya OP sekali setiap signal ketika sudah TP/SL .. jadi baik rugi ataupun profit EA akan OP lagi menunggu signal berikutnya?
 
Help
permisi om admin newbie izin bertanya kepda smua master..
bagaimana coding agar EA hanya OP sekali setiap signal ketika sudah TP/SL .. jadi baik rugi ataupun profit EA akan OP lagi menunggu signal berikutnya?
Pertama Agan harus membuat fungsi menghitung Order dulu,
Code:
if(TotalOrder<=0)
{
if(signalBuy) Perintah Order BUY
if(SignalSell) perintah order Sell
}
Artinya EA akan menghtung jumlah order dulu, ketika Jumlahnya kurang dari sama dengan NOL maka EA akan Open posisi susai signal yang dihasilkan
 
Back
Top