Perdagangan Sistem

EA Berbasis RSI dan Martingale untuk MetaTrader 5: Strategi Trading Unggul
MetaTrader5
EA Berbasis RSI dan Martingale untuk MetaTrader 5: Strategi Trading Unggul

Selamat datang, trader! Kali ini kita akan membahas tentang EA (Expert Advisor) yang menggunakan indikator RSI untuk menentukan momen masuk dan keluar yang optimal di pasar. EA ini melakukan pencarian adaptif untuk menemukan titik minimum dan maksimum, dengan menganalisis candle dalam jumlah tertentu sesuai dengan parameter yang ditentukan. Strategi Masuk dan Keluar Masuk: EA ini membuka posisi berdasarkan sinyal dari indikator RSI. - Beli: jika RSI mencapai titik minimum dalam periode BarsForCondition yang ditentukan. - Jual: jika RSI mencapai titik maksimum dalam periode BarsForCondition yang ditentukan. Keluar: Posisi akan ditutup ketika mencapai level TakeProfit atau StopLoss, yang ditentukan dalam poin melalui parameter TakeProfit dan StopLoss. Penyaringan Sinyal Waktu: EA ini hanya melakukan trading dalam interval waktu yang ditentukan antara StartTime dan EndTime. Hindari Berita: EA ini menghindari trading pada periode waktu yang ditentukan dalam parameter NewsTimeToAvoid. Spread: Nilai spread maksimum yang diperbolehkan diatur melalui parameter MaxSpread. Pengaturan Tambahan Martingale: EA ini dapat menerapkan strategi martingale untuk meningkatkan ukuran lot saat terjadi pembalikan pasar. Fitur ini diaktifkan melalui parameter Upheaval dan MartingaleMultiplier. Dengan mengandalkan EA berbasis RSI dan martingale ini, diharapkan Anda dapat memaksimalkan potensi trading Anda. Selamat bertrading dan semoga sukses!

2023.09.12
Mengenal MaybeAwo EA: Solusi Cerdas untuk Trading di MetaTrader 4
MetaTrader4
Mengenal MaybeAwo EA: Solusi Cerdas untuk Trading di MetaTrader 4

Fitur Utama: Entry Menggunakan Moving Average: EA ini memanfaatkan moving average sederhana untuk mengidentifikasi titik masuk potensial. Ketika kondisi pasar sesuai dengan strategi crossover moving average, EA dapat membuka order beli atau jual. Parameter Kustomizable: Anda dapat menyesuaikan perilaku EA dengan mengatur parameter masukan seperti periode moving, ukuran lot, stop loss, take profit, tingkat breakeven, jarak breakeven yang diinginkan, dan jam trading. Parameter ini memungkinkan Anda untuk mengadaptasi EA sesuai dengan gaya trading dan kelas aset yang berbeda. Fungsi Breakeven: EA ini dilengkapi dengan dua tingkat breakeven. Begitu sebuah trade menguntungkan, EA dapat secara otomatis memindahkan stop loss ke tingkat breakeven untuk melindungi keuntungan Anda. Jarak breakeven yang diinginkan dapat disesuaikan sesuai preferensi Anda. Trailing Stop: EA ini dapat menyesuaikan level stop loss seiring dengan perkembangan trade yang menguntungkan, membantu Anda mengunci keuntungan selama tren yang kuat. Jam Mulai dan Selesai: Anda dapat menentukan jam-jam di mana EA harus aktif trading. Fitur ini memungkinkan Anda untuk memfokuskan aktivitas trading pada sesi pasar tertentu. Catatan Penting: Periksa dan optimalkan parameter masukan dengan hati-hati agar EA sesuai dengan strategi trading Anda. Uji EA di akun demo sebelum menggunakannya dalam lingkungan trading nyata. Pantau kinerja EA dan sesuaikan parameter sesuai kebutuhan untuk beradaptasi dengan kondisi pasar yang berubah. # Trading mengandung risiko, dan EA ini tidak menjamin keuntungan. Gunakan dengan bijak dan waspadai risiko yang terkait dengan trading otomatis.

2023.09.10
AK-47 Scalper EA: Solusi Cerdas untuk Trading di MetaTrader 5
MetaTrader5
AK-47 Scalper EA: Solusi Cerdas untuk Trading di MetaTrader 5

