Laman utama Perdagangan Sistem Siaran

Strategi Perdagangan Berlawanan Menggunakan EA di MetaTrader 5

Lampiran
18904.zip (1.11 KB, Muat turun 0 kali)

Dalam dunia perdagangan, terdapat pelbagai strategi yang boleh digunakan untuk mengoptimalkan keuntungan. Salah satu strategi yang menarik adalah membuka posisi berlawanan setelah posisi sebelumnya ditutup. Dalam artikel ini, kita akan membincangkan tentang penggunaan Expert Advisor (EA) untuk melaksanakan strategi ini di MetaTrader 5.

Contohnya, jika kita mempunyai posisi AUDUSD BUY 0.01 yang terbuka dan kita menutupnya (contohnya secara manual), EA Perdagangan Berlawanan akan segera membuka posisi baru dengan simbol yang sama, tetapi kali ini sebagai SELL.

Berikut adalah kod yang digunakan dalam fungsi OnTradeTransaction:

//+------------------------------------------------------------------+
//| Fungsi TradeTransaction                                             |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- dapatkan jenis transaksi sebagai nilai enumerasi 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- jika transaksi adalah hasil tambahan transaksi dalam sejarah
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_type         =-1;
      long     deal_entry        =-1;
      double   deal_volume       =0.0;
      string   deal_symbol       ="";
      if(HistoryDealSelect(trans.deal))
        {
         deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
         deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
        }
      else
         return;
      if(deal_entry==DEAL_ENTRY_OUT)
        {
         switch((int)deal_type)
           {
            case  DEAL_TYPE_BUY:
               m_trade.Buy(deal_volume,deal_symbol);
               break;
            case  DEAL_TYPE_SELL:
               m_trade.Sell(deal_volume,deal_symbol);
               break;
            default:
               break;
           }
        }
     }
  }

Di sini, kita menunggu transaksi penutupan posisi (DEAL_ENTRY_OUT). Setelah transaksi ini muncul, kita akan memeriksa jenis transaksi (jika kita menutup posisi BUY, ini akan menjadi transaksi SELL dan sebaliknya) dan seterusnya membuka posisi baru.

Siaran berkaitan

Komen (0)