Perdagangan Sistem

Burg Extrapolator: Sistem Trading Berkesan untuk MetaTrader 5
MetaTrader5
Burg Extrapolator: Sistem Trading Berkesan untuk MetaTrader 5

Pencipta idea: Vladimir, penulis kod mq5: barabashkakvn. Sistem Trading ini menggunakan kaedah Burg untuk ramalan linear. Ramalan linear adalah berdasarkan kepada pencarian nilai masa depan sebagai fungsi linear daripada nilai-nilai sebelumnya. Misalnya, kita ada julat harga x[0]..x[n-1] di mana indeks yang lebih tinggi merujuk kepada harga yang lebih terkini. Ramalan harga masa depan x[n] dikira seperti berikut: x[n] = -Sum(a[i]*x[n-i], i=1..p) Di sini, a[i=1..p] adalah nisbah model, dan p adalah urutan model. Metode Burg mencari nisbah a[] dengan mengurangkan ralat kuasa dua purata pada n-p bar latihan terakhir. Parameter Input MaxRisk - risiko maksimum untuk semua urus niaga yang dilakukan secara serentak. ntmax - bilangan maksimum urus niaga dalam satu arah. MinProfit - keuntungan minimum yang diramalkan di mana posisi akan dibuka. MaxLoss - kerugian maksimum yang diramalkan di mana posisi akan ditutup. TakeProfit - nilai Take Profit. StopLoss - nilai Stop Loss. TrailingStop - fungsi Trailing Stop. PastBars - bilangan bar sebelumnya yang digunakan untuk meramalkan nilai masa depan. ModelOrder - urutan model Burg sebagai pecahan daripada bilangan bar lepas (0..1). UseMOM - membolehkan penyingkiran tren data input: mom(i)=log[p(i)/p(i-1)]. UseROC - membolehkan penyingkiran tren data input: roc=100*(p(i)/p(i-1)-1). Hanya satu daripada variabel UseMOM dan UseROC boleh benar, iaitu UseMOM=true AND UseROC=true tidak dibenarkan. Seperti kebanyakan Sistem Trading yang dioptimumkan, Burg Extrapolator hanya berfungsi dengan baik pada bar latihan. Sistem ini akan terus mengalami kerugian tanpa penyesuaian semula yang berterusan.

2017.11.03
Strategi Perdagangan Berlawanan Menggunakan EA di MetaTrader 5
MetaTrader5
Strategi Perdagangan Berlawanan Menggunakan EA di MetaTrader 5

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.

2017.11.03
Strategi Last ZZ50: Memanfaatkan Indikator ZigZag untuk MetaTrader 5
MetaTrader5
Strategi Last ZZ50: Memanfaatkan Indikator ZigZag untuk MetaTrader 5

Dalam dunia trading, strategi yang berkesan adalah kunci untuk meraih kejayaan. Salah satu strategi yang menarik perhatian adalah strategi Last ZZ50, yang berasaskan indikator ZigZag dan pesanan tertunda. Idea kod ini pertama kali muncul dalam topik forum Strategi Berasaskan Indikator ZigZag - "Last ZZ50". Pengarang idea ini adalah Vitaly Muzichenko, manakala pengarang kod MQL5 adalah Vladimir Karputov. Prinsip umum strategi "Last ZZ50" adalah: Dalam indikator ZigZag, kita sentiasa menganalisis dua sinar terakhir: AB dan BC. Sinar AB masih belum tetap dan boleh berubah (posisi titik A boleh berubah). Pesanan tertunda akan diletakkan di tengah-tengah sinar AB dan BC bagi memastikan: Pemicu pesanan tertunda pada sinar AB adalah lanjutan dari trend yang ditunjukkan oleh sinar BC. Pemicu pesanan tertunda pada sinar BC adalah pembalikan dari trend yang ditunjukkan oleh sinar BC. Oleh kerana sinar AB masih belum tetap dan boleh berubah, pesanan tertunda akan sentiasa dimodifikasi untuk memastikan harganya berada di tengah-tengah AB. Posisi yang dibuka akan ditarik berdasarkan peraturan berikut: kita tunggu sehingga posisi bergerak ke kawasan keuntungan (tanpa mengambil kira komisen dan swap) sekurang-kurangnya (Trailing Stop + Trailing Step) mata, dan kemudian aktifkan fungsi trailing untuk posisi ini. Proses pencarian puncak dilaksanakan dalam Sistem Trading ini: indikator ditambah ke carta, dan tiga garis menegak tambahan dilukis melalui titik A, B dan C:

