Perdagangan Sistem

Cara Semak Perdagangan Terkini di MetaTrader 5 Tanpa Gelung
MetaTrader5
Cara Semak Perdagangan Terkini di MetaTrader 5 Tanpa Gelung

Dalam dunia perdagangan, mendapatkan maklumat terkini tentang perdagangan yang telah ditutup adalah sangat penting. Dengan kod berikut, anda boleh mendapatkan data perdagangan terakhir tanpa perlu menggunakan gelung. Anda boleh mencipta satu pembolehubah untuk menetapkan waktu mula hari semasa. (Ini sebenarnya tidak wajib.) Cipta beberapa pembolehubah lain untuk mencetak output carta dan juga boleh digunakan dalam blok kod lain. (Ini juga tidak wajib.) Penggunaan kod ini dalam fungsi OnTick(); akan menunjukkan hasil untuk setiap tick. Anda juga boleh menetapkannya untuk sekali setiap bar. // pembolehubah string DayStart = "00:00"; // Waktu Mula Hari double LastClosed_Profit; // Keuntungan Perdagangan Terkini string TradeSymbol, TradeType; // Memulakan Expert -------------------- int OnInit()   {    return(INIT_SUCCEEDED);   } // Menamatkan Expert ------------------- void OnDeinit(const int reason)   {   } // Fungsi OnTick -------------------------- void OnTick()   { // semak untuk perdagangan terakhir yang ditutup.    CheckLastClosed();   } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void CheckLastClosed()   {    datetime HistoryTime = StringToTime(DayStart); // sejarah dari "Mula hari hingga waktu semasa"    if(HistorySelect(HistoryTime,TimeCurrent()))      {       int Total = HistoryDealsTotal();       // Dapatkan nombor tiket urus niaga terakhir dan pilih untuk kerja lanjut.       ulong Ticket = HistoryDealGetTicket(Total -1);       // Dapatkan maklumat yang diperlukan.       LastClosed_Profit = NormalizeDouble(HistoryDealGetDouble(Ticket,DEAL_PROFIT),2);       TradeSymbol      = HistoryOrderGetString(Ticket,ORDER_SYMBOL);       // Kenal pasti urus niaga jual.       if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_BUY)         {          TradeType = "Jual Perdagangan";         }       // Kenal pasti urus niaga beli       if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_SELL)         {          TradeType = "Beli Perdagangan";         }       // output carta.       Comment("\n","Jumlah Urus Niaga - :  ", Total,               "\n","Tiket Urus Niaga Terakhir - :  ", Ticket,               "\n", "Keuntungan Terakhir -:  ", LastClosed_Profit,               "\n", "Perdagangan Terakhir adalah -:  ", TradeType);      }   } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ Anda juga boleh mendapatkan seluruh sejarah perdagangan (dari awal akaun) dengan menggunakan fungsi HistorySelect(); seperti berikut. // Dapatkan keseluruhan sejarah HistorySelect(0,TimeCurrent());

2024.04.22
Panduan Menggunakan EA Trailing untuk Profit di MetaTrader 5
MetaTrader5
Panduan Menggunakan EA Trailing untuk Profit di MetaTrader 5

Selamat datang, trader! Hari ini kita akan membincangkan satu alat yang boleh membantu meningkatkan prestasi trading anda menggunakan MetaTrader 5, iaitu EA Trailing yang membolehkan anda menguruskan pesanan dengan lebih baik. Apa itu EA ini? EA (Expert Advisor) ini adalah pengubahsuaian daripada EA lama yang boleh anda rujuk di sini. Bagaimana untuk menggunakannya: Langkah 1: Tambahkan EA ini pada mana-mana simbol yang anda pilih. Langkah 2: Tetapkan nilai parameter yang anda perlukan untuk TP (Take Profit), SL (Stop Loss), Trailing, Penutupan, dan ambang profit atau kerugian untuk pesanan. Langkah 3: EA ini tidak bergantung kepada nombor magik tertentu, jadi jika anda membuka pesanan menggunakan peranti mudah alih, pesanan tersebut akan diubah suai (SL, TP & Trailing) oleh EA ini. Ciri-ciri pengubahsuaian: Butang pemisahan dengan 5 butang Auto tutup semua pesanan jika mencapai profit mengikut nilai parameter: "CLOSE IF PROFIT-xxxx" (Isikan dengan 0 jika anda tidak menggunakannya). Isi 100.0 untuk auto tutup semua pesanan apabila profit mencapai RM100. Isi 0.0 untuk tidak mengaktifkan fungsi ini. Auto tutup semua pesanan jika mencapai kerugian mengikut nilai parameter: "CLOSE IF LOSS-xxxx" (Isikan dengan 0 jika anda tidak menggunakannya). Isi -70.0 untuk auto tutup semua pesanan apabila kerugian mencapai -RM70. Isi 0.0 untuk tidak mengaktifkan fungsi ini. Semoga trading anda lebih berjaya dengan EA ini! Sejarah Kemas Kini: Menambah butang Tutup BELI Menambah butang Tutup JUAL Mengeluarkan parameter yang tidak digunakan: Lots