Hai, Sobat Trader! Kali ini kita akan membahas tentang AK-47 Scalper EA, sebuah sistem trading yang dirancang khusus untuk platform MetaTrader 5. EA ini bisa jadi teman setia kamu dalam meraih profit. Yuk, kita intip lebih dalam! 1. Parameter Input #define ExtBotName "AK-47 EA" //Nama Bot #define  Version "1.00" //Import kelas input #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh>   #include <Trade\AccountInfo.mqh> #include <Trade\OrderInfo.mqh> //--- mendefinisikan variabel untuk keterbacaan kode #define Ask    SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define Bid    SymbolInfoDouble(_Symbol, SYMBOL_BID) //--- parameter input input string  EASettings         = "---------------------------------------------"; //-------- <Pengaturan EA> -------- input int      InpMagicNumber    = 124656;   //Nomor Magic input string  MoneySettings      = "---------------------------------------------"; //-------- <Pengaturan Uang> -------- input bool     isVolume_Percent  = true;     //Izinkan Volume Persen input double   InpRisk           = 3;        //Persentase Risiko dari Saldo (%) input string  TradingSettings    = "---------------------------------------------"; //-------- <Pengaturan Trading> -------- input double   Inpuser_lot       = 0.01;     //Lots input double   InpSL_Pips        = 3.5;      //Stoploss (dalam Pips) input double   InpTP_Pips        = 7;        //TP (dalam Pips) (0 = Tanpa TP) input int      InpMax_slippage   = 3;        //Maksimum slippage yang diizinkan (dalam Pips) input double   InpMax_spread     = 5;        //Maksimum spread yang diizinkan (dalam Point) (0 = mengambang) input string   TimeSettings      = "---------------------------------------------"; //-------- <Pengaturan Waktu Trading> -------- input bool     InpTimeFilter     = true;     //Filter Waktu Trading input int      InpStartHour      = 2;        //Jam Mulai input int      InpStartMinute    = 30;       //Menit Mulai input int      InpEndHour        = 21;       //Jam Selesai input int      InpEndMinute        = 0;        //Menit Selesai 2. Inisialisasi Variabel Lokal //--- Variabel int      Pips2Points;    // slippage  3 pips    3=points    30=points double   Pips2Double;    // Stoploss 15 pips    0.015      0.0150 bool     isOrder = false; int      slippage; long     acSpread; string   strComment = ""; CPositionInfo  m_position;                   // objek posisi trading CTrade         m_trade;                      // objek trading CSymbolInfo    m_symbol;                     // objek info simbol CAccountInfo   m_account;                    // pembungkus info akun COrderInfo     m_order;                      // objek order yang tertunda 3. Kode Utama a/ Fungsi inisialisasi Expert //+------------------------------------------------------------------+ //| Fungsi inisialisasi Expert                                   | //+------------------------------------------------------------------+ int OnInit() {    //deteksi 3 atau 5 digit    //Pip dan point    if(_Digits % 2 == 1) {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* InpMax_slippage;    }    else {       Pips2Double  = _Point;       Pips2Points  =  1;       slippage = InpMax_slippage;    }         if(!m_symbol.Name(Symbol())) // set nama simbol       return(INIT_FAILED);           RefreshRates(); //---    m_trade.SetExpertMagicNumber(InpMagicNumber);    m_trade.SetMarginMode();    m_trade.SetTypeFillingBySymbol(m_symbol.Name());    m_trade.SetDeviationInPoints(slippage); //---    return(INIT_SUCCEEDED); } b/ Fungsi tick Expert //+------------------------------------------------------------------+ //| Fungsi tick Expert                                             | //+------------------------------------------------------------------+ void OnTick() {    if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false) {       Comment("LazyBot\nTrading tidak diizinkan.");       return;    }         MqlDateTime structTime;    TimeCurrent(structTime);    structTime.sec = 0;       //Set waktu mulai    structTime.hour = InpStartHour;    structTime.min = InpStartMinute;          datetime timeStart = StructToTime(structTime);       //Set waktu selesai    structTime.hour = InpEndHour;    structTime.min = InpEndMinute;    datetime timeEnd = StructToTime(structTime);       acSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);          strComment = " " + ExtBotName + " - v." + (string)Version;    strComment += " Waktu server = " + TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS) + " - " + DayOfWeekDescription(structTime.day_of_week);    strComment += " Waktu trading = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --> " +  (string)InpEndHour + "h" + (string)InpEndMinute + "]";       strComment += " Spread Saat Ini = " + (string)acSpread + " Points";       Comment(strComment);       //Perbarui Nilai    UpdateOrders();       TrailingStop();           //Kondisi trading sesuai sesi    if(InpTimeFilter) {       if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd) {          if(!isOrder) OpenOrder();       }    }    else {       if(!isOrder) OpenOrder();    }    } //---Akhir fungsi 3.1 Menghitung sinyal untuk mengirim order //+------------------------------------------------------------------+ //| HITUNG SINYAL DAN KIRIM ORDER                                  | //+------------------------------------------------------------------+ void OpenOrder(){       ENUM_ORDER_TYPE OrdType = ORDER_TYPE_SELL;//-1;       double TP = 0;    double SL = 0;    string comment = ExtBotName;       //Hitung Lots    double lot1 = CalculateVolume();       if(OrdType == ORDER_TYPE_SELL) {       double OpenPrice = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              TP = OpenPrice - NormalizeDouble(InpTP_Pips * Pips2Double, _Digits);       SL = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);                if(CheckSpreadAllow()                                             //Cek Spread          && CheckVolumeValue(lot1)                                      //Cek volume          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_SELL_STOP, OpenPrice)  //Cek Jarak dari openPrice ke Bid          && CheckStopLoss(OpenPrice,  SL, TP)                           //Cek Jarak dari SL, TP ke OpenPrice          && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_SELL)) //Cek Saldo saat perintah diizinkan       {          if(!m_trade.SellStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))          Print(__FUNCTION__,"--> OrderSend error ", m_trade.ResultComment());       }    }    else if(OrdType == ORDER_TYPE_BUY) {       double OpenPrice = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);       SL = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              if(CheckSpreadAllow()                                             //Cek Spread          && CheckVolumeValue(lot1)                                      //Cek volume          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_BUY_STOP, OpenPrice)   //Cek Jarak dari openPrice ke Bid          && CheckStopLoss(OpenPrice,  SL, TP)                           //Cek Jarak dari SL, TP ke OpenPrice                  && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_BUY))  //Cek Saldo saat perintah diizinkan       {          if(!m_trade.BuyStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))// gunakan "ORDER_TIME_GTC" saat tanggal kadaluarsa = 0          Print(__FUNCTION__,"--> OrderSend error ", m_trade.ResultComment());       }    }    } 3.2 Menghitung Volume //+------------------------------------------------------------------+ //| HITUNG VOLUME                                                 | //+------------------------------------------------------------------+ // Kita mendefinisikan fungsi untuk menghitung ukuran posisi dan mengembalikan lot untuk order. double CalculateVolume() {    double LotSize = 0;    if(isVolume_Percent == false) {       LotSize = Inpuser_lot;      }    else {       LotSize = (InpRisk) * m_account.FreeMargin();       LotSize = LotSize /100000;       double n = MathFloor(LotSize/Inpuser_lot);       //Comment((string)n);       LotSize = n * Inpuser_lot;              if(LotSize < Inpuser_lot)          LotSize = Inpuser_lot;       if(LotSize > m_symbol.LotsMax()) LotSize = m_symbol.LotsMax();       if(LotSize < m_symbol.LotsMin()) LotSize = m_symbol.LotsMin();    }      //---    return(LotSize); } 3.3 EA memiliki fungsi "Trailing Stop",  SL akan berubah setiap kali harga berubah (turun) //+------------------------------------------------------------------+ //| TRAILING STOP                                                    | //+------------------------------------------------------------------+ void TrailingStop() {    double SL_in_Pip = 0;    for(int i = PositionsTotal() - 1; i >= 0; i--) {       if(m_position.SelectByIndex(i)) {    // memilih order berdasarkan indeks untuk akses lebih lanjut ke propertinya                  if((m_position.Magic() == InpMagicNumber) && (m_position.Symbol() == m_symbol.Name())) {             // Untuk order Buy             if(m_position.PositionType() == POSITION_TYPE_BUY) {                //--Menghitung SL saat harga berubah                SL_in_Pip = NormalizeDouble(Bid - m_position.StopLoss(), _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips) {                 double newSL = NormalizeDouble(Bid - InpSL_Pips * Pips2Double, _Digits);                                  if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> OrderModify error ", m_trade.ResultComment());                    continue                 }             }             }             //Untuk Sell Order             else if(m_position.PositionType() == POSITION_TYPE_SELL) {                //--Menghitung SL saat harga berubah                SL_in_Pip = NormalizeDouble(m_position.StopLoss() - Bid, _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips){                   double newSL = NormalizeDouble(Bid + (InpSL_Pips) * Pips2Double, _Digits);                   if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> OrderModify error ", m_trade.ResultComment());                      //continue;                 }           }            }          }      }    }       //--- Modifikasi order yang tertunda      for(int i=OrdersTotal()-1; i>=0; i--) {// mengembalikan jumlah order saat ini       if(m_order.SelectByIndex(i)) {      // memilih order tertunda berdasarkan indeks untuk akses lebih lanjut ke propertinya          if(m_order.Symbol() == m_symbol.Name() && m_order.Magic()==InpMagicNumber) {             if(m_order.OrderType() == ORDER_TYPE_BUY_STOP) {                SL_in_Pip = NormalizeDouble(Bid - m_order.StopLoss(), _Digits) / Pips2Double;                                   if(SL_in_Pip < InpSL_Pips/2) {                   double newOP = NormalizeDouble(Bid + (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP + InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Bid - (InpSL_Pips/2) * Pips2Double, _Digits);                                     if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Modify PendingOrder error!", m_trade.ResultComment());                      continue                     }               }             }          else if(m_order.OrderType() == ORDER_TYPE_SELL_STOP) {                SL_in_Pip = NormalizeDouble(m_order.StopLoss() - Ask, _Digits) / Pips2Double;                           if(SL_in_Pip < InpSL_Pips/2){                   double newOP = NormalizeDouble(Ask - (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP - InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Ask + (InpSL_Pips/2) * Pips2Double, _Digits);                                      if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Modify PendingOrder error!", m_trade.ResultComment());                      //continue;                     }                }              }       }//---Akhir fungsi }