2017.11.03
OzFx - Sistem Trading Terbaik untuk MetaTrader 5
MetaTrader5
OzFx - Sistem Trading Terbaik untuk MetaTrader 5

Penulis idea: Yuri, penulis kod mq5: barabashkakvn. Deskripsi untuk isyarat pembukaan posisi: Stoh_main_1 - nilai Stochastic Oscillator pada bar #1. InpStochasticLevel - input untuk tahap Stochastic. AC_1 - nilai Accelerator Oscillator pada bar #1. ACPrev_2 - nilai Accelerator Oscillator pada bar #2. Isyarat BELI - apabila Stochastic Oscillator pada bar #1 lebih besar dari tahap input Stochastic dan Accelerator Oscillator pada bar #1 lebih besar dari Accelerator Oscillator pada bar #2. Dalam kes ini, Accelerator Oscillator pada bar #1 harus berada di atas sifar, dan Accelerator Oscillator pada bar #2 harus berada di bawah sifar: if(Stoh_main_1>InpStochasticLevel && AC_1>ACPrev_2 && AC_1>0 && ACPrev_2<0 && count_buys==0) ... Isyarat JUAL - apabila Stochastic Oscillator pada bar #1 kurang dari tahap input Stochastic dan Accelerator Oscillator pada bar #1 kurang dari Accelerator Oscillator pada bar #2. Dalam kes ini, Accelerator Oscillator pada bar #1 harus berada di bawah sifar, dan Accelerator Oscillator pada bar #2 harus berada di atas sifar: if(Stoh_main_1<InpStochasticLevel && AC_1<ACPrev_2 && AC_1<0 && ACPrev_2>0 && count_sells==0) ... Contoh isyarat JUAL: Apabila isyarat diterima, kita buka lima posisi dengan lot yang sama. Posisi pertama mempunyai Stop Loss dan Take Profit yang sama dengan sifar. Semua posisi seterusnya mempunyai Stop Loss yang sama dan setiap satu mempunyai Take Profit yang meningkat dengan langkah input Take Profit (dalam pips). Keputusan ujian pada semua simbol di PERIOD_D1:

2017.11.03
EA Martin: Strategi Trading Berkesan untuk MetaTrader 5
MetaTrader5
EA Martin: Strategi Trading Berkesan untuk MetaTrader 5