2024.04.21
QuickTradeKeys123 - Sistem Trading Cekap untuk MetaTrader 5
MetaTrader5
QuickTradeKeys123 - Sistem Trading Cekap untuk MetaTrader 5

Hai semua! Hari ini kita nak bincangkan tentang QuickTradeKeys 123, satu sistem trading yang direka khas untuk memudahkan kita bertindak balas dengan cepat di pasaran. Dengan hanya satu tekan butang, anda boleh terus berdagang dari paparan carta! Fungsi Utama QuickTradeKeys 123 Berikut adalah ringkasan tentang fungsi-fungsi yang ditawarkan: Butang '1': Membuka posisi beli dengan saiz lot yang telah ditetapkan. Butang '2': Membuka posisi jual dengan saiz lot yang telah ditetapkan. Butang '3': Menutup semua posisi terbuka yang telah dibuka oleh EA berdasarkan nombor magik yang ditetapkan. Sistem ini sangat mudah digunakan, sesuai untuk trader baru mahupun yang berpengalaman yang mencari kawalan trading yang cepat dan berkesan melalui papan kekunci. Skop Penggunaan QuickTradeKeys 123 sesuai digunakan untuk semua pasangan mata wang dan timeframe. Untuk prestasi yang optimum dan pelaksanaan yang pantas, disarankan agar anda menggunakan spread yang rendah serta akses pasaran yang lancar. Cara Pemasangan Cara untuk menggunakan EA ini juga sangat mudah! Anda hanya perlu seret EA ke atas carta yang diingini, pastikan trading automatik diaktifkan dalam MetaTrader, dan EA diberi kuasa untuk melaksanakan perdagangan. Jangan lupa untuk mengkonfigurasi nombor magik mengikut keperluan anda dalam tetapan input. Penting! Perlu diingat, EA ini tidak direka untuk digunakan pada akaun trading langsung kecuali anda benar-benar memahami konsep dan risiko yang berkaitan. Disarankan untuk menguji EA ini terlebih dahulu di akaun demo agar anda lebih familiar dengan tingkah lakunya.

2024.04.20
Cara Menggunakan 'Counter' dalam MetaTrader 5 untuk Trading Berkesan
MetaTrader5
Cara Menggunakan 'Counter' dalam MetaTrader 5 untuk Trading Berkesan

