Zero Bahagikan kesilapan pengekodan ralat
Results 1 to 4 of 4

Thread: Zero Bahagikan kesilapan pengekodan ralat

  1. #1
    2 Lampiran Hi,

    Saya mempunyai sedikit masalah dengan ralat pecah sifar.
    Saya sedang mengusahakan EA yang mudah hanya untuk latihan sememangnya,
    Ia disusun tanpa kesilapan, tetapi ketika saya mencubanya di tester egy saya terus mendapat kesilapan sifar dalam jurnal.
    Saya menambah Getlasterror dengan arahan untuk mencetak di mana ralat berlaku menunjukkan baris dalam kod
    Seperti yang anda lihat dari lampiran
    Baris terakhir sebelum pulangan Mula saya masukkan jika (GetLastError () gt; 0) Cetak (Baris 137);
    Dan saya berakhir di baris 1 selepas Mula
    jika (GetLastError () gt; 0) Cetak (Baris 53); dan ini adalah di mana kesilapan telah berlaku.
    Itu bermakna tidak ada kesilapan apabila ia kembali pulih, tetapi sejurus selepas Mula, terdapat ralat.
    Dengan kata lain di luar kod saya! Bagaimana keadaan ini berlaku?
    Adakah masalah dengan tester egy atau saya melakukan sesuatu yang bodoh?
    Terima kasih terlebih dahulu


    Kod dimasukkan/ --------------------------------------------- --------------------- /| HigherHi LowerLo.mq4 |/| Keith |/| http://www.metaquotes.net |/ ----------------------------------------------- ------------------- #property copyright Keith #property link http://www.metaquotes.net/--- parameter input extern int MagicNumber = 1; extern int StopLoss = 50; extern int TakeProfit = 100; extern int DecimalPip = 4; int luar MaxSlippage = 5; extern double RiskPerTrade = 1; double Pip;/ ----------------------------------------------- ------------------- /| fungsi permulaan pakar |/ ----------------------------------------------- ------------------- int init () {//----/Hitung Pip perpuluhan int perpuluhan = 4; Pip = 1; untuk (int a = 1; alt; = DecimalPip; a ) {Pip = Pip * 0.1; }/---- kembali (0); }/ ---------------------------------------------- -------------------- /| fungsi deinitialization pakar |/ ----------------------------------------------- ------------------- int deinit () {//----/---- return (0); }/ ---------------------------------------------- -------------------- /| fungsi permulaan pakar |/ ----------------------------------------------- ------------------- int start () {//---- if (GetLastError () gt; 0) Print (Line 53); jika (Tinggi # 91, 1 # 93; gt; Tinggi # 91; 2 # 93; Rendah # 91; 1 # 93; gt; Rendah # 91; 2 # 93;)/Beli Signal string Signal = Buy; jika (GetLastError () gt; 0) Cetak (Baris 57); jika (High # 91; 1 # 93; lt; Tinggi # 91; 2 # 93; Rendah # 91; 1 # 93; lt; Rendah # 91; 2 # 93;)/Jual Signal Signal = Jual; jika (GetLastError () gt; 0) Cetak (Baris 61);/---------------------------------- Periksa apakah perdagangan sudah terbuka dengan pasangan int int STICKet = 0 ; int BTicket = 0; untuk (int x = OrdersTotal () - 1; xgt; = 0; x--) {OrderSelect (x, SELECT_BY_POS, MODE_TRADES); jika (OrderType () lt; = OP_SELL OrderMagicNumber () == MagicNumber) STicket = OrderTicket (); jika (OrderType () lt; = OP_BUY OrderMagicNumber () == MagicNumber) BTicket = OrderTicket (); }---- ---- Jika STICKET gt; 0, Jual perdagangan sudah terbuka, Jika BTicket gt; 0 Beli perdagangan terbuka, Jika kedua 0, Tidak ada perdagangan saat ini/------------- ------------------- Tempatkan Perdagangan baru? jika (GetLastError () gt; 0) Cetak (Baris 76); jika (STicket == 0 BTicket == 0)/Tiada dagangan terbuka {jika (Sinyal == Beli) {double ask = MarketInfo (Simbol (), MODE_ASK);/Dapatkan harga askar semasa double StopLoss = Ask - StopLoss * Pip; double TakeProfit = Tanya TakeProfit * Pip; jika (GetLastError () gt; 0) Cetak (Barisan 86);/---------------- Kira LotSize dan periksa yang lebih daripada minimum yang dibenarkan oleh broker double Langkah = MarketInfo (Simbol (), MODE_LOTSTEP); doubleLossLot = MathAbs (Ask-StopLoss)MarketInfo (Simbol (), MODE_TICKSIZE) * MarketInfo (Simbol (), MODE_TICKVALUE); int Lot = AccountEquity () * RiskPerTrade100LossLotLangkah; double LotSize = Lot * Step; jika (LotSize lt; MarketInfo (Simbol (), MODE_MINLOT)) Pemberitahuan (Lotsize terlalu kecil untuk berdagang); lain OrderSend (Symbol (), OP_BUY, LotSize, Ask, MaxSlippage * PipPoint, StopLoss, TakeProfit * Pip, NULL, MagicNumber, 0,0); } jika (Isyarat == Menjual) {bida ganda = MarketInfo (Simbol (), MODE_BID);/Dapatkan harga bida semasa StopLoss = Bid ​​ StopLoss * Pip; TakeProfit = Bid ​​-TakeProfit * Pip; jika (GetLastError () gt; 0) Cetak (Baris 106);/---------------- Kira LotSize dan periksa yang melebihi minimum yang dibenarkan oleh broker jika (GetLastError () gt; 0) Cetak (Baris 108); Langkah = MarketInfo (Simbol (), MODE_LOTSTEP); LossLot = MathAbs (Bid-StopLoss)MarketInfo (Simbol (), MODE_TICKSIZE) * MarketInfo (Simbol (), MODE_TICKVALUE); Lot = AkaunEquity () * RiskPerTrade100LossLotLangkah; LotSize = Lot * Step; jika (LotSize lt; MarketInfo (Simbol (), MODE_MINLOT)) Pemberitahuan (Lotsize terlalu kecil untuk berdagang); lain OrderSend (Symbol (), OP_SELL, LotSize, Bid, MaxSlippage * PipPoint, StopLoss, TakeProfit * Pip, NULL, MagicNumber, 0,0); }} if (GetLastError () gt; 0) Print (Line 121);/--------------------- Periksa sama ada perlu menutup perdagangan jika (Signal == Beli STicketgt; 0)/membuka keperluan perdagangan menjual tutup {OrderSelect (STICKET , SELECT_BY_TICKET); OrderClose (STICKet, OrderLots (), MarketInfo (OrderSymbol (), MODE_ASK), 50, Violet); } jika (Isyarat == Jual BTicketgt; 0)/buka beli keperluan perdagangan tutup {OrderSelect (BTicket, SELECT_BY_TICKET); OrderClose (BTicket, OrderLots (), MarketInfo (OrderSymbol (), MODE_BID), 50, Violet); } jika (GetLastError () gt; 0) Cetak (Baris 137);///kembali (0); }/ ---------------------------------------------- --------------------
    https://www.justgetforex.com/attachm...8495297788.mq4

    https://www.justgetforex.com/cryptoc...notifiion.html

  2. #2
    Hi Gumrai, terdapat masalah dengan pembolehubah anda: 1. Dalam input yang anda gunakan StopLoss dan TakeProfit untuk menentukan jarak dalam pip, maka anda menggunakan nama pemboleh ubah yang sama untuk menentukan level berdasarkan jarak ini: extern int StopLoss = 50; extern int TakeProfit = 100; double StopLoss = Ask - StopLoss * Pip; double TakeProfit = Tanya TakeProfit * Pip; 2. double ask = MarketInfo (Simbol (), MODE_ASK); double StopLoss = Ask - StopLoss * Pip; tanya tidak sama dengan Tanya - walaupun dalam kes anda, tetapi anda tidak perlu pemboleh ubah tambahan yang saya rasa :-) 3. OrderSend (Simbol (), OP_BUY, LotSize, Ask, MaxSlippage * PipPoint, StopLoss, TakeProfit * Pip, NULL, MagicNumber, 0,0); Anda menggunakan pengganda pip di sini, yang anda tidak perlukan jika anda membetulkan pembolehubah di titik 1. Apabila saya membetulkannya, ralat sifar nol hilang. Harap ini membantu,

  3. #3
    Quote Originally Posted by ;
    Hai, ada masalah dengan pemboleh ubah anda: 1. Dalam input yang anda gunakan StopLoss dan TakeProfit untuk menentukan jarak dalam pip, maka anda menggunakan nama pemboleh ubah yang sama untuk menentukan tahap berdasarkan jarak ini: extern int StopLoss = 50; extern int TakeProfit = 100; double StopLoss = Ask - StopLoss * Pip; double TakeProfit = Tanya TakeProfit * Pip; 2. double ask = MarketInfo (Simbol (), MODE_ASK); double StopLoss = Ask - StopLoss * Pip; tanya tidak sama dengan Tanya - walaupun, dalam kes anda, ia adalah, tetapi kemudian anda tidak perlu pembolehubah tambahan ...
    Terima kasih banyak untuk itu
    Saya bodoh untuk meminda pembolehubah global dalam kod. Saya telah belajar pelajaran berharga hari ini, terima kasih kepada anda

  4. #4
    Saya menyelesaikan masalah ini. pada 1 Jan 2014 pada 00:00 GMT Saya akan menghantar penyelesaian dalam topik berasingan. Jadilah semuanya.

Kebenaran Posting

  • Anda tidak boleh menghantar thread baru
  • Anda tidak boleh membalas kiriman
  • Anda tidak boleh mengedit siaran anda
  • Anda tidak boleh menyiarkan lampiran
  •  
  • Kod BB Hidup
  • Smilies Hidup
  • Kod [IMG] adalah Hidup
  • Kod [VIDEO] adalah Hidup
  • Kod HTML Tidak Hidup
Polisi Kuki
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.