Penulis idea — Vladimir Khlystov, penulis kod mq5 — barabashkakvn. Berikut adalah penerangan dari penulis idea: Penerangan Expert Advisor (EA) ini telah dicipta atas permintaan salah seorang peserta forum. Komen daripada vvx080: Idea adalah untuk mencipta grid pesanan berhenti, contohnya kita mula dengan dua pesanan iaitu jual dan beli; setelah salah satu pesanan dicetuskan, pesanan yang kedua harus dipadam. Jika perdagangan tidak menguntungkan, selepas 10 mata kita buka pesanan bertentangan dengan lot yang digandakan. Jika ia tidak menguntungkan lagi, selepas 20 mata kita buka pesanan bertentangan yang dua kali ganda dari yang sebelumnya. Jika sekali lagi perdagangan negatif, selepas 30 mata kita buka pesanan bertentangan yang dua kali ganda dari yang sebelumnya, dan seterusnya. Dalam keadaan seperti ini, harus ada banyak kebetulan untuk deposit hilang sepenuhnya. Jika berlaku pergerakan perdagangan yang positif, kita gunakan trailing yang baik supaya kita dapat menangkap 300 poin keuntungan. Tiada stop loss dan take profit digunakan untuk pesanan, perdagangan ditutup pada keuntungan keseluruhan. Strategi ini tidak takut dengan trend atau flat. Ketika trend, keuntungan keseluruhan ditrail. Berikut adalah pengiraan awal untuk lot dan deposit: jual 0.1 -10p = -1, beli 0.2 -20p = -3 jual 0.4 -30p = -12 beli 0.8 -40p = -32 jual 1.6 -50p = -87 beli 3.2 -60p = -213 jual 6.4 -70p = -514 beli 12.8 -80p = -1194 jual 25.6 -90p = -2886 Saya fikir deposit sebanyak 3000 sudah cukup, tetapi strategi ini sukar untuk mencapai pesanan ke-8 atau ke-9. Mungkin saya salah di suatu tempat, tetapi idea ini adalah seperti itu. EA ini akan lebih tepat. EA ini menggunakan peningkatan lot, tetapi ia tidak boleh dipanggil martingale tulen. Selain itu, EA ini boleh keluar dari keadaan flat, sedangkan banyak martingale tidak dapat melakukannya. Sila tambah komen dan idea anda untuk memperbaiki strategi ini. Namun, sila jangan hantarkan idea "martingale adalah buruk" tanpa memeriksa EA ini sekurang-kurangnya di demo dan tanpa memahami prinsip operasinya. Parameter Expert Advisor InpStep - langkah antara posisi. InpProfitClose - keuntungan minimum, di mana semua posisi akan ditutup. InpLot - volum posisi. Keputusan ujian pada EURUSD:

2017.11.03
iCCI iMA: Sistem Trading Hebat untuk MetaTrader 5
MetaTrader5
iCCI iMA: Sistem Trading Hebat untuk MetaTrader 5

Pencipta idea adalah Andrey, manakala penulis kod MQL5 adalah barabashkakvn. Kali ini kita akan membincangkan bagaimana untuk mengira Moving Average menggunakan data dari Commodity Channel Index: //--- mencipta handle bagi indikator iMA    handle_iMA=iMA(m_symbol.Name(),Period(),15,0,MODE_EMA,handle_iCCI); //--- jika handle tidak berjaya dicipta    if(handle_iMA==INVALID_HANDLE)      {       //--- laporkan kegagalan dan keluarkan kod ralat       PrintFormat("Gagal untuk mencipta handle indikator iMA untuk simbol %s/%s, kod ralat %d",                   m_symbol.Name(),                   EnumToString(Period()),                   GetLastError());       //--- indikator dihentikan lebih awal       return(INIT_FAILED);      } Ini adalah sama seperti melancarkan indikator Moving Average dalam tetingkap Commodity Channel Index dengan "Data Indikator Sebelumnya" dipilih dalam parameternya (menerapkan indikator pada data indikator lain). Prinsip pembukaan dan penutupan posisi: Jika Moving Average yang dikira berdasarkan Commodity Channel Index melintasi Commodity Channel Index biasa ke bawah, posisi BUY dibuka. Jika Moving Average yang dikira berdasarkan Commodity Channel Index melintasi Commodity Channel Index biasa ke atas, posisi SELL dibuka. Jika Moving Average yang dikira berdasarkan Commodity Channel Index melintasi Commodity Channel Index biasa ke atas, posisi BUY ditutup. Jika Moving Average yang dikira berdasarkan Commodity Channel Index melintasi Commodity Channel Index biasa ke bawah, posisi SELL ditutup. Ujian pada EURUSD, H1:

2017.11.03
Panduan Lengkap Stop Loss dan Take Profit untuk MetaTrader 5
MetaTrader5
Panduan Lengkap Stop Loss dan Take Profit untuk MetaTrader 5