2023.06.12
Cara Menutup Posisi Berdasarkan Ekuitas di MetaTrader 5
MetaTrader5
Cara Menutup Posisi Berdasarkan Ekuitas di MetaTrader 5

Menutup Posisi dengan BijakDi dunia trading, salah satu keputusan paling penting yang harus kita ambil adalah saat menutup posisi. Dalam artikel kali ini, kita akan membahas cara menutup posisi berdasarkan ekuitas menggunakan MetaTrader 5.Apa Itu Penutupan Posisi Berdasarkan Ekuitas?Menutup posisi berdasarkan ekuitas adalah strategi yang digunakan trader untuk mengelola risiko dan memaksimalkan keuntungan. Dengan mempertimbangkan ekuitas akun, kita bisa menentukan kapan waktu terbaik untuk menutup posisi yang sedang berjalan.Langkah-langkah Menutup Posisi di MetaTrader 5Masuk ke Akun Trading: Buka aplikasi MetaTrader 5 dan masuk ke akun trading Anda.Pilih Posisi yang Ingin Ditutup: Di bagian 'Trade', Anda akan melihat semua posisi yang terbuka. Pilih posisi yang ingin Anda tutup.Klik Tombol Tutup: Setelah memilih posisi, klik tombol 'Close' yang ada di samping posisi tersebut. Anda juga bisa menyesuaikan jumlah lot yang ingin ditutup jika perlu.Konfirmasi Penutupan: Setelah menekan tombol 'Close', akan muncul jendela konfirmasi. Pastikan semua informasi sudah benar dan klik 'OK' untuk menyelesaikan proses.Pentingnya Mengetahui Waktu yang Tepat untuk Menutup PosisiMengatur waktu penutupan posisi sangat krusial. Jika Anda menutup posisi terlalu cepat, Anda mungkin kehilangan potensi keuntungan. Sebaliknya, menunggu terlalu lama bisa menyebabkan kerugian yang lebih besar. Oleh karena itu, selalu perhatikan indikator pasar dan berita ekonomi yang dapat mempengaruhi pergerakan harga.Dengan memahami cara menutup posisi berdasarkan ekuitas, Anda dapat menjadi trader yang lebih bijak dan lebih terampil. Semoga artikel ini bermanfaat untuk Anda semua!

