Code voor het sluiten van orders tegen FIFO
Results 1 to 9 of 9

Thread: Code voor het sluiten van orders tegen FIFO

  1. #1
    With respect to the code above, this is where I opted to put it (in a similar configuration). Thus far I haven't encountered any problems, so I assume it is correct. PHP Code: <code><span style=�color: #000000�> <span style=�color: #0000BB�></span><span style=�color: #007700�>if(</span><span style=�color: #0000BB�>close_2</span><span style=�color: #007700�>)
    {
    for(</span><span style=�color: #0000BB�>i</span><span style=�color: #007700�>=</span><span style=�color: #0000BB�>OrdersTotal</span><span style=�color: #007700�>()-</span><span style=�color: #0000BB�>1</span><span style=�color: #007700�>;</span><span style=�color: #0000BB�>i</span><span style=�color: #007700�>gt;=</span><span style=�color: #0000BB�>0</span><span style=�color: #007700�>;</span><span style=�color: #0000BB�>i</span><span style=�color: #007700�>--)
    {
    </span><span style=�color: #0000BB�>OrderSelect</span><span style=�color: #007700�>(</span><span style=�color: #0000BB�>i</span><span style=�color: #007700�>,</span><span style=�color: #0000BB�>SELECT_BY_POS</span><span style=�color: #007700�>,</span><span style=�color: #0000BB�>MODE_TRADES</span><span style=�color: #007700�>);
    if(</span><span style=�color: #0000BB�>OrderSymbol</span><span style=�color: #007700�>()!=</span><span style=�color: #0000BB�>Symbol</span><span style=�color: #007700�>()||</span><span style=�color: #0000BB�>OrderMagicNumber</span><span style=�color: #007700�>()!=</span><span style=�color: #0000BB�>magic</span><span style=�color: #007700�>||</span><span style=�color: #0000BB�>cmd</span><span style=�color: #007700�>()gt;</span><span style=�color: #0000BB�>1</span><span style=�color: #007700�>)continue;
    while(</span><span style=�color: #0000BB�>IsTradeContextBusy</span><span style=�color: #007700�>()){</span><span style=�color: #0000BB�>Sleep</span><span style=�color: #007700�>(</span><span style=�color: #0000BB�>100</span><span style=�color: #007700�>);}</span><span style=�color: #0000BB�>RefreshRates</span><span style=�color: #007700�>();
    if(</span><span style=�color: #0000BB�>OOT</span><span style=�color: #007700�>()==</span><span style=�color: #0000BB�>FOOT</span><span style=�color: #007700�>){</span><span style=�color: #0000BB�>OrderClose</span><span style=�color: #007700�>(</span><span style=�color: #0000BB�>OrderTicket</span><span style=�color: #007700�>(),</span><span style=�color: #0000BB�>OrderLots</span><span style=�color: #007700�>(),</span><span style=�color: #0000BB�>OrderClosePrice</span><span style=�color: #007700�>(),</span><span style=�color: #0000BB�>3</span><span style=�color: #007700�>,</span><span style=�color: #0000BB�>CLR_NONE</span><span style=�color: #007700�>);
    </span><span style=�color: #0000BB�>closeall</span><span style=�color: #007700�>=</span><span style=�color: #0000BB�>true</span><span style=�color: #007700�>;break;}
    }
    }
    </span><span style=�color: #0000BB�></span> </span> </code>

  2. #2

    Quote Originally Posted by ;
    vergeet niet om te gaan met drukke zaken in de handelscontext ...
    H�, als ik de volgende code vlak voor OrderSend() of, in het bovenstaande geval, OrderClose() plaats, moet deze hier worden geplaatst, correct? PHP-code: <code><span style=�color: #000000�> <span style=�color: #0000BB�></span><span style=�color: #007700�>terwijl(</span>< span style=�color: #0000BB�>IsTradeContextBusy</span><span style=�color: #007700�>())</span><span style=�color: #0000BB�>Slapen</span>< span style=�color: #007700�>(</span><span style=�color: #0000BB�>100</span><span style=�color: #007700�>);
    </span><span style=�color: #0000BB�>RefreshRates</span><span style=�color: #007700�>();
    </span><span style=�color: #0000BB�></span> </span> </code> Ik doe dit al een tijdje met OrderSend() en tot nu toe het heeft mijn handelen niet belemmerd. Dus ik ging ervan uit dat dit de juiste plek was om het neer te zetten. Ik heb het echter niet gedaan met de functie OrderClose(), die nog meer kans loopt overbelast te raken als er problemen zijn, vooral als ik met meerdere grafieken werk. Dus ja, het zou geweldig zijn om te weten of ik het goed deed. Bedankt!

  3. #3
    Ja, ik ben het ermee eens, ��n vinkje is alles wat nodig is. Ook wanneer ik moet sorteren op de vroegste bestelling, ga ik altijd met OrderOpenTime(), wat ik deed met de bovenstaande code. Ik dacht gewoon dat er misschien een gemakkelijke manier was om het te specificeren zonder een extra lus te cre�ren ... en natuurlijk om het uit te zoeken. Als ik de while-opdracht niet had gebruikt, die ik zelden gebruik, zou het waarschijnlijk niet bij me opgekomen zijn wat ik moest doen. Ik heb ook een IBFX-account, dus ik heb me er zelden zorgen over gemaakt. Ik maak gewoon een EA voor iemand anders en ze zijn van plan om met een andere makelaar te gaan.

  4. #4

    Quote Originally Posted by ;
    Ja, dat kan ik, maar hoeveel cycli (of tikken) duurt het voordat dit gebeurt?
    hey ec...... ��n vinkje zou voldoende moeten zijn als het correct is gecodeerd.... en vergeet niet, het laagste ticketnummer garandeert niet dat het de oudste bestelling is..... je moet selecteren op orderopentime() alleen....../---/--- ik gebruik ibfx dus fifo interesseert me hoe dan ook niet..... mijn bestellingen komen en gaan zonder rekening te houden met de tijd dat ze werden geplaatst... ... dit is een enorm voordeel, ook al zien maar weinigen het.....h

  5. #5
    vergeet niet om te gaan met drukke zaken in de handelscontext, maar waarom doe je niet gewoon zoiets... Ingevoegde codefunctie FIFCloseAll(int magicnum, int slippagepoints) { int i, laagste ticket; dubbele kp; bool herhalen; herhalen = waar; terwijl (herhalen) { herhalen = onwaar; laagste ticket = -1; i = OrderTotaal()-1; while(i gt;= 0) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if ((OrderSymbol() == Symbol()) (OrderMagicNumber() == magicnum) ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))) { repeat = true;/forceer een herhaling om opnieuw te controleren op een ander laagste nummer in de volgende cyclus als (laagste ticket lt; 0) laagste ticket = OrderTicket (); if (OrderTicket() lt; laagsteticket) laagsteticket = OrderTicket(); } i--; } if (laagste ticket gt; -1) { OrderSelect(laagste ticket, SELECT_BY_TICKET, MODE_TRADES); cp = bod; if (OrderType() == OP_SELL) cp = Vragen; OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(cp, Digits), NormalizeDouble(Point * slippagepoints, Digits), Orange); } } }

  6. #6
    Is er een manier om de lus te vertellen zichzelf te herhalen totdat alle bestellingen zijn gesloten, op basis van de OrderOpenTime()? Dat, denk ik. zou ideaal zijn. PHP-code: <code><span style=�color: #000000�> <span style=�color: #0000BB�></span><span style=�color: #007700�>voor(</span>< span style=�color: #0000BB�>inti</span><span style=�color: #007700�>=</span><span style=�color: #0000BB�>OrdersTotal</span><span style =�color: #007700�>()-</span><span style=�color: #0000BB�>1</span><span style=�color: #007700�>;</span><span style =�color: #0000BB�>i</span><span style=�color: #007700�>gt;=</span><span style=�color: #0000BB�>0</span><span style =�color: #007700�>;</span><span style=�color: #0000BB�>i</span><span style=�color: #007700�>--;</span><span style =�color: #0000BB�>T</span><span style=�color: #007700�>gt;</span><span style=�color: #0000BB�>0</span><span style= �color: #007700�>)
    {
    </span><span style=�color: #0000BB�>OrderSelect</span><span style=�color: #007700�>(<span><span style=�color: #0000BB�>i</span><span style=�color: #007700�>,</span><span style=�color: #0000BB�>SELECT_BY_POS</span ><span style=�color: #007700�>,</span><span style=�color: #0000BB�>MODE_TRADES</span><span style=�color: #007700�>);
    if(</span><span style=�color: #0000BB�>OrderSymbol</span><span style=�color: #007700�>()!=</span><span style=�color: #0000BB �>Symbool</span><span style=�color: #007700�>()||</span><span style=�color: #0000BB�>OrderMagicNumber</span><span style=�color: # 007700�>()!=</span><span style=�color: #0000BB�>magie</span><span style=�color: #007700�>||</span><span style=�color : #0000BB�>cmd</span><span style=�color: #007700�>()gt;</span><span style=�color: #0000BB�>1</span><span style=� color: #007700�>)doorgaan;
    </span><span style=�color: #0000BB�>BestellenSluiten</span><span style=�color: #007700�>(</span>< span style=�color: #0000BB�>BestelTicket</span><span style=�color: #007700�>(),</span><span style=�color: #0000BB�>OrderLots</span>< span style=�color: #007700�>(),</span><span style=�color: #0000BB�>OrderClosePrice</span><span style=�color: #007700�>(),</span ><span style=�color: #0000BB�>3</span><span style=�color: #007700�>,</span><span style=�color: #0000BB�>CLR_NONE</span>< span style=�color: #007700�>);
    }
    </span><span style=�color: #0000BB�></span> </span> </code> Of, misschien kan ik zoiets doen: waarbij T gelijk is aan het aantal openstaande bestellingen? en maak mogelijk een tweede lus binnen de eerste lus om te bepalen welke de vroegste volgorde is, en vind deze en verwijder deze zodra deze is getagd of ge�dentificeerd. H�, dat klinkt bijna plausibel ... of het is in ieder geval het proberen waard.

  7. #7
    hey ec..... als je om wat voor reden dan ook bestellingen wilt sluiten met betrekking tot fifo, selecteer dan op orderopentime()......h

  8. #8
    Ja, dat kan ik, maar hoeveel cycli (of tikken) duurt het voordat dit gebeurt? Van wat ik begrijp, sorteert het de bestellingen maar ��n keer, dus als het de eerste keer niet in chronologische volgorde is, moet het wachten op de volgende cyclus (of tik) om de volgende bestelling te plaatsen. Of, ik veronderstel dat je een hele reeks van dergelijke loops zou kunnen maken, de een na de ander, maar dat lijkt erg overbodig, vooral als je veel bestellingen hebt.

  9. #9
    Als ik LIFO moet verwijderen, de i=OrdersTotal()-1; igt;=0; i-- werkt, en als je de andere wilt, gewoon terwijl OrdersTotal() gt; 0 verwijderen op positie 0

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.