Ide oleh: Vladimir Gribachev.
Kode MQL5 oleh: Vladimir Karputov.
Coin Flip adalah EA yang unik karena tidak memerlukan indikator khusus; posisi dibuka secara pseudo-random. EA ini juga dapat menampilkan statistik terkini dalam dua bahasa:

Fitur trailing digunakan untuk memodifikasi Stop Loss dari posisi yang terbuka. Jika terjadi kerugian, ukuran lot akan meningkat menggunakan strategi Martingale. Untuk memantau kerugian, dalam OnTradeTransaction, kita menangkap transaksi dengan DEAL_REASON_SL - tanda bahwa Stop Loss telah terpicu:
//+------------------------------------------------------------------+ //| Fungsi TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- mendapatkan jenis transaksi sebagai nilai enumerasi ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- jika transaksi merupakan hasil dari penambahan transaksi dalam riwayat if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_ticket =0; long deal_order =0; long deal_time =0; long deal_time_msc =0; long deal_type =-1; long deal_entry =-1; long deal_magic =0; long deal_reason =-1; long deal_position_id =0; double deal_volume =0.0; double deal_price =0.0; double deal_commission =0.0; double deal_swap =0.0; double deal_profit =0.0; string deal_symbol =""; string deal_comment =""; string deal_external_id =""; if(HistoryDealSelect(trans.deal)) { deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET); deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER); deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC); deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON); deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID); deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE); deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION); deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP); deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT); deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { PrevBars=0; if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0) last_lots_sl=deal_volume; else last_lots_sl=0.0; } } }
Parameter Input
- Stop Loss - Level Stop Loss;
- Take Profit - Level Take Profit;
- Trailing Stop - trailing;
- Trailing Step - langkah trailing;
- Lots - ukuran lot diatur secara manual (jika Lots di atas nol, maka Risk harus sama dengan nol);
- Risk - ukuran lot dihitung secara otomatis (jika Risk di atas nol, maka Lots harus sama dengan nol);
- Martingale - rasio peningkatan lot, jika posisi sebelumnya ditutup oleh Stop Loss dan profit yang didapat negatif;
- Max lots - ukuran posisi maksimum; jika ukuran ini terlampaui, maka EA akan menghentikan operasinya secara abnormal;
- magic number - pengenal unik untuk EA.
Pengujian kemudian dihentikan (EA dihapus dari grafik secara paksa), karena ukuran lot referensi telah melebihi parameter Max lots:

Postingan terkait
- RRS Impulse: EA Unggulan untuk Trading MetaTrader 4
- Memahami Order Processing Visual untuk MetaTrader 4
- Membuat Expert Advisor MQL5 untuk Sinyal Trading Berdasarkan Dark Cloud Cover dan Piercing Line dengan RSI
- MQL5 Wizard: Ciptakan Sinya Trading Berdasarkan Bullish Harami/Bearish Harami dan CCI
- MQL5 Wizard: Menggunakan Sinyal Trading Berbasis Morning/Evening Stars dan RSI untuk MetaTrader 5