CloseBySequence () - Functie hulp nodig - MQL5
Results 1 to 9 of 9

Thread: CloseBySequence () - Functie hulp nodig - MQL5

  1. #1
    MQL5:
    Ik probeer een functie te schrijven om de reeks te sluiten.
    Er is geen fout na het compileren, maar deze wordt niet uitgevoerd.
    Ik kon niet achterhalen waarom. Kunt u helpen?
    Dank je!
    Afsluiten op volgorde volgorde.

    d.w.z.
    Deal 1 Deal 2 heeft geprofiteerd - close
    Deal 3 Deal 4 heeft geprofiteerd - close

    5 6
    7 8
    9 10
    enzovoorts ...
    Deal 1 heeft het kleinste ordernummer en wordt zo vroeg mogelijk geopend.
    Deal 10 heeft het grootste ordernummer en wordt op het laatst geopend.

    Ingevoegd Code void CloseBySequence () {datetime from = 0; datetime to = TimeCurrent (); HistorySelect (van tot); dubbele Minimum_Profit = 5,00; ulong-ticket; uint x; dubbele transacties # 91; # 93; # 91; 2 # 93 ;; uint total = HistoryDealsTotal (); if (totalgt; 1) {ArrayResize (transacties, totaal); for (x = total-1; xgt; = 0; x--) {if (ticket = HistoryDealGetTicket (x)) gt; 0) {trades # 91; x # 93; # 91; 0 # 93; = HistoryDealGetInteger (ticket, DEAL_ORDER); trades # 91; x # 93; # 91; 1 # 93; = HistoryDealGetDouble (ticket, DEAL_PROFIT) HistoryDealGetDouble (ticket, DEAL_COMMISSION) HistoryDealGetDouble (ticket, DEAL_SWAP); }} ArraySort (transacties); x = 0; terwijl (xlt; totaal-1) {dubbele winst = transacties # 91; x # 93; # 91; 1 # 93; transacties # 91; x 1 # 93; # 91; 1 # 93 ;; if (profitgt; = Minimum_Profit) {if (HistoryDealSelect ((int) transacties # 91; x # 93; # 91; 0 # 93;)) if (! trade.PositionClose (PositionGetSymbol (x))) Afdrukken (Foutafsluiting ( Deal 1/2) #, IntegerToString (OrderGetTicket (x)), Foutcode, GetLastError ()); if (HistoryDealSelect ((int) handelt # 91; x 1 # 93; # 91; 0 # 93;)) if (! trade.PositionClose (PositionGetSymbol (x))) Afdrukken (Fout sluiten (Deal 2/2) # , IntegerToString (OrderGetTicket (x)), Foutcode, GetLastError ()); } x = 2; }}}

  2. #2

    Quote Originally Posted by ;
    MQL5: Ik probeer een functie te schrijven om de reeks te sluiten. Er is geen fout na het compileren, maar deze wordt niet uitgevoerd. Ik kon niet achterhalen waarom. Kunt u helpen? Dank je! Afsluiten op volgorde volgorde. d.w.z. Deal 1 Deal 2 heeft geprofiteerd - close Deal 3 Deal 4 heeft geprofiteerd - sluit 5 6 7 8 9 10 enzovoort ... Deal 1 heeft het kleinste ordernummer en wordt zo vroeg mogelijk geopend. Deal 10 heeft het grootste ordernummer en wordt op het laatst geopend. void CloseBySequence () {datetime from = 0; datetime to = TimeCurrent (); HistorySelect (van tot); dubbele...
    johnnybegood- Als je in de VS bent, heb je de FIFO-regels in overweging genomen? Je hebt niet gezegd welke fouten er zijn als je trades probeert te sluiten. Heb je geprobeerd om Print () -instructies toe te voegen om te zien wat de uitvoer is?

  3. #3
    Hallo Jonny, In MT4 hebben we Orders, die transacties en hangende orders vertegenwoordigen. In MT5 is het een beetje beter, waar we Orders, Deals en Posities hebben. </P> Een O rder is een verzoek aan de broker-server, het kan een Markt of een Bestaande Order zijn. Een deal is een uitgevoerde marktorder of een geactiveerde lopende bestelling tegen de beschikbare biedlaatprijs. Een order kan meerdere transacties tot gevolg hebben (voor het geval het volume groot was) Een positie is de netto sommatie van de huidige transacties, deze kan lang of kort zijn. # 8203; Er is dus een groot verschil in orderafhandeling tussen MT4 en MT5. Om te beginnen, in uw voorbeeld: if (! Trade.PositionClose (PositionGetSymbol (x))) Sluit de volledige positie (sluit alle transacties af). In plaats daarvan moet u de specifieke deal behandelen, niet de hele positie. U moet dus het dealenticketnummer doorgeven dat u wilt sluiten met de methode PositionClose. Het allerbeste, Khalil

  4. #4

    Quote Originally Posted by ;
    {quote} - Bent u in de VS, heeft u de FIFO-regels in overweging genomen? Je hebt niet gezegd welke fouten er zijn als je trades probeert te sluiten. Heb je geprobeerd om Print () -instructies toe te voegen om te zien wat de uitvoer is?
    Geen fout na compilatie. De egy-tester hangt na enkele transacties. Ik gebruik een niet-Amerikaanse versie van egy-tester. Er worden geen fouten weergegeven, het hangt gewoon.

  5. #5

    Quote Originally Posted by ;
    {quote} Geen fout na compilatie, de egy-tester hangt. Ik gebruik een hedge-versie van egy-tester
    Bedankt, ik heb het volgende bewerkt en heb nog steeds hetzelfde probleem. Strategietester hangt na enkele ruilhandel. Code dubbele winst ingevoerd = transacties # 91; x # 93; # 91; 1 # 93; transacties # 91; x 1 # 93; # 91; 1 # 93 ;; if (profitgt; = Minimum_Profit) {ulong deal_ticket_sym1 = HistoryDealGetTicket ((int) transacties # 91; x # 93; # 91; 0 # 93; if (! trade.PositionClose (deal_ticket_sym1,9999)) Afdrukken (Fout sluiten (Pair 1/2) #, IntegerToString (OrderGetTicket (x)), Foutcode, GetLastError ());

  6. #6

    Quote Originally Posted by ;
    {quote} Bedankt, ik heb het volgende bewerkt en heb nog steeds hetzelfde probleem. Strategietester hangt na enkele ruilhandel. dubbele winst = transacties [x] [1] transacties [x 1] [1]; if (profitgt; = Minimum_Profit) {ulong deal_ticket_sym1 = HistoryDealGetTicket ((int) trades [x] [0]); if (! trade.PositionClose (deal_ticket_sym1,9999)) Afdrukken (Fout sluiten (Pair 1/2) #, IntegerToString (OrderGetTicket (x)), Foutcode, GetLastError ());
    johnnybegood- Waarschijnlijk de waarde van je while-lus. Heb je bij elk interval gecontroleerd of het de instelling heeft ingesteld op wat je verwachtte?

  7. #7
    Met dank aan cyber1 en. Jullie zijn geniaal! Het probleem zit in een van de lussen. Maar nu krijg ik alleen maar een foutmelding: Fout bij afsluiten (Pair 1/2) # 0, Foutcode 4753 of het sluiten van tradingparen in plaats van winnende paren.

  8. #8

    Quote Originally Posted by ;
    Met dank aan en. Jullie zijn geniaal! Het probleem zit in een van de lussen. Maar nu krijg ik alleen maar een foutmelding: Fout bij afsluiten (Pair 1/2) # 0, Foutcode 4753 of het sluiten van tradingparen in plaats van winnende paren.
    johnnybegood- U zoekt een bestelling die niet bestaat # 0
    https://www.mql5.com/en/docs/constan...ngs/errorcodes

  9. #9

Similar Threads

  1. PlotIndexSetInteger functie in MQL5 - wat doet het?
    By Placaplacaplaca in forum Cryptocurrencies
    Replies: 1
    Last Post: 15:32,

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
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.