2023.05.27
Menggunakan Martingale untuk Manajemen Uang di MetaTrader 5
MetaTrader5
Menggunakan Martingale untuk Manajemen Uang di MetaTrader 5

Halo, para trader! Kali ini kita akan membahas tentang EA (Expert Advisor) yang dirancang khusus untuk manajemen uang dengan metode martingale menggunakan "multiplier". Jika kamu ingin meningkatkan strategi tradingmu, simak langkah-langkah berikut ini! Jalankan EA sebelum membuka posisi apapun agar mendapatkan hasil terbaik. Gunakan "MartingaleEA-5Levels" di grafik manapun. Pastikan mode "Martingale" diset ke true. Masukkan nama simbol seperti EURUSD atau GBPUSD. Pilih multiplier martingale dan masukkan di "Martingale Volume Multiplier" untuk mengalikan volume dari posisi sebelumnya. Misalnya, jika kamu memasukkan 2, dan volume posisi pertama adalah 1 lot, maka posisi berikutnya akan dibuka dengan volume 2 lot, dan posisi ketiga akan dibuka dengan 4 lot. EA ini dapat membuka maksimal 5 posisi martingale, jadi masukkan angka antara 1 hingga 5 di kolom "Number Of Martingale Trading". Di kolom jarak (distance 1 hingga distance 5), kamu harus memasukkan pips atau points antara setiap posisi yang akan dibuka. Di kolom "Close all positions when total take profit is", masukkan angka seperti 100. Ketika semua posisi martingale mencapai $100, semua posisi yang terbuka akan ditutup. Di kolom "Close all positions when total stop loss is", masukkan angka seperti -500. Ketika semua posisi martingale mencapai -$500, semua posisi yang terbuka akan ditutup. Dengan mengikuti langkah-langkah di atas, kamu dapat memanfaatkan metode martingale untuk mengelola uangmu dengan lebih baik. Ingat, trading itu bukan hanya tentang profit, tetapi juga tentang mengelola risiko dengan bijak. Selamat trading!

