Penguji egi hanya berhenti ketika menjalankan kode ini dan idk mengapa
Results 1 to 8 of 8

Thread: Penguji egi hanya berhenti ketika menjalankan kode ini dan idk mengapa

  1. #1
    Hai pria,

    Saya memiliki kode ini yang saya tulis dan dalam pikiran saya itu bekerja dengan sempurna namun pikiran saya kelihatannya salah dan tidak tahu mengapa.
    Jadi saya memonitor masalah ke bagian tertentu tetapi saya tidak tahu apa yang menyebabkannya gagal.
    Tidak ada kesalahan yang penting.

    Inilah bagian di mana tampaknya gagal di:
    Inserted Code if (Trades # 91; 7, RowNumber2 # 93; == 1) jika (Tanya lt; = Trades # 91; 2, RowNumber2 # 93; Trades # 91; 6, RowNumber2 93; == 0) ke Tiket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trades # 91; 4, RowNumber2 # 93 ;, 0, NULL, Trades # 91; 1, RowNumber # 93 ;, 0, Blue); Perdagangan # 91; 6, RowNumber # 93; = 1;/Print (- MagicNumber =, MagicNumber, -); ArrayCounter2 = 0; RowNumber2 = 0; else ArrayCounter2 = ArrayCounter2 1; RowNumber2 = RowNumber2 1;
    Berikut ini kode lengkapnya:
    Kode yang dimasukkan/ --------------------------------------------- --------------------- /| FTB.mq4 |/| |/| https://www.mql4.com |/ ----------------------------------------------- ------------------- #property copyright #property strict extern int MagicNumber = 10001; Eksternal ganda Lot = 0,1; Eksternal ganda TrailingStop = 0; Eksternal int Slippage = 3; Eksternal EntryGap ganda = 0,00500; Ekstern int BrokerDigits = 5; Eksternal int AllowableDrawdown = 25; ekstern int MaxDrawdown = 610; Eksternal bool MoneyManagement = salah; pembukuan rangkap; stopLoss ganda; TakeProfit ganda; double HalfCandleSize; ganda Tengah; Buka OpenCheck ganda; double CloseCheck; Perdagangan ganda # 91; 8 # 93; # 91; 20 # 93 ;;/ArrayNumber | MagicNumber | Entri | Stoploss | WaitCounter | Waktu Kedaluwarsa | Dimasukkan | Populated int SignalTime; int BarsOnChart = Bar; int IsNewCandle; int OrderError = 0; int RowNumber = 0; int RowNumber2 = 0; int ArrayCounter = 0; int ArrayCounter2 = 0;/ ----------------------------------------------- ------------------- /| Fungsi inisialisasi ahli |/ ----------------------------------------------- ------------------- int OnInit () Trades # 91; 0,0 # 93; = 1; Perdagangan # 91; 0,1 # 93; = 2; Perdagangan # 91; 0,2 # 93; = 3; Perdagangan # 91; 0,3 # 93; = 4; Perdagangan # 91; 0,4 # 93; = 5; Perdagangan # 91; 0,5 # 93; = 6; Perdagangan # 91; 0,6 # 93; = 7; Perdagangan # 91; 0,7 # 93; = 8; Perdagangan # 91; 0,8 # 93; = 9; Perdagangan # 91; 0,9 # 93; = 10; Perdagangan # 91; 0,10 # 93; = 11; Perdagangan # 91; 0,11 # 93; = 12; Perdagangan # 91; 0,12 # 93; = 13; Perdagangan # 91; 0,13 # 93; = 14; Perdagangan # 91; 0,14 # 93; = 15; Perdagangan # 91; 0,15 # 93; = 16; Perdagangan # 91; 0,16 # 93; = 17; Perdagangan # 91; 0,17 # 93; = 18; Perdagangan # 91; 0,18 # 93; = 19; Perdagangan # 91; 0,19 # 93; = 20; Mencetak(-----------); Print (ArrayNumber =, Trades # 91; 0, RowNumber # 93; -RRB-; Print (MagicNumber =, Trades # 91; 1, RowNumber # 93; -RRB-; Print (Entry =, Trades # 91; 2, RowNumber # 93; -RRB-; Print (Stoploss =, Trades # 91; 3, RowNumber # 93; -RRB-; Print (WaitCounter =, Trades # 91; 4, RowNumber # 93; -RRB-; Print (ExpirationTime =, Trades # 91; 5, RowNumber # 93; -RRB-; Print (Dimasukkan =, Trades # 91; 6, RowNumber # 93; -RRB-; Print (Populated =, Trades # 91; 7, RowNumber # 93; -RRB -; Print (-----------); return (INIT_SUCCEEDED);/ ------------------------- ----------------------------------------- /| Fungsi deinitialization ahli |/ ------------------------------------------------ ------------------ void OnDeinit (const int reason)/ --------------------- --------------------------------------------- /| Expert centang fungsi |/ -------------------------------------------- ---------------------- vo id OnTick () if (BarsOnChart! = Bar)/Memeriksauntuk lilin tertutup baru BarsOnChart = Bar; IsNewCandle = 1; else IsNewCandle = 0; if (IsNewCandle == 1)/Memeriksa apakah candle baru telah menutup SignalTime = Hour () - 1; if ((SignalTime gt; 8) (SignalTime lt; 14) (High # 91; 1 # 93; gt; High # 91; 2 # 93; -RRB-)/Periksa untuk melihat apakah candle sinyal memiliki tinggi lebih tinggi dari lilin sebelum dan dalam jangka waktu HalfCandleSize = (Tinggi # 91; 1 # 93; - Rendah # 91; 1 # 93; -RRB-2;/Menghitung setengah dari ukuran lilin Tengah = Rendah # 91; 1 # 93; HalfCandleSize;/Menghitung tengah candle OpenCheck = Middle - Open # 91; 1 # 93 ;;/Menghitung jarak antara Buka dan tengah CloseCheck = Middle - Close # 91; 1 # 93 ;;/Menghitung jarak antara dekat dan tengah jika (OpenCheck gt; 0 CloseCheck gt; 0)/periksa untuk melihat apakah candle ditutup di setengah bagian bawah Entry = NormalisasiDouble (Low # 91; 1 # 93; - 0,0001, 5);/Alasan OrderSend Kesalahan 130 adalah Entri Entri terlalu dekat dengan Entry Pasar Saat Ini StopLoss = NormalizeDouble (High # 91; 1 # 93; 0,0005, 5); while (ArrayCou nter lt; 20) jika (Perdagangan # 91; 7, RowNumber # 93; == 0) Perdagangan # 91; 1, RowNumber # 93; = MagicNumber; Perdagangan # 91; 2, RowNumber # 93; = Masuk; Perdagangan # 91; 3, RowNumber # 93; = StopLoss; Perdagangan # 91; 4, RowNumber # 93; = 0; Perdagangan # 91; 5, RowNumber # 93; = 0; Perdagangan # 91; 6, RowNumber # 93; = 0; Perdagangan # 91; 7, RowNumber # 93; = 1; MagicNumber = MagicNumber 1; Mencetak(-----------); Print (ArrayNumber =, Trades # 91; 0, RowNumber # 93; -RRB-; Print (MagicNumber =, Trades # 91; 1, RowNumber # 93; -RRB-; Print (Entry =, Trades # 91; 2, RowNumber # 93; -RRB-; Print (Stoploss =, Trades # 91; 3, RowNumber # 93; -RRB-; Print (WaitCounter =, Trades # 91; 4, RowNumber # 93; -RRB-; Print (ExpirationTime =, Trades # 91; 5, RowNumber # 93; -RRB-; Print (Dimasukkan =, Trades # 91; 6, RowNumber # 93; -RRB-; Print (Populated =, Trades # 91; 7, RowNumber # 93; -RRB -; Print (-----------); break; else ArrayCounter = ArrayCounter 1; RowNumber = RowNumber 1; ArrayCounter = 0; RowNumber = 0;while (ArrayCounter2 lt; 20) if (Trades # 91; 7, RowNumber2 # 93; == 1) if (Tanya lt; = Trades # 91; 2, RowNumber2 # 93; Trades # 91; 6, RowNumber # 93; = = 0) int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trades # 91; 4, RowNumber2 # 93 ;, 0, NULL, Trades # 91; 1, RowNumber # 93 ;, 0, Blue) ; Perdagangan # 91; 6, RowNumber # 93; = 1;/Print (- MagicNumber =, MagicNumber, -); ArrayCounter2 = 0; RowNumber2 = 0; else ArrayCounter2 = ArrayCounter2 1; RowNumber2 = RowNumber2 1; if (ArrayCounter2 == 20) ArrayCounter2 = 0; RowNumber2 = 0;

    Jika kalian bisa memberi saya kebijaksanaan Anda yang akan sangat dihargai.
    Terima kasih!

  2. #2

    Quote Originally Posted by ;
    Hai teman-teman, saya punya kode yang saya tulis dan dalam pikiran saya itu bekerja dengan sempurna namun pikiran saya kelihatannya salah dan tidak tahu mengapa. Saya memantau masalah tetapi saya tidak tahu apa yang menyebabkannya gagal. Tidak ada kesalahan signifikansi apa pun. Inilah bagian yang tampaknya gagal di: if (Trades [7, RowNumber2] == 1) {if (Tanya lt; = Trades [2, RowNumber2] Trades [6, RowNumber] == 0) {int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trades [4, RowNumber2], 0, NULL, Trades [1, RowNumber], 0, Blue); Perdagangan [6, RowNumber] ...
    Backtester tidak dapat menjalankan kode seperti terminal.

  3. #3

    Quote Originally Posted by ;
    quote Backtester tidak menjalankan kode seperti terminal. Kemudian fungsi kode biasa di terminal gagal di backtester
    Apa yang akan menyebabkan pengabaian ini di tester? Saya belum menguji ini di grafik nyata.

  4. #4

    Quote Originally Posted by ;
    quote Apa yang akan membuat ini gagal dari tester sekalipun? Saya belum menguji ini di grafik nyata.
    Haruskah Anda tidak memeriksa kode bagaimana Anda benar-benar memahami karya? Anda memeriksanya di grafik langsung dan jika Anda melihatnya mencoba. Kode sederhana harus beroperasi tetapi jika Anda menggunakan kode yang rumit, biasanya tidak beroperasi di backtester tanpa adaptasi kode yang besar. Pokoknya buang-buang waktu mencoba sesuatu di MT4 backtester. Jika Anda ingin menggunakan backtester perlu pergi ke MT5. Backtester itu Dapat menjalankan kode seperti terminal tanpa modifikasi dan men-debug-nya

  5. #5
    Pelajaran untuk dipelajari: jangan pernah mengevaluasi kembali arahan yang ketat. Hapus tanda itu, perbaiki kode Anda, dan kemungkinan besar Anda akan memperbaiki masalah Anda. Buruk saya, saya hanya datang dari pemrograman banyak python di mana # adalah cara Anda mengomentari sebuah baris ... Saya tidak percaya bahwa sintaks array yang sudah ditinggalkan [I, j] akan dikompilasi bersama dengan arahan yang ketat. TIL.

  6. #6

    Quote Originally Posted by ;
    quote Jika Anda menguji kode yang Anda mengerti benar-benar berfungsi? Anda memeriksa grafik langsung dan ketika Anda melihatnya mencoba. Kode-kode sederhana harus beroperasi tetapi jika Anda menggunakan kode yang kompleks, biasanya tanpa adaptasi kode yang besar. Pokoknya membuang-buang waktu mencoba sesuatu di backtester. Jika Anda ingin menggunakan backtester perlu pergi ke MT5. Backtester ini dapat menjalankan kode seperti terminal tanpa modifikasi dan juga men-debug-nya
    Ada kesalahan besar dengan menganalisis kode pada grafik langsung. Butuh beberapa waktu ... banyak waktu. Saya tidak bisa memiliki tanda untuk ini selama satu atau dua bulan lagi yang tidak layak. Plus itu adalah egi yang hanya diperdagangkan selama waktu-waktu tertentu dalam sehari. Di atas itu jika saya ingin melakukan backtest, saya harus tetap menggunakan eginya. Pasti ada masalah dalam kode di suatu tempat yang tidak membiarkannya berlanjut tetapi saya tidak dapat muncul untuk menemukannya. Saya mendapatkan apa yang Anda katakan tentang MT5 namun saat ini semua yang saya operasikan tetap di MT4. Berpindah tidak sesederhana hanya dengan mengunduhnya.
    Quote Originally Posted by ;
    penelitian untuk dipelajari: jangan pernah mengabaikan arahan yang ketat. Hapus tanda itu, perbaiki kode Anda, dan kemungkinan besar Anda akan memperbaiki masalah Anda. Buruk saya, saya hanya datang dari coding sekelompok python di mana # adalah bagaimana Anda berkomentar baris ... Saya tidak percaya bahwa array sintaks ditinggalkan [I, j] akan mengkompilasi bersama dengan arahan yang ketat. TIL.
    Hehe semuanya baik-baik saja. Saya mencoba menghapusnya dan itu hanya mencegah kesalahan muncul (Seperti konversi tipe data berakhir dengan potensi kerugian yang tidak akan tampil dalam kode ini). Namun masalah yang sama persis.

  7. #7

    Quote Originally Posted by ;
    kutipan ada kesalahan besar dengan kode pengujian pada grafik hidup. Butuh beberapa waktu ... banyak waktu. Saya tidak bisa memiliki sinyal untuk ini selama sebulan atau bahkan lebih yang sama sekali tidak layak. Plus itu adalah egi yang hanya diperdagangkan selama waktu-waktu tertentu dalam sehari. Di atas itu jika saya ingin melakukan backtest, saya harus menggunakan egi. Harus ada masalah dalam kode di suatu tempat yang tidak akan membiarkannya bertahan tetapi saya sepertinya tidak dapat menemukannya. Saya mendapatkan apa yang Anda katakan tentang MT5 saat ini semua yang saya operasikan tetap di MT4. Berpindah tidak sesederhana seperti ...
    Oleh karena itu saya hanya ingin menunjukkan beberapa hal yang akan membantu kode Anda bergerak maju. Ini menggunakan tradisi pengembangan umum dan dapat membantu pencarian di beberapa panduan desain C . Kode Anda sangat sulit dibaca karena Anda tidak mengikutinya. Sebagai contoh, ada seluruh kode-blok yang tidak menjorok, Anda menggunakan CamelCase untuk berbagai nama ketika desain yang biasanya hanya digunakan untuk kursus, dan Anda juga menggunakan bilangan bulat sebagai pengganti tipe boolean. Selain itu, Anda menggunakan array multi-dimensi salah. Anda harus menggunakan mereka apa pun yang Anda butuhkan untuk menggunakan item atau struct, untuk aljabar. Misalnya Anda Telah Memasukkan Kode Perdagangan # 91; 1, RowNumber # 93; = MagicNumber Ini Tidak Mungkin untuk memahami angka adalah tipe integer tidak ganda

  8. #8

    Quote Originally Posted by ;
    quote Jadi saya hanya ingin menunjukkan beberapa hal yang akan membantu kode Anda bergerak maju. Ini menggunakan konvensi pengembangan dan dapat membantu melihat beberapa panduan desain C . Kode Anda cukup sulit dibaca karena Anda tidak mengikutinya. Sebagai contoh, ada Anda menggunakan CamelCase untuk nama variabel ketika mode itu biasanya hanya digunakan untuk kursus, dan Anda juga menggunakan bilangan bulat sebagai pengganti tipe boolean. Anda menggunakan susunan multi-dimensi yang salah. Anda hanya harus menggunakannya untuk ...
    Aku tahu semua yang kamu katakan. Saya cukup banyak belajar sendiri dengan bermain-main dengan kode dan tidak pernah benar-benar memiliki semacam kelas atau struktur yang tepat sementara. Mungkin akan lebih baik untuk mulai mencari praktik pengkodean tradisional. Sekarang tidak peduli bahwa semuanya masih bekerja dan saya akhirnya menemukan masalah ini berkat beberapa petunjuk yang diberikan seseorang kepada saya dan saya menemukan bahwa loop yang tak terbatas dan memecahkannya. Terima kasih atas bantuannya!

Similar Threads

  1. Balasan: 19
    Postingan Terakhir: 10-26-2021 23:31, 11:31 PM
  2. Balasan: 4
    Postingan Terakhir: 09-07-2021 07:41, 07:41 AM
  3. Balasan: 26
    Postingan Terakhir: 07-27-2021 12:57, 12:57 PM
  4. Dalam mt4 dapatkah Anda menjalankan penguji egi untuk EA pada bagan luring ubahsuaian?
    By Meteka in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 4
    Postingan Terakhir: 07-08-2018 13:33, 01:33 PM
  5. EA untuk mengumpulkan data setiap milidetik, tidak hanya ketika Kutu terjadi
    By aneihin in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 26
    Postingan Terakhir: 06-05-2018 07:50, 07:50 AM

Izin Posting

  • Anda tidak boleh memposting thread baru
  • Anda tidak boleh memposting balasan
  • Anda tidak boleh memposting lampiran
  • Anda tidak boleh menyunting postingan Anda
  •  
  • Kode BB Aktif
  • Smilies Aktif
  • Kode [IMG] Aktif
  • Kode [VIDEO] Aktif
  • Kode HTML tidak aktif
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.