01. Kira 'X' Kali dan Lalu Lepas. Langkah 01 - Buat satu variabel untuk menetapkan had kiraan. Anda boleh menggunakannya sebagai parameter input untuk pengoptimuman dalam kod anda. Langkah 02 - Buat satu lagi variabel untuk menyimpan had kiraan (berapa kali ia telah dikira). Langkah 03 - Setelah Counter dan had kiraan anda sama, itu menandakan sudah tiba masanya untuk melepaskan blok kod yang telah ditetapkan oleh anda. Langkah 04 - Setelah kod dilepaskan, pastikan anda mengreset counter juga. Jika tidak, ia akan terus mengira tanpa henti. Anda juga boleh menetapkan syarat penapisan kepada blok Counter. Contohnya, >> "JIKA ini benar, maka kira sekali." input int count = 50; // Tetapkan had kiraan sebagai input int Counter; // variabel counter // Inisialisasi Pakar -------------------- int OnInit() { return(INIT_SUCCEEDED); } // Deinisialisasi Pakar ------------------- void OnDeinit(const int reason) { } // OnTick Pakar -------------------------- void OnTick() { Counter ++; // tambah 1 kepada counter pada setiap tick. Comment("Kiraan Semasa -:", Counter); if(Counter == count) // Kira 'X' kali dan lepaskan | Blok ini hanya dilaksanakan sekali setiap kiraan. {      // Kod anda di sini...... Alert(count," Kali dikira"); Counter = 0; // Reset counter di akhir blok kod anda. Ini wajib. } } // Tamat OnTick  <<---------------------- 02. Lepas 'X' Kali dan Kemudian Tunggu 'X' Kali Lalu Lepas. Kaedah ini boleh digunakan seperti tunggu dan lepaskan, lepaskan dan tunggu. Langkah 01 - Buat satu variabel untuk menetapkan had kiraan dan had menunggu. Anda boleh menggunakannya sebagai parameter input untuk pengoptimuman dalam kod anda. Langkah 02 - Buat satu lagi variabel untuk menyimpan had kiraan & had menunggu (berapa kali ia telah dikira dan ditunggu). Langkah 03 - Setelah Counter dan had kiraan anda sama, itu menandakan sudah tiba masanya untuk melepaskan blok kod yang telah ditetapkan oleh anda. Langkah 04 - Setelah had menunggu dicapai, pastikan anda mengreset counter dan waiter juga. Jika tidak, ia akan berhenti berfungsi. Anda juga boleh menetapkan syarat penapisan kepada blok Counter dan waiter. Contohnya, >> "JIKA ini benar, tunggu sebentar" input int count = 50; // Tetapkan had kiraan sebagai input input int wait = 50; // Tetapkan had menunggu sebagai input int Counter; // variabel counter dengan nilai default "0" int Waiter; // variabel waiter dengan nilai default "0" // Inisialisasi Pakar -------------------- int OnInit()   {    return(INIT_SUCCEEDED);   } // Deinisialisasi Pakar ------------------- void OnDeinit(const int reason)   {   } // OnTick Pakar -------------------------- void OnTick()   {    Comment("Kiraan Ticks -: ", Counter, "\n", "Ticks Ditunggu -: ", Waiter);    if(Counter < count) // Lepas "X" kali      {       Counter++; // kemas kini counter       // Kod anda di sini.      }    else       if(Waiter < wait) // Tunggu "X" kali         {          Waiter++; // kemas kini waiter          // Kod anda di sini.         }    if(Waiter == wait) // Had Menunggu telah dicapai      {       Counter = 0; // reset counter       Waiter = 0; // reset waiter      }   } // Tamat OnTick  <<---------------------- //+------------------------------------------------------------------+ Istimewa -: Anda boleh menulis kod untuk "Lepas X kali dan berhenti" dengan mengubahsuai kod di atas dengan menghapuskan blok kod menunggu. Kemudian ia akan mengira untuk jumlah tertentu dan berhenti berfungsi sehingga counter direset. Anda boleh meresetnya di mana-mana dalam kod anda jika anda mencipta variabel ini dalam skala global.

2024.04.14
Cara Mengesan Bar Baru dengan Menggunakan Kiraan Bar - Panduan untuk Trader
MetaTrader5
Cara Mengesan Bar Baru dengan Menggunakan Kiraan Bar - Panduan untuk Trader

Pada kod sebelum ini, saya menggunakan masa untuk mengesan bar baru. Kali ini, mari kita gunakan kiraan bar untuk mengesan bar baru. Kaedah ini lebih ringan dan pantas berbanding dengan kaedah masa.Nyatakan pembolehubah dalam jenis data integer untuk menyimpan kiraan bar.Tetapkan kiraan bar untuk "BarsTotal_OnInt" semasa inisialisasi.Gunakan fungsi iBars(); untuk menetapkan kiraan bar bagi pembolehubah "BarsTotal_OnTick" pada carta langsung. Pembolehubah ini akan dikemas kini pada setiap tick.Gunakan komen dan peringatan untuk memeriksa ketepatan kod.int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| Fungsi inisialisasi pakar                                    | //+------------------------------------------------------------------+ int OnInit()   {      BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // Menetapkan jumlah bar semasa inisialisasi    return(INIT_SUCCEEDED);   }    void OnTick() // Fungsi OnTick   {      BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // Menyimpan jumlah terkini       if(BarsTotal_OnTick > BarsTotal_OnInt) // Bar baru telah tiba    {     BarsTotal_OnInt = BarsTotal_OnTick; // Mengemas kini sejarah.     Alert("Bar Baru telah tiba");     Comment("Kiraan Bar dalam sejarah -: ", BarsTotal_OnInt, "\n", "Kiraan Bar dalam Langsung -: ", BarsTotal_OnTick); // Kod anda di sini. -------------------------- // Anda boleh mengemas kini "bendera" / pembolehubah untuk digunakan kemudian juga.    }   }

2024.04.11
Pengurusan Dagangan Pintar dengan Virtual SL TP Pending di MetaTrader 4
MetaTrader4
Pengurusan Dagangan Pintar dengan Virtual SL TP Pending di MetaTrader 4