2023.05.24
Manajemen Stop Loss Dinamis dan Target Profit di MetaTrader 5 untuk Trader
MetaTrader5
Manajemen Stop Loss Dinamis dan Target Profit di MetaTrader 5 untuk Trader

Kode ini merupakan strategi manajemen risiko untuk sebuah Sistem Trading di MetaTrader yang mengelola posisi yang sudah ada berdasarkan parameter yang dimasukkan. Strategi ini berfokus pada penutupan posisi saat ambang profit atau loss tercapai dan menggunakan trailing stop loss untuk mengamankan keuntungan saat pergerakan harga menguntungkan trader. Berikut adalah penjelasan singkat mengenai kode ini: File header yang diperlukan disertakan untuk kelas informasi perdagangan dan simbol. Parameter input didefinisikan untuk persentase risiko, persentase profit, dan poin trailing stop. Variabel global dideklarasikan untuk objek informasi perdagangan dan simbol. Fungsi OnInit menginisialisasi objek informasi simbol dan memeriksa kesalahan. Fungsi OnDeinit tidak melakukan tindakan apa pun dalam kasus ini. Fungsi OnTick dipanggil setiap kali tick baru diterima, dan fungsi ini memanggil fungsi CheckTrades. Fungsi CheckTrades melakukan iterasi melalui semua posisi terbuka dan memeriksa apakah posisi tersebut milik simbol saat ini. Jika iya, ia menghitung profit saat ini dan menentukan apakah ambang profit atau loss telah tercapai. Jika salah satu ambang tercapai, posisi akan ditutup. Jika tidak ada ambang yang tercapai, kode memeriksa apakah tipe posisi adalah order buy atau sell dan memperbarui level stop loss dengan trailing stop loss. Jika level stop loss yang baru lebih menguntungkan daripada level stop loss saat ini, posisi akan dimodifikasi dengan level stop loss yang baru. Kode ini memberikan strategi manajemen risiko yang sederhana untuk mengelola posisi yang ada dengan menyesuaikan level stop loss secara dinamis berdasarkan trailing stop loss dan menutup posisi saat ambang profit atau loss tercapai.

2023.04.28
EA untuk Membuka Banyak Order Buy dan Sell Berdasarkan Input Pengguna di MetaTrader 5
MetaTrader5
EA untuk Membuka Banyak Order Buy dan Sell Berdasarkan Input Pengguna di MetaTrader 5

