Strategietester stopt gewoon bij het uitvoeren van deze code en idk waarom
Results 1 to 8 of 8

Thread: Strategietester stopt gewoon bij het uitvoeren van deze code en idk waarom

  1. #1
    Hallo jongens,

    Ik heb deze code die ik heb geschreven en in mijn gedachten werkt het perfect, maar mijn geest lijkt ongelijk en het weet niet waarom.
    Dus heb ik het probleem bij een specifiek onderdeel gevolgd, maar ik heb nog steeds geen idee wat er toe leidt dat het faalt.
    Er zijn ook geen fouten van enige betekenis.

    Hier is het gedeelte waar het lijkt te falen:
    Code ingevoegd als (Trades # 91; 7, RowNumber2 # 93; == 1) {if (Ask lt; = Trades # 91; 2, RowNumber2 # 93; Trades # 91; 6, RowNumber # 93; == 0) { int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trades # 91; 4, RowNumber2 # 93 ;, 0, NULL, Trades # 91; 1, RowNumber # 93 ;, 0, Blue); Handel # 91; 6, RowNumber # 93; = 1;/Afdrukken (--- MagicNumber =, MagicNumber, ---); ArrayCounter2 = 0; RowNumber2 = 0; }} else {ArrayCounter2 = ArrayCounter2 1; RowNumber2 = RowNumber2 1; }
    Hier is de volledige code:
    Code ingevoegd/ --------------------------------------------- --------------------- /| FTB.mq4 |/| |/| https://www.mql4.com |/ ----------------------------------------------- ------------------- #eigenschap copyright #eigenschap strict extern int MagicNumber = 10001; externe dubbele lots = 0,1; extern dubbel TrailingStop = 0; extern int Slippage = 3; externe dubbele EntryGap = 0.00500; extern int BrokerDigits = 5; extern int AllowableDrawdown = 25; extern int MaxDrawdown = 610; extern bool MoneyManagement = false; dubbele ingang; dubbele StopLoss; dubbele TakeProfit; dubbele HalfCandleSize; dubbel Midden; dubbele OpenCheck; dubbele CloseCheck; dubbele handel # 91; 8 # 93; # 91; 20 # 93 ;;/ArrayNumber | MagicNumber | Entry | Stoploss | WaitCounter | Vervaltijd Ingevoerd | Bevolkte int SignalTime; int BarsOnChart = Bars; int IsNewCandle; int OrderError = 0; int RowNumber = 0; int RowNumber2 = 0; int ArrayCounter = 0; int ArrayCounter2 = 0;/ ----------------------------------------------- ------------------- /| Expert-initialisatiefunctie |/ ----------------------------------------------- ------------------- int OnInit () {Trades # 91; 0,0 # 93; = 1; Handel # 91, # 93 0,1; = 2; Transacties # 91; 0,2 # 93; = 3; Handel # 91, # 93 0,3; = 4; Handel # 91, # 93 0,4; = 5; Handel # 91, # 93 0,5; = 6; Handel # 91, # 93 0,6; = 7; Handel # 91, # 93 0,7; = 8; Handel # 91, # 93 0,8; = 9; Handel # 91, # 93 0,9; = 10; Handel # 91, # 93, 0,10; = 11; Handel # 91, # 93, 0,11; = 12; Handel # 91, # 93, 0,12; = 13; Handel # 91, # 93, 0,13; = 14; Handel # 91, # 93, 0,14; = 15; Handel # 91, # 93, 0,15; = 16; Handel # 91, # 93, 0,16; = 17; Handel # 91, # 93, 0,17; = 18; Handel # 91, # 93, 0,18; = 19; Handel # 91, # 93, 0,19; = 20; Afdrukken(-----------); Afdrukken (ArrayNumber =, transacties # 91; 0, RowNumber # 93;); Afdrukken (MagicNumber =, transacties # 91; 1, RowNumber # 93;); Print (Entry =, Trades # 91; 2, RowNumber # 93;); Afdrukken (Stoploss =, transacties # 91; 3, RowNumber # 93;); Afdrukken (WaitCounter =, transacties # 91; 4, RowNumber # 93;); Afdrukken (ExpirationTime =, handel # 91; 5, rijnummer # 93;); Afdrukken (ingevoerd =, transacties # 91; 6, rijnummer # 93;); Afdrukken (ingevuld =, transacties # 91; 7, rijnummer # 93;); Afdrukken(-----------); terugkeer (INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /| Expert de�nitialisatiefunctie |/ ----------------------------------------------- ------------------- void OnDeinit (const int reason) {}/ ------------------ ------------------------------------------------ /| Expert-tikfunctie |/ ----------------------------------------------- ------------------- void OnTick () {if (BarsOnChart! = Bars)/Controleren op nieuwe geslotenkaarsen {BarsOnChart = Bars; IsNewCandle = 1; } else {IsNewCandle = 0; } if (IsNewCandle == 1)/Controleren of een nieuwe kaars is gesloten {SignalTime = Hour () - 1; if ((SignalTime gt; 8) (SignalTime lt; 14) (Hoog # 91; 1 # 93; gt; Hoog # 91; 2 # 93;))/Controleer of de signaalkaars een hogere waarde heeft dan de kaars ervoor en bevindt zich binnen het tijdsbestek {HalfCandleSize = (Hoog # 91; 1 # 93; - Laag # 91; 1 # 93;)2;/Berekent de helft van de kaarsmaat Midden = Laag # 91; 1 # 93; HalfCandleSize;/Berekent het midden van de kaars OpenCheck = Middle - Open # 91; 1 # 93 ;;/Berekent de afstand tussen open en midden. CloseCheck = Middle - Close # 91; 1 # 93 ;;/Berekent de afstand tussen dicht en midden if (OpenCheck gt; 0 CloseCheck gt; 0)/controleert of de kaars sluit in de onderste helft {Entry = NormalizeDouble (Low # 91; 1 # 93; - 0.0001, 5);/Reden voor OrderSend Fout 130 is dat de Entry Entry te dicht bij Current Market Entry ligt StopLoss = NormalizeDouble (High # 91; 1 # 93; 0.0005, 5); while (ArrayCounter lt; 20) {if (Trades # 91; 7, RowNumber # 93; == 0) {Trades # 91; 1, RowNumber # 93; = MagicNumber; Handel # 91, 2, RowNumber # 93; = Binnenkomst; Handel # 91; 3, RowNumber # 93; = StopLoss; Handel # 91; 4, RowNumber # 93; = 0; Handel # 91; 5, RowNumber # 93; = 0; Handel # 91; 6, RowNumber # 93; = 0; Handel # 91; 7, RowNumber # 93; = 1; MagicNumber = MagicNumber 1; Afdrukken(-----------); Afdrukken (ArrayNumber =, transacties # 91; 0, RowNumber # 93;); Afdrukken (MagicNumber =, transacties # 91; 1, RowNumber # 93;); Print (Entry =, Trades # 91; 2, RowNumber # 93;); Afdrukken (Stoploss =, transacties # 91; 3, RowNumber # 93;); Afdrukken (WaitCounter =, transacties # 91; 4, RowNumber # 93;); Afdrukken (ExpirationTime =, handel # 91; 5, rijnummer # 93;); Afdrukken (ingevoerd =, transacties # 91; 6, rijnummer # 93;); Afdrukken (ingevuld =, transacties # 91; 7, rijnummer # 93;); Afdrukken(-----------); breken; } else {ArrayCounter = ArrayCounter 1; RowNumber = RowNumber 1; }} ArrayCounter = 0; RowNumber = 0; }}} while (ArrayCounter2lt; 20) {if (Trades # 91; 7, RowNumber2 # 93; == 1) {if (Ask lt; = Trades # 91; 2, RowNumber2 # 93; Trades # 91; 6, RowNumber # 93; == 0) {int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trades # 91; 4, RowNumber2 # 93 ;, 0, NULL, Trades # 91; 1, RowNumber # 93 ;, 0, Blue); Handel # 91; 6, RowNumber # 93; = 1;/Afdrukken (--- MagicNumber =, MagicNumber, ---); ArrayCounter2 = 0; RowNumber2 = 0; }} else {ArrayCounter2 = ArrayCounter2 1; RowNumber2 = RowNumber2 1; }} if (ArrayCounter2 == 20) {ArrayCounter2 = 0; RowNumber2 = 0; }}

    Als jullie me je wijsheid zouden kunnen geven, zou dat zeer gewaardeerd worden.
    Bedankt!

  2. #2

    Quote Originally Posted by ;
    Hallo jongens, ik heb deze code die ik heb geschreven en in mijn gedachten werkt het perfect, maar mijn geest lijkt niet te kloppen en het weet niet waarom. Dus heb ik het probleem bij een specifiek onderdeel gevolgd, maar ik heb nog steeds geen idee wat er toe leidt dat het faalt. Er zijn ook geen fouten van enige betekenis. Hier is het gedeelte waar het lijkt te falen op: if (Trades [7, RowNumber2] == 1) {if (Ask lt; = Trades [2, RowNumber2] Trades [6, RowNumber] == 0) {int Ticket = OrderSend (Symbol (), OP_SELL, Lots, Ask, Slippage, Trades [4, RowNumber2], 0, NULL, Trades [1, RowNumber], 0, Blue); Transacties [6, RowNumber] ...
    Backtester kan geen code-achtige terminal gebruiken. Dan werkt zijn normale code in terminal mislukt in backtester

  3. #3

    Quote Originally Posted by ;
    {quote} Backtester kan geen code-achtige terminal gebruiken. Dan werkt zijn normale code in terminal mislukt in backtester
    Wat zou dit echter in de tester doen mislukken? Ik heb dit niet getest op actuele live grafieken.

  4. #4

    Quote Originally Posted by ;
    {quote} Wat zou dit echter in de tester doen mislukken? Ik heb dit niet getest op actuele live grafieken.
    Als je de code niet hebt getest, weet je dat het echt werkt? Je checkt het in live grafieken en als je het ziet, probeer het dan in de backtester. Eenvoudige codes moeten worden uitgevoerd, maar als u complexe code gebruikt, wordt de gemeenschappelijke code niet uitgevoerd in de back-tester zonder grote codeaanpassingen. Het is hoe dan ook een verspilling van tijd, probeer iets in MT4-backtester. Als u wilt, moet de backtester naar MT5 gaan. Die backtester kan een code-achtige terminal zonder enige wijziging uitvoeren en zelfs debuggen

  5. #5
    Les om te leren: laat de strikte richtlijn nooit links liggen. Onthoud het, corrigeer je code en meer dan waarschijnlijk heb je je probleem opgelost. Slecht, ik kwam net van het coderen van een stel python waarbij # is hoe je een regel commentaar geeft ... Ik dacht niet dat de verouderde syntaxisarray [i, j] zelfs zou compileren met behulp van de strikte richtlijn. TIL.

  6. #6

    Quote Originally Posted by ;
    {quote} Als u de code niet hebt getest, weet u dat het echt werkt? Je checkt het in live grafieken en als je het ziet, probeer het dan in de backtester. Eenvoudige codes moeten worden uitgevoerd, maar als u complexe code gebruikt, wordt de gemeenschappelijke code niet uitgevoerd in de back-tester zonder grote codeaanpassingen. Het is hoe dan ook een verspilling van tijd, probeer iets in MT4-backtester. Als u wilt, moet de backtester naar MT5 gaan. Die backtester kan een code-achtige terminal zonder enige wijziging uitvoeren en zelfs debuggen
    Er is een grote fout met de testcode op een live grafiek. Het kost tijd ... veel tijd. Ik zou hier al een maand geen signaal voor kunnen krijgen dat helemaal niet haalbaar is. Bovendien is het een egie die alleen op bepaalde tijden van de dag wordt verhandeld. Als ik het wil backtesten, moet ik de egie-tester toch gebruiken. Er moet ergens een probleem in de code zitten dat het niet zal laten voortduren, maar ik kan het niet vinden. Ik begrijp wat je zegt over MT5, maar momenteel is alles wat ik gebruik nog steeds op MT4. Omschakelen is niet zo eenvoudig als gewoon downloaden.
    Quote Originally Posted by ;
    Les om te leren: laat de strikte richtlijn nooit links liggen. Onthoud het, corrigeer je code en meer dan waarschijnlijk heb je je probleem opgelost. Slecht, ik kwam net van het coderen van een stel python waarbij # is hoe je een regel commentaar geeft ... Ik dacht niet dat de verouderde syntaxisarray [i, j] zelfs zou compileren met behulp van de strikte richtlijn. TIL.
    Hehe het is allemaal goed. Ik heb geprobeerd het te verwijderen en het voorkomt alleen dat er fouten verschijnen (zoals datatype conversie die eindigt in mogelijk verlies dat het niet zal doen in deze code). Toch hetzelfde probleem.

  7. #7

    Quote Originally Posted by ;
    {quote} Er is een grote fout met de testcode op een live grafiek. Het kost tijd ... veel tijd. Ik zou hier al een maand geen signaal voor kunnen krijgen dat helemaal niet haalbaar is. Bovendien is het een egie die alleen op bepaalde tijden van de dag wordt verhandeld. Als ik het wil backtesten, moet ik de egie-tester toch gebruiken. Er moet ergens een probleem in de code zitten dat het niet zal laten voortduren, maar ik kan het niet vinden. Ik begrijp wat je zegt over MT5, maar momenteel is alles wat ik gebruik nog steeds op MT4. Omschakelen is niet zo eenvoudig als alleen ...
    Dus ik wilde alleen maar een paar dingen aangeven die je code vooruit helpen helpen. Het kan helpen om een ??????aantal handleidingen in C stijl te bekijken en gebruik te maken van algemene ontwikkelconventies. Je code is heel moeilijk te lezen omdat je ze niet volgt. Er is bijvoorbeeld een volledig codeblok dat niet is ingesprongen, u gebruikt CamelCase voor variabelenamen wanneer die stijl meestal alleen voor klassen wordt gebruikt en u gebruikt in plaats daarvan ook gehele getallen in plaats van boolean-typen. Bovendien, u gebruikt multi-dimensionale arrays verkeerd. Je hoeft ze alleen te gebruiken voor lineaire algebra, al het andere dat je nodig hebt om structs of objecten te gebruiken. U hebt bijvoorbeeld Code Trades # 91; 1, RowNumber # 93 ingevoegd; = MagicNumber Dit is onmogelijk om te begrijpen dat Magic-getallen een integer-type zijn dat niet dubbel is

  8. #8

    Quote Originally Posted by ;
    {quote} Dus wilde ik u alleen op een paar dingen wijzen die uw code vooruit helpen helpen. Het kan helpen om een ??????aantal handleidingen in C stijl te bekijken en gebruik te maken van algemene ontwikkelconventies. Je code is heel moeilijk te lezen omdat je ze niet volgt. Er is bijvoorbeeld een volledig codeblok dat niet is ingesprongen, u gebruikt CamelCase voor variabelenamen wanneer die stijl meestal alleen voor klassen wordt gebruikt en u gebruikt in plaats daarvan ook gehele getallen in plaats van boolean-typen. Bovendien, u gebruikt multi-dimensionale arrays verkeerd. Je hoeft ze alleen te gebruiken voor ...
    Ik begrijp wat je zegt. Ik ben vrijwel autodidactisch door met code te spelen en had nooit echt een klasse of een goede structuur tijdens het leren. Het is waarschijnlijk het beste om te kijken naar meer conventionele coderingsmethoden. Nu, ongeacht dat alles werkte nog steeds en ik heb uiteindelijk het probleem gevonden dankzij een hint die iemand me gaf en ik vond een oneindige lus en loste het op. Bedankt voor de hulp!

Similar Threads

  1. Wat betekent deze code?
    By chedu1976 in forum Cryptocurrencies
    Replies: 2
    Last Post: 04:36,
  2. Replies: 6
    Last Post: 14:16,
  3. Noodzaak code voor deze egie
    By coolwaves in forum Cryptocurrencies
    Replies: 0
    Last Post: 11:09,

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.