Memperkenalkan Skrip Virtual_SL_TP_Pending_with_SL_Trailing.mq4Skrip ini direka khas untuk membantu trader dalam menguruskan dagangan dengan menetapkan tahap stop loss dan take profit secara maya, serta menyediakan pesanan pending maya dengan ciri trailing stop loss yang opsional.Berikut adalah ringkasan tentang skrip ini:Hak Cipta dan Pautan: Menyediakan maklumat hak cipta dan pautan ke laman web pencipta.Versi: Menunjukkan versi skrip.Deskripsi: Memberikan maklumat tentang skrip, termasuk alamat emel pencipta, butiran harta intelek, dan amaran tentang penggunaan perisian ini atas risiko sendiri.Parameter Input: Pembolehubah luaran yang membolehkan pengguna menyesuaikan tingkah laku EA, termasuk: StopLossPoints : Stop Loss awal dalam mata.TakeProfitPoints : Take Profit awal dalam mata.SpreadThreshold : Had spread untuk stop loss/take profit maya dalam mata.TrailingStopPoints : Trailing stop dalam mata untuk pesanan pending maya.EnableTrailing : Pilihan untuk mengaktifkan atau menyahaktifkan trailing stop.Pembolehubah Global: Pembolehubah yang digunakan di seluruh skrip untuk menyimpan spread awal, stop loss maya, take profit maya, dan harga pesanan pending.Fungsi Inisialisasi (OnInit): Menginisialisasi EA apabila ia dilampirkan pada carta. Ia mengira stop loss maya awal, take profit, dan harga pesanan pending berdasarkan parameter input.Fungsi Tick (OnTick): Dipanggil pada setiap tick harga. Ia memeriksa jika spread telah meningkat melebihi had dan menyesuaikan stop loss maya, take profit, dan harga pesanan pending dengan sewajarnya. Ia juga memantau jika harga mencapai stop loss maya atau take profit dan menutup posisi. Selain itu, jika trailing stop diaktifkan dan harga mencapai harga pesanan pending, ia akan meletakkan pesanan pending maya dengan trailing stop loss.Fungsi Tutup Posisi (ClosePosition): Menutup posisi apabila harga mencapai stop loss maya atau take profit.Fungsi Letak Pesanan Pending (PlacePendingOrder): Meletakkan pesanan pending maya dengan trailing stop loss jika trailing stop diaktifkan.Skrip EA ini memberikan cara yang fleksibel untuk menguruskan dagangan menggunakan tahap maya dan ciri trailing stop, membolehkan trader mengautomasikan proses pengurusan dagangan mereka di MetaTrader 4.

2024.04.10
Tutup Posisi Pasangan Mata Wang dengan Close Basket Pairs v1 untuk MetaTrader 4
MetaTrader4
Tutup Posisi Pasangan Mata Wang dengan Close Basket Pairs v1 untuk MetaTrader 4

Hai para trader! Hari ini kita nak bincangkan satu skrip MQL4 yang sangat berguna, iaitu Close Basket Pairs v1. Skrip ini direka khas untuk menutup posisi bagi sekumpulan pasangan mata wang berdasarkan ambang keuntungan dan kerugian tertentu. Jom kita lihat dengan lebih lanjut: Skrip ini dikenali sebagai CloseBasketPairs.mq4. Hakcipta adalah milik MetaQuotes Software Corp. pada tahun 2024. Terdapat pautan ke laman web MetaQuotes. Versi skrip ini adalah 1.01. Pencipta skrip ini adalah persinaru@gmail.com. Skrip ini dilisensikan di bawah IP 2024 - sumber terbuka percuma. Tujuan utama skrip ini adalah untuk menutup posisi bagi sekumpulan pasangan mata wang apabila ambang keuntungan atau kerugian tertentu tercapai. Perlu diingat bahawa penggunaan skrip ini adalah atas risiko anda sendiri, dan penciptanya tidak akan bertanggungjawab atas sebarang kerosakan atau kerugian. Skrip ini mendefinisikan pasangan dalam kumpulan dan jenis pesanan masing-masing, bersama dengan ambang keuntungan dan kerugian. Ia akan memeriksa semua posisi terbuka dan memastikan sama ada ia termasuk dalam pasangan yang ditentukan. Jika satu posisi memenuhi kriteria (keuntungan melebihi ambang keuntungan atau kerugian melebihi ambang kerugian), maka posisi itu akan ditutup. Akhir sekali, skrip ini juga menyediakan fungsi untuk inisialisasi, penyahinisialisasian, dan pengendalian peristiwa tick. Fungsi PrintStrategyInfo() digunakan untuk mencetak maklumat mengenai strategi.

2024.04.10
Strategi Trend Mengikut Aliran Mudah untuk Membeli dan Menjual dalam MetaTrader 4
MetaTrader4
Strategi Trend Mengikut Aliran Mudah untuk Membeli dan Menjual dalam MetaTrader 4

