Dagelijkse winstprocedure
Page 1 of 632 12 LastLast
Results 1 to 10 of 11

Thread: Dagelijkse winstprocedure

  1. #1
    Ik ben op zoek naar een procedure, mql4, die me waar of niet waar zal maken, wanneer ik de dagelijkse winstlimiet voor een paar heb bereikt. Ik heb de volgende code geprobeerd, maar deze geeft altijd false op.
    Ingevoegd Code bool funcGetTodaysProfit () {int int DailyProfitPips = 100; double dblReturnValue = 0, dblDailyProfitPips = intDailyProfitPips * Point; for (int i = 0; ilt; OrdersTotal (); i ) {//1 cycle by orders search if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == false) pauze; if (OrderMagicNumber ()! = intOrderMagicNumber) ga verder; if (TimeYear (Time # 91; 0 # 93;)! = TimeYear (OrderOpenTime ()) TimeDay (Time # 91; 0 # 93;)! = TimeDay (OrderOpenTime ()) TimeMonth (Time # 91; 0 # 93; ) = TimeMonth (OrderOpenTime ())) voort te zetten!;/niet de winst van vandaag. if (OrderType () == OP_BUY) {dblReturnValue = dblReturnValue (OrderClosePrice () - OrderOpenPrice ());} if (OrderType () == OP_SELL) {dblReturnValue = dblReturnValue (OrderOpenPrice () - OrderClosePrice ());}} Commentaar (Tot nu toe winst tot nu toe:, DoubleToStr (dblReturnValue, Cijfers), \ n, Winstdoel:, DoubleToStr (dblDailyProfitPips, Cijfers)); if (dblReturnValuegt; dblDailyProfitPips) {return (true);} return (false); }
    Als iemand kan helpen, zou ik het op prijs stellen.

  2. #2

    Quote Originally Posted by ;
    Ik ben op zoek naar een procedure, mql4, die me waar of niet waar zal maken, wanneer ik de dagelijkse winstlimiet voor een paar heb bereikt. Ik heb de volgende code geprobeerd, maar deze geeft altijd false op. [code] bool funcGetTodaysProfit () {int int DailyProfitPips = 100; double dblReturnValue = 0, dblDailyProfitPips = intDailyProfitPips * Point; for (int i = 0; ilt; OrdersTotal (); i ) {//1 cycle by orders search if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == false) pauze; if (OrderMagicNumber ()! = intOrderMagicNumber) ga verder; if (TimeYear (Time [0])! = TimeYear (OrderOpenTime ()) ...
    nondisclosure00- Het eerste dat opvalt, is dat u zei dat u de dagelijkse winstlimiet voor een paar wilt hebben, terwijl u symbolen vergelijkt bij het doorlussen van de orders. Ten tweede heb je dit: int int DailyProfitPips = 100; die niet compileert Wat betreft het controleren van de dagelijkse winst die ik voorstelde met iBarShift ().

  3. #3
    OK. maakte de wijziging zodat het compileert en ook het magische getal dat ik verder in mijn code gebruik en het nu-symbool gebruikt. Maar ik krijg nog steeds hetzelfde resultaat. Hoe moet ik iBarShift () gebruiken bij het doorlopen van gesloten posities om de winst voor de dag te vinden? Ingevoegd Code bool funcGetTodaysProfit () {int intDailyProfitPips = 100; double dblReturnValue = 0, dblDailyProfitPips = intDailyProfitPips * Point; for (int i = 0; ilt; OrdersTotal (); i ) {//1 cycle by orders search if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == false) pauze; if (OrderSymbol ()! = Symbol () doorgaan; if (TimeYear (Time # 91; 0 # 93! = TimeYear (OrderOpenTime ()) TimeDay (Time # 91; 0 # 93! = TimeDay (OrderOpenTime ( )) TimeMonth (Time # 91; 0 # 93! = TimeMonth (OrderOpenTime ())) doorgaan;/niet de winst van vandaag. (OrderType () == OP_BUY) {dblReturnValue = dblReturnValue (OrderClosePrice () - OrderOpenPrice ( ));} if (OrderType () == OP_SELL) {dblReturnValue = dblReturnValue (OrderOpenPrice () - OrderClosePrice ());}} Commentaar (Winst vandaag tot nu toe:, DoubleToStr (dblReturnValue, Cijfers), n, Winstdoel:, DoubleToStr (dblDailyProfitPips, Cijfers)); if (dblReturnValuegt; dblDailyProfitPips) {return (true);} return (false);}
    Quote Originally Posted by ;
    - Het eerste wat ik opvalt, is dat je zei dat je de dagelijkse winstlimiet voor een paar wilt halen, nergens vergelijk je symbolen bij het doorlussen van de orders. Ten tweede heb je dit: int int DailyProfitPips = 100; die niet compileert Wat betreft het controleren van de dagelijkse winst die ik voorstelde met iBarShift ().
    Quote Originally Posted by ;
    - Het eerste wat ik opvalt, is dat je zei dat je de dagelijkse winstlimiet voor een paar wilt halen, nergens vergelijk je symbolen bij het doorlussen van de orders. Ten tweede heb je dit: int int DailyProfitPips = 100; die niet compileert Wat betreft het controleren van de dagelijkse winst die ik voorstelde met iBarShift ().

  4. #4

    Quote Originally Posted by ;
    OK. maakte de wijziging zodat het compileert en ook het magische getal dat ik verder in mijn code gebruik en het nu-symbool gebruikt. Maar ik krijg nog steeds hetzelfde resultaat. Hoe moet ik iBarShift () gebruiken bij het doorlopen van gesloten posities om de winst voor de dag te vinden? Ingevoegd Code bool funcGetTodaysProfit () {int intDailyProfitPips = 100; double dblReturnValue = 0, dblDailyProfitPips = intDailyProfitPips * Point; for (int i = 0; ilt; OrdersTotal (); i ) {//1 cycle by orders search if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == false) pauze; if (OrderSymbol ()! = Symbol () doorgaan; if (TimeYear (Time # 91; 0 # 93! = TimeYear (OrderOpenTime ()) TimeDay (Time # 91; 0 # 93! = TimeDay (OrderOpenTime ( )) TimeMonth (Time # 91; 0 # 93! = TimeMonth (OrderOpenTime ())) doorgaan;/niet de winst van vandaag. (OrderType () == OP_BUY) {dblReturnValue = dblReturnValue (OrderClosePrice () - OrderOpenPrice ( ));} if (OrderType () == OP_SELL) {dblReturnValue = dblReturnValue (OrderOpenPrice () - OrderClosePrice ());}} Commentaar (Winst vandaag tot nu toe:, DoubleToStr (dblReturnValue, Cijfers), n, Winstdoel:, DoubleToStr (dblDailyProfitPips, Cijfers)); if (dblReturnValuegt; dblDailyProfitPips) {return (true);} return (false);}
    nondisclosure00- Je zult beide nodig hebben. Ik bedoelde niet dat je de ene vervangt door de andere. Anyways dit is mijn idee van wat je probeert te doen. Er is waarschijnlijk iets dat ik heb gemist, maar het zou je een aantal idee�n moeten geven. Code ingevoegd/ --------------------------------------------- ------------------------------- /// ------------- -------------------------------------------------- ------------- dubbele GetTodaysProfit () {dubbele TotProf = 0; int total = HistoryTotal (); voor (int i = 0; ilt; totaal; i ) {OrderSelect (i, SELECT_BY_POS, MODE_HISTORY); if (OrderSymbol () == Symbol () OrderMagicNumber () == MagicNumber) {int BarsCnt = iBarShift (NULL, PERIOD_D1, OrderCloseTime ()); if (BarsCntlt; 2) {TotProf = OrderProfit (); }}} return (TotProf); }

  5. #5
    Bedankt, maar zal niet werken in een backtest op een 1 uur durende staafdiagram. Het geeft me wel iets om over na te denken ...
    Quote Originally Posted by ;
    - Je zult beide nodig hebben. Ik bedoelde niet dat je de ene vervangt door de andere. Anyways dit is mijn idee van wat je probeert te doen. Er is waarschijnlijk iets dat ik heb gemist, maar het zou je een aantal idee�n moeten geven. [code]/ -------------------------------------------- -------------------------------- /// ------------ -------------------------------------------------- -------------- dubbele GetTodaysProfit () {dubbele TotProf = 0; int total = HistoryTotal (); voor (int i = 0; ilt; totaal; i ) {OrderSelect (i, SELECT_BY_POS, ...
    Quote Originally Posted by ;
    - Je zult beide nodig hebben. Ik bedoelde niet dat je de ene vervangt door de andere. Anyways dit is mijn idee van wat je probeert te doen. Er is waarschijnlijk iets dat ik heb gemist, maar het zou je een aantal idee�n moeten geven. [code]/ -------------------------------------------- -------------------------------- /// ------------ -------------------------------------------------- -------------- dubbele GetTodaysProfit () {dubbele TotProf = 0; int total = HistoryTotal (); voor (int i = 0; ilt; totaal; i ) {OrderSelect (i, SELECT_BY_POS, ...

  6. #6
    Hieronder een voorbeeld met het huidige totaal inclusief de huidige geopende transacties: ingevoegde code double daily_profit () {double prof = 0; int handel; int trades = OrdersHistoryTotal (); for (trade = 0; tradelt; trades; trade ) {OrderSelect (trade, SELECT_BY_POS, MODE_HISTORY); if (OrderMagicNumber () == MagicNumber OrderSymbol () == Symbol ()) {if (OrderCloseTime () gt; = iTime (Symbol (), 1440,0)) prof = OrderProfit () OrderSwap () OrderCommission ( ); }} for (trade = 0; tradelt; OrdersTotal (); trade ) {OrderSelect (trade, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == MagicNumber OrderSymbol () == Symbol ()) {if (OrderOpenTime () gt; = iTime (Symbol (), 1440,0)) prof = OrderProfit () OrderSwap () OrderCommission ( ); }} return (prof); }

  7. #7
    Bedankt Ferru. Lange tijd! Ik krijg de winst op dezelfde dag correct berekend. Maar het ziet nog steeds de winst van de laatste dag en voegt het toe aan de huidige winst. Voeg daaraan toe dat het resultaat in mijn functie altijd false is. Om het even welke idee�n.
    Quote Originally Posted by ;
    Hieronder een voorbeeld met het huidige totaal inclusief de huidige geopende transacties: [code] dubbele daily_profit () {double prof = 0; int handel; int trades = OrdersHistoryTotal (); for (trade = 0; tradelt; trades; trade ) {OrderSelect (trade, SELECT_BY_POS, MODE_HISTORY); if (OrderMagicNumber () == MagicNumber OrderSymbol () == Symbol ()) {if (OrderCloseTime () gt; = iTime (Symbol (), 1440,0)) prof = OrderProfit () OrderSwap () OrderCommission ( ); }} for (trade = 0; tradelt; OrdersTotal (); trade ) {OrderSelect (trade, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () ...
    Quote Originally Posted by ;
    Hieronder een voorbeeld met het huidige totaal inclusief de huidige geopende transacties: [code] dubbele daily_profit () {double prof = 0; int handel; int trades = OrdersHistoryTotal (); for (trade = 0; tradelt; trades; trade ) {OrderSelect (trade, SELECT_BY_POS, MODE_HISTORY); if (OrderMagicNumber () == MagicNumber OrderSymbol () == Symbol ()) {if (OrderCloseTime () gt; = iTime (Symbol (), 1440,0)) prof = OrderProfit () OrderSwap () OrderCommission ( ); }} for (trade = 0; tradelt; OrdersTotal (); trade ) {OrderSelect (trade, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () ...

  8. #8

    Quote Originally Posted by ;
    Bedankt Ferru. Lange tijd! Ik krijg de winst op dezelfde dag correct berekend. Maar het ziet nog steeds de winst van de laatste dag en voegt het toe aan de huidige winst. Voeg daaraan toe dat het resultaat in mijn functie altijd false is. Om het even welke idee�n.
    Aan het begin van de functie moet u de winst instellen op 0, zodat de berekening alleen geldig is voor deze oproep. Dit is ook belangrijk om alleen naar bestellingen te kijken die zijn geopendgesloten na het begin van de dag (zoals weergegeven in mijn voorbeeld).

  9. #9
    Yep. Doen dat: dubbele dblReturnValue = 0
    Quote Originally Posted by ;
    Aan het begin van de functie moet u de winst instellen op 0, zodat de berekening alleen geldig is voor deze oproep. Dit is ook belangrijk om alleen naar bestellingen te kijken die zijn geopendgesloten na het begin van de dag (zoals weergegeven in mijn voorbeeld).
    Quote Originally Posted by ;
    Aan het begin van de functie moet u de winst instellen op 0, zodat de berekening alleen geldig is voor deze oproep. Dit is ook belangrijk om alleen naar bestellingen te kijken die zijn geopendgesloten na het begin van de dag (zoals weergegeven in mijn voorbeeld).

  10. #10
    Ferru, ik snap het. Ik heb deze regels toegevoegd: Inserted Code string strCurrentDate = StringConenate (TimeYear (Time # 91; 0 # 93,., TimeMonth (Time # 91; 0 # 93,., TimeDay (Time # 91; 0 # 93; )); datetime dtCurrentDate = StrToTime (strCurrentDate); Deze regels zijn vervangen: Code ingevoegd als (TimeYear (OrderOpenTime ())! = TimeYear (Time # 91; 0 # 93 TimeDay (OrderOpenTime ())! = TimeDay (Time # 91; 0 # 93 TimeMonth (OrderOpenTime ( !)) = TimeMonth (Time # 91; 0 # 93) voort te zetten;/niet de winst van vandaag. Met deze regel: Inserted Code if (OrderOpenTime () lt; dtCurrentDate) doorgaan; Alles werkt zoals gewenst! Bedankt!
    Quote Originally Posted by ;
    Aan het begin van de functie moet u de winst instellen op 0, zodat de berekening alleen geldig is voor deze oproep. Dit is ook belangrijk om alleen naar bestellingen te kijken die zijn geopendgesloten na het begin van de dag (zoals weergegeven in mijn voorbeeld).
    Quote Originally Posted by ;
    Aan het begin van de functie moet u de winst instellen op 0, zodat de berekening alleen geldig is voor deze oproep. Dit is ook belangrijk om alleen naar bestellingen te kijken die zijn geopendgesloten na het begin van de dag (zoals weergegeven in mijn voorbeeld).

Similar Threads

  1. Het dagelijkse stopsysteem
    By Gerbasio in forum Forex Strategie
    Replies: 24
    Last Post: 10:06,

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.