Dalam dunia trading, pengurusan risiko adalah kunci kejayaan. Apabila satu trade ditutup menggunakan Stop Loss, volum yang digunakan akan digandakan. Sebaliknya, jika ditutup melalui Take Profit, volum minimum akan digunakan. Untuk mengetahui sama ada satu trade dilakukan selepas pengaktifan Stop Loss atau Take Profit, anda boleh menggunakan fungsi OnTradeTransaction. Dalam build 1625, terdapat penambahan yang hebat, iaitu enumerasi ENUM_DEAL_REASON. Berikut adalah maklumat mengenai enumerasi ini: ENUM_DEAL_REASON Keterangan Sebab ... ... DEAL_REASON_SL Operasi ini dilaksanakan sebagai hasil daripada pengaktifan Stop Loss DEAL_REASON_TP Operasi ini dilaksanakan sebagai hasil daripada pengaktifan Take Profit ... ... Anda boleh menyemak ini dalam OnTradeTransaction. Dengan kata lain, ia adalah cara yang sangat mudah dan boleh dipercayai untuk menentukan sama ada satu trade adalah hasil daripada Take Profit atau Stop Loss. Setakat ini, dalam build 1626, EA ini hanya boleh disemak dalam ujian langsung dengan melancarkannya di atas carta atau dalam mod debug pada data sebenar (tekan F5 dalam MetaEditor). Saya menggunakan strategi berikut untuk mengatasi masalah ini: Dalam OnTradeTransaction, kita boleh menentukan sama ada Take Profit atau Stop Loss yang diaktifkan:       if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)          if(deal_entry==DEAL_ENTRY_OUT)            {             if(deal_reason==DEAL_REASON_SL)                ExtLot*=2.0;             else if(deal_reason==DEAL_REASON_TP)                ExtLot=m_symbol.LotsMin();            }

2017.11.03
Multi Arbitration 1.1xx: Sistem Trading Terbaru untuk MetaTrader 5
MetaTrader5
Multi Arbitration 1.1xx: Sistem Trading Terbaru untuk MetaTrader 5

Selamat datang ke dunia Multi Arbitration 1.1xx! Ini adalah perkembangan terbaru dari Multi Arbitration 1.000.Perbezaan dari versi 1.000:Sistem ini kini hanya beroperasi pada PERIOD_M1 (rujuk penjelasan di bawah, parameter Time frame).Sistem ini kini boleh melakukan dagangan dua simbol secara serentak. Simbol kedua diambil dari ExtArrSymbols array statik:string         ExtArrSymbols[20]=  {   "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",   "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",   "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",   "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"  };//+------------------------------------------------------------------+//| Fungsi inisialisasi pakar                                   |//+------------------------------------------------------------------+int OnInit()Prinsip pembukaan posisi telah berubah:Kini, posisi BUY baru hanya boleh dibuka apabila harga semasa berada di bawah posisi BUY terendah.Posisi SELL baru hanya boleh dibuka apabila harga semasa berada di atas posisi SELL tertinggi.Parameter baru Time frame membolehkan pengoptimuman EA pada mana-mana carta. Sistem Trading ini berfungsi apabila bar baru simbol utama muncul (iaitu simbol carta di mana EA beroperasi)://+------------------------------------------------------------------+//| Fungsi tick pakar                                             |//+------------------------------------------------------------------+void OnTick()  {//--- kita hanya bekerja pada masa kelahiran bar baru   static datetime prevtime=0;   datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame);   if(time_0==prevtime)      return;   prevtime=time_0;}Di sini, variabel InpTimeFrame adalah input Time frame kita. Bergantung kepada input Time frame, kita boleh membolehkan EA untuk berfungsi pada mana-mana jangka masa!Keputusan ujian pada EURUSD:

2017.11.03
Pertama Sebelumnya 23 24 25 26 27 28 29 30 31 32 33 Seterusnya Terakhir