Dalam dunia trading, mengikut aliran trend adalah salah satu strategi yang paling berkesan. Skrip MetaTrader 4 (MT4) ini memperkenalkan strategi trend mengikut aliran yang mudah untuk membeli dan menjual berdasarkan syarat yang telah ditentukan. Mari kita lihat lebih dekat skrip ini: Inisialisasi: Skrip ini akan diinisialisasi dan memaparkan mesej apabila berjaya diinisialisasi. Deinisialisasi: Skrip ini akan dihapuskan dan memaparkan mesej apabila dihapuskan. Fungsi OnTick: Fungsi ini akan dijalankan setiap kali terdapat perubahan harga (tick) dalam pasaran. a. Reset Variabel Penjejakan Posisi: Skrip ini akan mereset variabel yang menjejaki posisi beli dan jual terbuka. b. Semak Pesanan Terbuka: Ia akan melakukan loop melalui semua pesanan terbuka untuk menentukan jika terdapat posisi beli atau jual yang sedia ada. c. Buka Posisi Beli: Jika tiada posisi beli terbuka dan flag "OpenBuyPosition" ditetapkan kepada true, ia akan cuba membuka satu berdasarkan harga bida pasaran semasa. Ia juga akan menetapkan stop loss dan take profit untuk pesanan beli. d. Buka Posisi Jual: Jika tiada posisi jual terbuka dan flag "OpenSellPosition" ditetapkan kepada true, ia akan cuba membuka satu berdasarkan harga tawaran pasaran semasa. Ia juga akan menetapkan stop loss dan take profit untuk pesanan jual. e. Semak Pesanan Ditutup: Skrip ini akan memeriksa sebarang pesanan yang telah ditutup. Jika pesanan beli atau jual ditutup dengan keuntungan, ia akan mereset flag posisi yang berkaitan. Parameter Input: Skrip ini menyediakan parameter input untuk saiz lot, stop loss, take profit, dan flag untuk mengawal sama ada membuka posisi beli atau jual. Penafian: Skrip ini termasuk amaran yang menasihati pengguna untuk menggunakannya atas risiko sendiri dan membebaskan pencipta dari sebarang tanggungjawab terhadap kerosakan atau kerugian yang mungkin berlaku. Secara keseluruhannya, skrip ini bertujuan untuk mengautomasikan proses melaksanakan pesanan beli dan jual berdasarkan strategi trend mengikut aliran, membolehkan pengguna menyesuaikan parameter seperti saiz lot dan arah dagangan. Namun, pengguna disarankan agar berhati-hati dan melakukan ujian yang teliti sebelum menggunakannya dalam persekitaran dagangan sebenar.

2024.04.10
Cara Menggunakan Trailing Stop di MetaTrader 5 untuk Trader Malaysia
MetaTrader5
Cara Menggunakan Trailing Stop di MetaTrader 5 untuk Trader Malaysia

Kod ini berfungsi sama ada anda menggunakan Stop Loss atau tidak. Keperluan Anda perlu memasukkan "Trade.mqh" untuk mengakses kelas CTrade yang membolehkan anda bekerja dengan posisi dan pesanan. #include &lt;Trade\Trade.mqh&gt; // &lt;&lt;------------------------------------------ Sertakan "Trade.mqh" untuk mengakses Kelas CTrade Anda perlu menetapkan parameter input untuk menyesuaikan jarak trailing mengikut keperluan anda. Ini tidak wajib, tetapi lebih mudah. input double Traling_Step = 3.0; Anda perlu mendefinisikan instance untuk kelas CTrade. Namanya boleh apa saja. Lebih baik jika diletakkan selepas pengendali acara OnInit. CTrade trade; // &lt;&lt;------------------------------------------ Deklarasikan kelas "CTrade". Anda boleh mengganti "trade" dengan nama lain yang anda mahu Kemudian, anda perlu membuat pernyataan if untuk memeriksa jika ada posisi yang sedang berjalan pada masa ini. Pernyataan ini memanggil fungsi Check_TrailingStop(); untuk setiap tick. Ini penting kerana EA perlu trailing dengan tajam dan lancar. Pastikan untuk meletakkan pernyataan ini di atas pengendali acara OnTick agar berfungsi dengan baik. int OnInit() { //--- buat timer EventSetTimer(60); return(INIT_SUCCEEDED); } void OnTick() { if(PositionsTotal() > 0) { Check_TralingStop(); } } Anda perlu mendeklarasikan fungsi khusus yang dipanggil Check_TrailingStop(); (dalam kes ini) untuk melakukan selebihnya. Anda boleh menggunakan nama apa pun yang anda mahu. Fungsi khusus ini akan mengulangi semua posisi yang dibuka dan trailing mengikut jarak yang anda perlukan. void Check_TralingStop() { int totalPositions = PositionsTotal(); for(int count = 0; count < totalPositions; count++) { ulong TicketNo = PositionGetTicket(count); // Mendapatkan nombor tiket posisi menggunakan 'indeks' posisi. if(PositionSelectByTicket(TicketNo)) { if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) { double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); double stopLoss = PositionGetDouble(POSITION_SL); double takeProfit = PositionGetDouble(POSITION_TP); double bidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); ulong ticket = PositionGetTicket(count); double trailingLevel = NormalizeDouble(bidPrice - (Traling_Step * Point()), _Digits); if(stopLoss < openPrice) { if(bidPrice > openPrice && trailingLevel > openPrice) trade.PositionModify(ticket, trailingLevel, takeProfit); } if(bidPrice > openPrice && trailingLevel > stopLoss) { trade.PositionModify(ticket, trailingLevel, takeProfit); } } if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); double stopLoss = PositionGetDouble(POSITION_SL); double takeProfit = PositionGetDouble(POSITION_TP); double bidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); double askPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK); ulong ticket = PositionGetTicket(count); double trailingLevel = NormalizeDouble(askPrice + (Traling_Step * Point()), _Digits); if(stopLoss < openPrice) { if(askPrice < openPrice && trailingLevel < openPrice) trade.PositionModify(ticket, trailingLevel, takeProfit); } if(askPrice < openPrice && trailingLevel < stopLoss) { trade.PositionModify(ticket, trailingLevel, takeProfit); } } } } }

