Results 1 to 7 of 7

Thread: Perlu bantuan memodifikasi skrip

  1. #1
    Halo semuanya,



    jadi adakah yang bisa memberitahu saya bagian mana yang harus saya modifikasi?

    Terima kasih

    Kode yang dimasukkan #import stdlib.ex4 string ErrorDescription (int e); #import #include lt; stdlib.mqhgt; #include lt; WinUser32.mqhgt;/- Pesanan akan dibuka #define PendingOrders 1/Jumlah pesanan tertunda yang akan ditambahkan/- Manajemen uang #define MoneyManagement 1/Gunakan Manajemen Uang #define LotSize 0.1/Jika tidak, gunakan lotsize ini #define RiskPercent 0,5/Risiko untuk perdagangan awal #define RiskDecrease 0,25/Penurunan risiko untuk perdagangan berikutnya/- ATR dan pengganda #define ATRPeriode 30/Periode ATR untuk menggunakan #define ATRStopMultiplier 2/Pengganda untuk stop-loss awal #define ATROrderMultiplier 0,5/Pengganda untuk pending order selanjutnya/- Jangan ubah saya #define ShortName Buy Stop #define MagicNumber 5001 #define Slippage 6 #define Shift 1/- Internal ganda LastOrderLots = EMPTY_VALUE; gandakan LastOrderHarga; DecimalPip ganda;/ ----------------------------------------------- ------------------- /| Fungsi mulai Script Khusus/ ------------------------------------------- ----------------------- int start () {//Konfirmasikan jika (MessageBox (ShortName - Apakah Anda benar-benar ingin menempatkan (PendingOrders 1 ) Pesanan BUYSTOP ?, Skrip, MB_YESNO | MB_ICONQUESTION)! = IDYES) return (1);/Nilai pip DecimalPip = GetDecimalPip ();/Bar double TUTUP = iClose (Symbol (), 0, Shift); gandakan TINGGI = iHigh (Simbol (), 0, Shift); double RENDAH = iLow (Simbol (), 0, Shift);/-/- Tempatkan urutan pertama/- if (Bid gt; HIGH) {PlaceOrder (OP_BUY, GetLotSize ()); } else {PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH); }/-/- Tempatkan pending order/- untuk (int it = 0; it lt; PendingOrders; it ) PlaceOrder (OP_BUYSTOP, GetLotSize (), LastOrderPrice iATR (Simbol (), 0, ATRPeriod, Shift) * ATROrderMultiplier);/Hai yang disana! Komentar (Hak Cipta http://www.pointzero-trading.com);/Selamat tinggal kembali (0); }/ ---------------------------------------------- -------------------- /| Fungsi saya/ --------------------------------------------- --------------------- ** * Menghitung ukuran lot sesuai dengan risiko * @ kembali ganda *ganda GetLotSize () {//Banyak ganda l_lotz = LotSize ;/Lotsize dan pembatasan gandakan l_minlot = MarketInfo (Symbol (), MODE_MINLOT); double l_maxlot = MarketInfo (Symbol (), MODE_MAXLOT); double l_lotstep = MarketInfo (Symbol (), MODE_LOTSTEP); int vp = 0; if (l_lotstep == 0,01) vp = 2; selain itu vp = 1;/Terapkan manajemen uang jika (MoneyManagement == true) l_lotz = MathFloor (AccountBalance () * RiskPercent100.0)1000.0;/Tunggu! Periksa apakah kami melakukan piramida jika (LastOrderLots! = EMPTY_VALUELastOrderLots gt; 0) l_lotz = LastOrderLots * RiskDecrease;/Normalisasi ke lotstep l_lotz = NormalisasiDouble (l_lotz, vp);/Periksa maxminlot di sini jika (l_lotz lt; l_minlot) l_lotz = l_minlot; if (l_lotz gt; l_maxlot) l_lotz = l_maxlot;/Sampai jumpa! return (l_lotz); }** * Melakukan pemesanan * @param int Type * @param double Lotz * @param double PendingHarga *batal PlaceOrder (int Type, Lotz ganda, PendingPrice ganda = 0) {//Local int err; warna l_color; gandakan l_stoploss, l_harga, l_sprice = 0; double stoplevel = getStopLevelInPips (); RefreshRates ();/Harga dan warna untuk jenis perdagangan if (Type == OP_BUY) {l_price = Ask; l_color = Biru; } if (Ketik == OP_SELL) {l_price = Tawaran; l_color = Merah; } if (Ketik == OP_BUYSTOP) {l_price = PendingPrice; if (l_price lt; = Ask stoplevel * DecimalPip) l_price = Ask stoplevel * DecimalPip; l_color = LightBlue; } if (Ketik == OP_SELLSTOP) {l_price = PendingPrice; if (l_price gt; = Bid-stoplevel * DecimalPip) l_price = Tawaran - stoplevel * DecimalPip; l_color = Salmon; }/Hindari kolusi saat (IsTradeContextBusy ()) Tidur (1000); int l_datetime = TimeCurrent ();/Kirim pesanan int l_ticket = OrderSend (Simbol (), Jenis, Lotz, MyNormalizeDouble (l_price), Slippage, 0, 0,, ​​MagicNumber, 0, l_color);/Rety if failure if (l_ticket == -1) {while (l_ticket == -1 TimeCurrent () - l_datetime lt; 5! IsTesting ()) {err = GetLastError (); jika (err == 148) kembali; Tidur (1000); while (IsTradeContextBusy ()) Sleep (1000); RefreshRates (); l_ticket = OrderSend (Symbol (), Type, Lotz, MyNormalizeDouble (l_price), Slippage, 0, 0,, ​​MagicNumber, 0, l_color); } if (l_ticket == -1) Print (ShortName (OrderSend Error) ErrorDescription (GetLastError ())); } if (l_ticket! = -1) {LastOrderLots = Lotz; LastOrderPrice = l_price; if (OrderSelect (l_ticket, SELECT_BY_TICKET, MODE_TRADES)) {l_stoploss = MyNormalizeDouble (GetStopLoss (Type, PendingPrice)); if (! OrderModify (l_ticket, OrderOpenPrice (), l_stoploss, 0, 0, Green)) Cetak (ShortName (Kesalahan OrderModify) ErrorDescription (GetLastError ()))); }}}** * Mengembalikan stoploss awal * @param int Type * @param double ForcedPrice * @return double *double GetStopLoss (int Type, double ForcedPrice = 0) {double l_sl = 0; if (Ketik == OP_BUY) l_sl = Tanyakan - iATR (Simbol (), 0, ATRPeriod, Shift) * ATRStopMultiplier - (Ask - Bid); if (Ketik == OP_SELL) l_sl = Tawaran iATR (Simbol (), 0, ATRPeriod, Shift) * ATRStopMultiplier (Ask-Bid); if (Type == OP_BUYSTOP) l_sl = ForcedPrice - iATR (Symbol (), 0, ATRPeriod, Shift) * ATRStopMultiplier - (Ask - Bid); if (Type == OP_SELLSTOP) l_sl = ForcedPrice iATR (Symbol (), 0, ATRPeriod, Shift) * ATRStopMultiplier (Ask - Bid); return (l_sl); }** * Mengembalikan nilai pip desimal * @return ganda*double GetDecimalPip () {switch (Digit) {case 5: return (0,0001); kasus 4: kembali (0,0001); kasus 3: return (0,001); default: return (0,01); }}** * Menormalkan harga * @param harga ganda * @return ganda *dobel MyNormalizeDouble (harga ganda) {return (NormalizeDouble (harga, Digit)); }** * Dapatkan baseline plus deviasi * @return double *double getStopLevelInPips () {double s = MarketInfo (Symbol (), MODE_STOPLEVEL) 1.0; if (Digit == 5) s = s10; pengembalian; }

  2. #2

    Quote Originally Posted by ;
    Halo semuanya, saya punya skrip tempat perdagangan tertunda. Ini menempatkan perdagangan pada harga tinggi dan rendah sebelumnya untuk membeli dan menjual ... Saya ingin skrip ini memodifikasi dan menambahkan beberapa pip dalam perdagangan tertunda ... misalnya saya ingin menempatkan perdagangan tertunda 15 pips dari harga tinggi dan rendah lilin sebelumnya ... jadi adakah yang bisa memberitahu saya bagian mana yang perlu saya modifikasi? terima kasih #import stdlib.ex4 string ErrorDescription (int e); #import #include lt; stdlib.mqhgt; #include lt; WinUser32.mqhgt;/- Pesanan akan dibuka #define PendingOrders 1/Jumlah pesanan tertunda ...
    shg- Baris 49 Anda perlu menambahkan ini: PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH (15 * DecimalPip));

  3. #3

    Quote Originally Posted by ;
    {quote} - Baris 49 Anda perlu menambahkan ini: PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH (15 * DecimalPip));

  4. #4

    Quote Originally Posted by ;
    {quote} - Baris 49 Anda perlu menambahkan ini: PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH (15 * DecimalPip));
    Hai sobat, ini tidak berfungsi ... hari ini ketika saya memodifikasi skrip sebagai ucapan Anda..tidak menempatkan perdagangan yang benar ... alih-alih menunggu hanya menempatkan perdagangan pada harga saat ini ... membimbing saya jika Anda bisa .. terima kasih

  5. #5
    2 Lampiran
    Quote Originally Posted by ;
    {quote} Hai sobat, ini tidak berfungsi ... hari ini ketika saya memodifikasi skrip sebagai ucapan Anda..tidak menempatkan perdagangan yang benar ... alih-alih menunggu hanya menempatkan perdagangan pada harga saat ini ... panduan saya jika Anda bisa ... terima kasih
    shg- Baru saja mengujinya. Ini diatur untuk 100 pips di atas
    https://www.forexfabrikasi.com/crypt...acci-grid.html
    https://www.forexfabrikasi.com/attac...1636677425.mq4

  6. #6

    Quote Originally Posted by ;
    {quote} - Hanya mengujinya. Ini diatur untuk 100 pips di atas {image} {file}
    terima kasih banyak atas bantuan Anda ... baik dalam (100 * DecimalPip), saya pikir decimalpip adalah untuk pengertian saya dan saya tidak termasuk dalam skrip dan itu harus menjadi alasan skrip tidak berfungsi pada akhir saya ... salam dan sekali lagi terima kasih atas bantuan Anda ...

  7. #7

    Quote Originally Posted by ;
    {quote} Hai sobat, ini tidak berfungsi ... hari ini ketika saya memodifikasi skrip sebagai ucapan Anda..tidak menempatkan perdagangan yang benar ... alih-alih menunggu hanya menempatkan perdagangan pada harga saat ini ... panduan saya jika Anda bisa ... terima kasih
    gt; gt; gt; alih-alih tertunda hanya menempatkan perdagangan pada harga saat ini OP_BUY atau OP_SELL alih-alih tertunda? tetapi Anda memiliki panggilan PlaceOrder (OP_BUY, GetLotSize ()); Sebaliknya panggilan ini dijalankan alih-alih penempatan pending order. Anda harus memeriksa logikanya. Dan sementara manajemen kesalahan Anda (l_ticket == -1 TimeCurrent () - l_datetime lt; 5! IsTesting ()) {err = GetLastError (); jika (err == 148) kembali; Tidur (1000); while (IsTradeContextBusy ()) Sleep (1000); RefreshRates (); l_ticket = OrderSend (Symbol (), Type, Lotz, MyNormalizeDouble (l_price), Slippage, 0, 0,, ​​MagicNumber, 0, l_color); } tidak jelas. Apa artinya err = GetLastError (); jika (err == 148) kembali; di awal siklus?

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