// ----------------------------------------------- ------------------- /| Rata-Rata Bergerak.mq4 |/| Hak Cipta © 2005, MetaQuotes Software Corp. |/|
http://www.metaquotes.net/|/ ----------------------------------------------- ------------------- #define MAGICMA 20050610 extern double Lot = 0,1; extern double MaximumRisk = 0,02; extern double DecreaseFactor = 3; extern double MovingPeriod = 12; extern double MovingShift = 6;/ ----------------------------------------------- ------------------- /| Hitung posisi terbuka |/ ----------------------------------------------- ------------------- int CalculateCurrentOrders (simbol string) {int buys = 0, sells = 0;/---- for (int i = 0; ilt; OrdersTotal (); i ) {if (OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == false) break; if (OrderSymbol () == Symbol () OrderMagicNumber () == MAGICMA) {if (OrderType () == OP_BUY) membeli ; if (OrderType () == OP_SELL) menjual ; }}/---- mengembalikan volume pesanan jika (buysgt; 0) return (membeli); lain kembali (-menjual); }/ ---------------------------------------------- -------------------- /| Hitung ukuran lot optimal |/ ----------------------------------------------- ------------------- ganda LotsOptimized () {double lot = Banyak; int order = HistoryTotal ();/riwayat pesanan total kerugian int = 0;/jumlah pesanan kerugian tanpa istirahat/---- pilih lot ukuran lot = NormalizeDouble (AccountFreeMargin () * MaximumRisk1000.0,1);/---- menghitung jumlah pesanan kerugian tanpa istirahat jika (DecreaseFactorgt; 0) {for (int i = order-1; igt; = 0; i--) {if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == false) {Cetak (Kesalahan dalam riwayat!); istirahat; } if (OrderSymbol ()! = Symbol () || OrderType () gt; OP_SELL) melanjutkan;/---- if (OrderProfit () gt; 0) rusak; jika (OrderProfit () lt; 0) kerugian ; } if (lossesgt; 1) lot = NormalalizeDouble (lot-lot * lossesDecreaseFactor, 1); }/---- mengembalikan ukuran lot jika (lotlt; 0.1) lot = 0.1; kembali (banyak); }/ ---------------------------------------------- -------------------- /| Periksa kondisi pesanan terbuka |/ ----------------------------------------------- ------------------- batal CheckForOpen () {double ma; int res;/---- pergi berdagang hanya untuk tiks pertama dari bar baru jika (Volume [0] gt; 1) kembali;/---- dapatkan Rata-Rata Bergerak ma = iMA (NULL, 0, MovingPeriod, MovingShift, MODE_SMA, PRICE_CLOSE, 0);/---- menjual kondisi jika (Buka [1] gt; ma Tutup [1] lt; ma) {res = OrderSend (Simbol (), OP_SELL, LotsOptimized (), Tawaran, 3,0,0,, MAGICMA , 0, Merah); kembali; }/---- beli kondisi jika (Buka [1] lt; ma Tutup [1] gt; ma) {res = OrderSend (Simbol (), OP_BUY, LotsOptimized (), Ask, 3,0,0 ,, MAGICMA, 0, Biru); kembali; }/----}/ --------------------------------------- --------------------------- /| Periksa kondisi pesanan dekat |/ ----------------------------------------------- ------------------- membatalkan CheckForClose () {double ma;/---- pergi berdagang hanya untuk tiks pertama dari bar baru jika (Volume [0] gt; 1) kembali;/---- dapatkan Rata-Rata Bergerak ma = iMA (NULL, 0, MovingPeriod, MovingShift, MODE_SMA, PRICE_CLOSE, 0);/---- for (int i = 0; ilt; OrdersTotal (); i ) {if (OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == false) break; if (OrderMagicNumber ()! = MAGICMA || OrderSymbol ()! = Symbol ()) melanjutkan;/---- periksa jenis pesanan if (OrderType () == OP_BUY) {if (Buka [1] gt; ma Tutup [1] lt; ma) OrderClose (OrderTicket (), OrderLots (), BidLots (), Bid, 3, Putih); istirahat; } if (OrderType () == OP_SELL) {if (Buka [1] lt; ma Tutup [1] gt; ma) OrderClose (OrderTicket (), OrderLots (), OrderLots (), Ask, 3, White); istirahat; }}/----}/ -------------------------------------- ---------------------------- /| Mulai fungsi |/ ----------------------------------------------- ------------------- batal mulai () {//---- periksa riwayat dan perdagangan if (Barslt; 100 || IsTradeAllowed () == false) kembali;/---- hitung pesanan terbuka dengan simbol saat ini jika (CalculateCurrentOrders (Symbol ()) == 0) CheckForOpen (); selain itu CheckForClose ();/----}/ ---------------------------------------- -------------------------- Ini adalah kode Moving Average dasar dari Hal MT4 adalah saya ingin menambahkan trailing stop loss 35 hingga ini dengan SL atau 50 dan hanya membuatnya pendek! Saya ingin menambahkan filter B Band mabey lain atau EMA lain dengan tingkat Fib! Bantuan apa saja!