2024.04.05
Kod Mudah untuk Mengesan Bar atau Lilin Baru di MetaTrader 5
MetaTrader5
Kod Mudah untuk Mengesan Bar atau Lilin Baru di MetaTrader 5

Dalam artikel kali ini, kita akan membincangkan satu kod yang sangat berguna untuk mengesan sama ada terdapat Bar Baru atau Lilin Baru dalam platform MetaTrader 5. Asas kepada kod ini adalah sangat mudah. Pertama, kod ini menyimpan Waktu Bar/Lilin Sebelumnya. Kemudian, ia menambah 60 saat (yang bersamaan dengan 1 minit; anda juga boleh mengubahnya mengikut keperluan) kepada Waktu Bar sebelumnya untuk mendapatkan nilai waktu tutup Bar/Lilin Semasa. Apabila Waktu Semasa = nilai waktu tutup Bar/Lilin Semasa, ini bermakna satu bar baru telah diterima atau bar semasa telah ditutup. Dalam kod ini, terdapat satu flag (variabel jenis bool 'NewBarReceived') yang mengelakkan pemanggilan berulang kod ini. Ini bermakna kod ini akan dilaksanakan hanya sekali untuk setiap bar/lilin. Fungsi Comment(); dan playsound("ok.wav"); digunakan untuk memeriksa ketepatan kod ini. Anda boleh membuangnya jika tidak diperlukan. Flag ini akan diset semula kepada false apabila waktu semasa melebihi waktu tutup bar semasa untuk memeriksa kedatangan bar seterusnya. (Lihat komen untuk maklumat lanjut). //+------------------------------------------------------------------+ //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;New Bar Detect.mq5 | //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by H A T Lakmal | //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarReceived = false; // Flag untuk kawalan. //+------------------------------------------------------------------+ //| Fungsi inisialisasi pakar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ int OnInit() &nbsp;&nbsp;{ //--- buat timer &nbsp;&nbsp; EventSetTimer(60); //--- &nbsp;&nbsp; return(INIT_SUCCEEDED); &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fungsi deinisialisasi pakar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnDeinit(const int reason) &nbsp;&nbsp;{ //--- hancurkan timer &nbsp;&nbsp; EventKillTimer(); &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fungsi tick pakar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnTick() &nbsp;&nbsp;{ &nbsp;&nbsp; datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); &nbsp;&nbsp; datetime TimeCurrentClose = TimePreviousBar + 60; // Waktu Tutup bar semasa. &nbsp;&nbsp; datetime Time_Current = TimeCurrent(); &nbsp;&nbsp; if(Time_Current == TimeCurrentClose &amp;&amp; NewBarReceived == false) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PlaySound("ok.wav");&nbsp;&nbsp; // Untuk memeriksa jika berfungsi. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewBarReceived = true; // Kemas kini flag untuk elakkan pemanggilan berulang. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Kod anda di sini ----- (Lakukan Sesuatu) &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Time_Current &gt; TimeCurrentClose) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NewBarReceived = false; // Reset flag untuk bar seterusnya. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Kod anda di sini ----- (Lakukan Sesuatu) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp; Comment("\n" +&nbsp;&nbsp;"\n" +&nbsp;&nbsp;"Waktu Bar Semasa -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\n" + "Waktu Tutup Semasa -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\n" + "Waktu Semasa -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" +"\n" + "Bar Baru Diterima -: " + NewBarReceived); // Untuk memeriksa pengiraan &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fungsi timer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnTimer() &nbsp;&nbsp;{ //--- &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fungsi perdagangan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnTrade() &nbsp;&nbsp;{ //--- &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fungsi ChartEvent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| //+------------------------------------------------------------------+ void OnChartEvent(const int id, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const long &amp;lparam, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const double &amp;dparam, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const string &amp;sparam) &nbsp;&nbsp;{ //--- &nbsp;&nbsp;} //+------------------------------------------------------------------+ &nbsp;