Halo para trader! Hari ini kita akan membahas tentang Expert Advisor (EA) yang dirancang khusus untuk MetaTrader 5 (MT5). EA ini memungkinkan kita untuk membuka banyak order buy dan sell berdasarkan input dari pengguna. Yuk, kita lihat lebih dalam! EA ini dilengkapi dengan variabel input yang memungkinkan kita untuk mengatur jumlah order buy dan sell, persentase risiko per trading, stop loss, take profit, dan slippage. Selain itu, ada juga antarmuka pengguna yang sederhana dengan tombol Buy dan Sell yang memudahkan kita dalam membuka order. Salah satu fitur menarik dari EA ini adalah kemampuannya untuk menghitung ukuran lot yang tepat berdasarkan persentase risiko yang sudah ditentukan dan stop loss yang kita atur. Sebelum melakukan order, EA ini juga memeriksa spread terhadap slippage yang sudah dikonfigurasi. Jadi, saat harga rata-rata lebih tinggi dari harga ask saat ini, EA ini akan membuka order buy. Sebaliknya, jika harga rata-rata lebih rendah dari harga bid saat ini, EA akan membuka order sell. Ketika kita mengklik tombol Buy atau Sell, EA ini akan membuka jumlah order yang telah ditentukan sesuai dengan ukuran lot yang telah dihitung, lengkap dengan stop loss dan take profit. Namun, perlu diingat bahwa EA ini adalah contoh sederhana dan mungkin tidak cocok untuk trading langsung tanpa modifikasi dan optimisasi tambahan. Sangat penting untuk menguji setiap algoritma trading di lingkungan yang aman, seperti akun demo, sebelum menggunakannya dengan dana nyata.

2023.04.27
CheckTrades: Solusi Manajemen Risiko untuk MetaTrader 5
MetaTrader5
CheckTrades: Solusi Manajemen Risiko untuk MetaTrader 5

Selamat datang di dunia trading! Kali ini kita akan membahas tentang CheckTrades, sebuah Expert Advisor (EA) yang dirancang khusus untuk MetaTrader 5. EA ini berfungsi untuk menutup posisi terbuka ketika sudah mencapai batas profit atau loss yang telah ditentukan oleh pengguna, yang dihitung sebagai persentase dari saldo akun. Hal yang perlu diingat, EA ini tidak memberikan sinyal masuk atau aturan timing pasar. Fokus utamanya adalah untuk mengelola risiko dari posisi yang sudah ada dengan menutupnya ketika batas profit atau loss tercapai. Variabel Eksternal yang Digunakan RiskPercentage: Variabel ini menunjukkan maksimum kerugian yang diizinkan per trade sebagai persentase dari saldo akun. Ketika kerugian saat ini dari posisi terbuka mencapai persentase ini, posisi akan ditutup untuk membatasi risiko. ProfitPercentage: Variabel ini menunjukkan profit yang diinginkan per trade sebagai persentase dari saldo akun. Ketika profit saat ini dari posisi terbuka mencapai persentase ini, posisi akan ditutup untuk mengamankan keuntungan. Karena EA ini fokus pada manajemen risiko dan tidak bergantung pada indikator pasar tertentu, ia dapat diterapkan pada simbol atau timeframe mana pun. Namun, penting untuk dicatat bahwa EA ini harus dipadukan dengan strategi trading yang mencakup sinyal masuk dan aturan manajemen trade lainnya agar menjadi sistem trading yang lengkap. Jika Anda menggunakan kode ini sebagai file include (dengan menempatkannya di folder MQL5\Include), tujuan utamanya adalah untuk manajemen risiko dengan menutup posisi berdasarkan batas profit dan loss yang ditentukan oleh pengguna. Anda juga dapat menggabungkan file include ini dengan file include lainnya yang memiliki tujuan khusus, seperti menghitung ukuran posisi berdasarkan risiko akun, trailing stop-loss, dan lainnya. Untuk melakukannya, Anda bisa menggunakan direktif #include dalam file EA utama Anda untuk menyertakan file ini, dan kemudian memanggil fungsi CheckTrades() saat diperlukan untuk mengelola posisi terbuka.

2023.04.25
Awal Sebelumnya 4 5 6 7 8 9 10 11 12 13 14 Berikutnya Akhir