2024.04.05
Optimasi EA: Tutup Posisi Untung atau Rugi dalam Mata Wang Akaun
MetaTrader4
Optimasi EA: Tutup Posisi Untung atau Rugi dalam Mata Wang Akaun

Selamat datang, rakan-rakan trader! Hari ini kita akan membincangkan tentang satu alat penting dalam dunia forex yang dikenali sebagai EA (Expert Advisor) yang membantu kita menutup posisi sama ada dengan keuntungan atau kerugian dalam mata wang akaun kita. //+------------------------------------------------------------------------------------------------------------------------------+ //| Optimasi Close_on_PROFIT_or_LOSS_inAccont_Currency_V2: apa yang baru: //| //|1. Penanganan Ralat: Kini, kod ini telah ditambah dengan penanganan ralat bagi situasi di mana pesanan tidak dapat ditutup atau dipadam. //|2. Optimasi Kod: Kod ini telah dioptimumkan untuk mengelakkan pengulangan dan meningkatkan keterbacaan. //|3. Kecekapan: Pengulangan atau pengiraan yang tidak perlu telah dibuang. //|4. Bersihkan semua objek carta semasa EA dihentikan. //+------------------------------------------------------------------------------------------------------------------------------+ Apabila tetapan EA adalah 0, EA tidak akan melakukan apa-apa. Positive_Closure_in_Account_Currency mesti lebih tinggi daripada jumlah Equity semasa; jika tidak, urus niaga akan dilaksanakan serta-merta. Contoh: Jika Equity adalah RM 55,000 dan Positive_Closure_in_Account_Currency ditetapkan kepada RM 55,500 untuk memperoleh RM 500. Positive_Closure_in_Account_Currency &gt; 0 &amp;&amp; &lt; RM 55,000 = pelaksanaan serta-merta. Negative_Closure_in_Account_Currency mesti lebih rendah daripada jumlah Equity semasa; jika tidak, urus niaga akan dilaksanakan serta-merta. Contoh: Jika Equity adalah RM 55,000 dan Negative_Closure_in_Account_Currency ditetapkan kepada RM 54,500 untuk kerugian hanya RM 500. Negative_Closure_in_Account_Currency &gt; RM 55,000 = pelaksanaan serta-merta. Puncak spread boleh dielakkan dengan mengurangkan nilai spread, tetapi pasaran akan tetap berkelakuan mengikut kehendaknya dan keuntungan atau kerugian yang lebih tinggi mungkin berlaku. Jika spread ditetapkan lebih rendah daripada purata spread bagi pasangan yang diperdagangkan, posisi tersebut tidak akan dilaksanakan. AMARAN: Gunakan perisian ini dengan risiko anda sendiri. Pasaran Forex sangat tidak stabil! #property copyright&nbsp; &nbsp; &nbsp;"Copyright 2024, MetaQuotes Ltd." #property link&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "https://www.mql5.com" #property version&nbsp; &nbsp; &nbsp; &nbsp;"1.01" #property description&nbsp; &nbsp;"persinaru@gmail.com" #property description&nbsp; &nbsp;"IP 2024 - sumber terbuka percuma" #property description&nbsp; &nbsp;"EA ini menutup semua urus niaga berdasarkan keuntungan dan kerugian yang dikira dalam mata wang akaun." #property description&nbsp; &nbsp;"" #property description&nbsp; &nbsp;"AMARAN: Gunakan perisian ini dengan risiko anda sendiri." #property description&nbsp; &nbsp;"Pencipta skrip ini tidak boleh dipertanggungjawabkan atas sebarang kerosakan atau kerugian." #property description&nbsp; &nbsp;"" #property strict #property show_inputs extern string&nbsp; Closures = "EA menutup semua urus niaga dan pesanan tertunda apabila keuntungan atau kerugian dicapai. Keuntungan dan kerugian dikira dalam mata wang akaun.";&nbsp; extern int Positive_Closure_in_Account_Currency&nbsp; &nbsp; &nbsp;= 0;&nbsp; extern int Negative_Closure_in_Account_Currency&nbsp; &nbsp; &nbsp;= 0;&nbsp; extern int Spread = 10;

2024.03.25
Buku Panduan Jaringan Neural untuk Trading Algoritma dengan MQL5
MetaTrader5
Buku Panduan Jaringan Neural untuk Trading Algoritma dengan MQL5

Buku "Neural networks for algorithmic trading with MQL5" merupakan panduan lengkap untuk anda yang ingin belajar bagaimana menggunakan pembelajaran mesin dan jaringan neural dalam trading. Buku ini ditujukan kepada trader algoritma yang ingin mencipta strategi trading menggunakan teknik kecerdasan buatan yang canggih. Buku ini mempunyai 7 bab yang merangkumi semua yang perlu anda tahu untuk memulakan penggunaan jaringan neural dan mengintegrasikannya ke dalam robot trading anda dalam persekitaran MQL5. Dengan penjelasan yang mudah diikuti, anda akan mempelajari asas-asas pembelajaran mesin dan pelbagai jenis jaringan neural, termasuk model konvolusional dan rekuren, serta penyelesaian arsitektur yang lebih kompleks dan mekanisme perhatian. Untuk membantu anda mengintegrasikan penyelesaian ini ke dalam robot trading anda, buku ini menyediakan pelbagai contoh praktikal. Tambahan pula, buku ini meneroka pelbagai kaedah untuk meningkatkan konvergensi model, seperti Normalisasi Batch dan Dropout. Selanjutnya, penulis memberikan panduan praktikal tentang cara melatih jaringan neural dan menggabungkannya ke dalam strategi trading anda. Anda akan belajar bagaimana untuk mencipta Expert Advisor bagi menguji prestasi model yang telah dilatih pada data baru, membolehkan anda menilai potensi mereka dalam pasaran kewangan sebenar. "Neural networks for algorithmic trading with MQL5" bukan sekadar buku: ia adalah panduan berguna yang dapat membantu anda mengintegrasikan teknik pengambilan keputusan yang maju ke dalam algoritma trading anda dan berpotensi meningkatkan hasil kewangan. Mulakan pembelajaran tentang kemampuan canggih pembelajaran mesin hari ini dan tingkatkan trading anda ke tahap yang lebih tinggi.

2024.02.29
Panduan Buy Sell Close: EA Manual untuk Trader Baru di MetaTrader 4
MetaTrader4
Panduan Buy Sell Close: EA Manual untuk Trader Baru di MetaTrader 4

Selamat datang, trader! Hari ini, kita akan membincangkan Buy Sell Close, satu EA manual yang direka khas untuk trader baru. EA ini membolehkan anda menguji strategi trading anda dengan cara yang lebih visual dan juga boleh digunakan dalam trading secara langsung. Dengan Buy Sell Close, anda boleh berlatih sistem trading anda sendiri dalam mod backtesting. Ini sangat berguna untuk memahami cara pasaran berfungsi sebelum anda melibatkan diri secara langsung. EA ini membenarkan anda mengendalikan operasi secara manual, termasuk menghentikan atau mengubah kelajuan ulasan backtest, untuk memudahkan latihan trading manual anda. Pengenalan kepada EA: 1. Butang [Lots]: Anda boleh mengubah jumlah lot yang ingin diperdagangkan selepas memasukkan nombor dalam kotak input. 2. Butang [BUY]: Tekan butang ini untuk menambah satu lagi order beli dengan jumlah lot yang ditetapkan. 3. Butang [SELL]: Dengan menekan butang ini, anda akan membuat satu order jual berdasarkan saiz lot yang telah ditetapkan. 4. Butang [SL Modify TP]: Butang ini membolehkan anda mengubah Stop Loss dan Take Profit. Tekan butang ini untuk mengubah semua order berkenaan dengan jarak Stop Loss dan Take Profit berdasarkan harga semasa. 5. Butang [Close All Buy]: Menutup semua order beli yang telah dibuka. 6. Butang [Close All Sell]: Menutup semua order jual yang sedang terbuka. 7. Butang [Close All Orders]: Menutup semua order yang sedang dibuka. 8. Maklumat di sebelah kanan: Terdapat maklumat mengenai order yang telah dibuka, keuntungan, dan informasi lain. Deskripsi Parameter: 1. MM: Secara automatik menggunakan nisbah risiko untuk mengira saiz lot yang ditetapkan. 2. Risiko: 0.2 untuk baki 10,000, iaitu 0.2 lot. 3. Lots: Saiz lot tetap jika MM ditetapkan sebagai FALSE, ia akan menggunakan nombor lot tetap ini. 4. SL: Stop Loss: defaultnya adalah 250 micro-points. 5. TP: Take Profit: defaultnya adalah 500 micro-points. Jadi, jangan ragu untuk mencuba Buy Sell Close dan latih sistem trading anda sendiri. Terima kasih kepada semua yang telah menyokong!

2024.02.29
Pertama Sebelumnya 2 3 4 5 6 7 8 9 10 11 12 Seterusnya Terakhir