Hulp bij het tekenen van een fibo in een script
Page 1 of 632 12 LastLast
Results 1 to 10 of 12

Thread: Hulp bij het tekenen van een fibo in een script

  1. #1
    1 Bijlage(n) Hallo

    Ik heb een MT4-script dat een lopende bestelling op de huidige balk plaatst. Ik zou graag binnen hetzelfde script een fibo over de huidige balk willen tekenen. Kan iemand mij helpen dat te doen? Ik heb geprobeerd de instructies hier te gebruiken, maar ze gaan me te boven:

    https://docs.mql4.com/constants/obje...bject/obj_fibo

    Kan iemand me alsjeblieft helpen?

    Bedankt

    Piet

    https://www.aforexa.com/attachments/...1349220712.mq4

  2. #2
    Bedankt hiervoor, zal vanavond als ik thuis ben eens kijken. Nee, heb geen van de standaard lib-bestanden gewijzigd...
    Quote Originally Posted by ;
    Hallo Maxx, {quote} Ik weet niet zeker of je de standaard lib-bestanden hebt bewerkt, maar als je dat deed, kan dat een groot probleem zijn en je moet ze terugzetten naar de manier waarop ze kwamen. Als je de standaardbibliotheek moet wijzigen, moet je in plaats daarvan een onderliggende klas maken... als je dat niet hebt gedaan, negeer dan deze opmerking. {quote} Ja... als u Detach() niet aanroept, wordt de kaarttekening verwijderd door de objectvernietiger. U mag niet hetzelfde object gebruiken om meerdere diagramtekeningen te maken. Elke kaarttekening moet zijn eigen object hebben. Hier is een voorbeeld van het maken van een nieuwe...
    Quote Originally Posted by ;
    Hallo Maxx, {quote} Ik weet niet zeker of je de standaard lib-bestanden hebt bewerkt, maar als je dat deed, kan dat een groot probleem zijn en je moet ze terugzetten naar de manier waarop ze kwamen. Als je de standaardbibliotheek moet wijzigen, moet je in plaats daarvan een onderliggende klas maken... als je dat niet hebt gedaan, negeer dan deze opmerking. {quote} Ja... als u Detach() niet aanroept, wordt de kaarttekening verwijderd door de objectvernietiger. U mag niet hetzelfde object gebruiken om meerdere diagramtekeningen te maken. Elke kaarttekening moet zijn eigen object hebben. Hier is een voorbeeld van het maken van een nieuwe...

  3. #3
    Hallo Maxx,
    Quote Originally Posted by ;
    Wanneer ik debug, lijkt het een ObjectDelete() aan te roepen in ChartObject.mqh...? Het grappige is dat als ik er commentaar op geef, er niets wordt getekend. Als ik het erin laat, wordt de fibo getekend, maar de fibo verschijnt niet in de lijst Objecten voor de kaart. Ik kan nu zonder dat leven, maar het zou leuk zijn om in de toekomst verschillende fibo's handmatig te kunnen verwijderen.
    Ik weet niet zeker of je de standaard lib-bestanden hebt bewerkt, maar als je dat deed, kan dat een groot probleem zijn en moet je ze terugzetten naar de manier waarop ze kwamen. Als je de standaardbibliotheek moet wijzigen, moet je in plaats daarvan een onderliggende klas maken... als je dat niet hebt gedaan, negeer dan deze opmerking.
    Quote Originally Posted by ;
    Het doet alles wat ik wil, behalve de grafiek in de lijst met objecten laten staan. Ik heb Detach() nodig, maar wat moet ik nog meer doen om het daar te plaatsen? Ik kan hier niets zien:
    Ja... als u Detach() niet aanroept, wordt de kaarttekening verwijderd door de objectvernietiger. U mag niet hetzelfde object gebruiken om meerdere diagramtekeningen te maken. Elke kaarttekening moet zijn eigen object hebben. Hier is een voorbeeld van het maken van een nieuw object op de heap, het toewijzen aan een aanwijzer, met het object werken en het vervolgens toevoegen aan de ArrayObj-container die u vervolgens kunt gebruiken om de objecten onderweg te manipuleren of wanneer u klaar bent, zal het automatisch de objecten uit het geheugen verwijderen, zodat u er niet aan hoeft te denken dit handmatig te doen. Code ingevoegd/ --------------------------------------------- --------------------- /| FiboDraw.mq4 |/| nicholishen |/| www.reddit.com/u/nicholishenFX |/ ----------------------------------------------- ------------------- #property copyright nicholishen #property link www.reddit.com/u/nicholishenFX #property version 1.00 #property strict #include lt;ChartObjects\ChartObjectsFibo .mqhgt; #include lt;Arrays\ArrayObj.mqhgt;/ ----------------------------------------------- ------------------- /| Script programma start functie |/ ----------------------------------------------- ------------------- void OnStart() {/---/--- verwijdert alle grafiekobjecten die overblijven van een vorige run. Dit is alleen voor het script ObjectsDeleteAll(0,myFibo);/--- fibo-ankerpunten krijgen van zigzag struct myAnchors { dubbele prijs; datum/tijd; myAnchors()rice(0.0),time(NULL){} } anchors#91;2#93;;/automatisch geheugen CArrayObj objArray beheren; for(int i=0;ilt;10;i ) { anchors#91;1#93;.price = High#91;i#93;; anchors#91;1#93;.time = Tijd#91;i#93;; ankers#91;0#93;.prijs = Hoog#91;i#93;-((Hoog#91;i#93;-Laag#91;i#93/2); anchors#91;0#93;.time = Tijd#91;i#93;; string fibo_name = myFibo_ IntegerToString(i);/--- declareer en maak een object van de fibo-klasse CChartObjectFibo *fibo = new CChartObjectFibo; fibo.Create(0,/chartID fibo_name,/chart objectnaam 0,/subwindow anchors#91;1#93;.time,/time 1 anchors#91;1#93;.price,/price 1 ankers#91;0#93;.time,/time 2 ankers#91;0#93;.price/price 2 );/--- nieuwe niveaus instellen omdat we 76.4 willen en geen extensies, anders is deze stap niet nodig dubbele niveaus#91;10#93; = {-9, -7, -5, -3, -1, 1, 3, 5, 7, 9} ; tekenreeks niveaunaam#91;10#93; = {4R,3R,2R,1R,S,L,1R,2R,3R,4R}; fibo.LevelsCount(10); for(int j=0;jlt;ArraySize(niveaus);j ) { fibo.LevelValue(j,levels#91;j#93; fibo.LevelDescription(j,levelname#91;j#93; fibo.LevelColor(j,clrBlack);}/schakel ray fibo uit.RayRight (false);/laat object op de kaart staan ??????nadat het object is vernietigd fibo.Detach(); objArray.Add(fibo); } }/ --------------------------------------------- ---------------------

  4. #4
    1 Bijlage(n)
    Quote Originally Posted by ;
    {quote} Nou, dat hangt allemaal af van hoe je het wilt implementeren... Probeer je de tekeningen op de kaart te laten staan?
    Ja
    Quote Originally Posted by ;
    {quote}Probeert u de huidige tekening bij te werken?
    Nee, maar misschien wil ik het in de toekomst handmatig bijwerken... Ik kan op dit punt terugkomen.
    Quote Originally Posted by ;
    {quote} Wat gebeurt er als je fibo.Detach() aanroept? Heb je een breekpunt ingesteld en door de code in de debugger gestapt?
    Wanneer ik debug, lijkt het een ObjectDelete() aan te roepen in ChartObject.mqh...? Het grappige is dat als ik er commentaar op geef, er niets wordt getekend. Als ik het erin laat, wordt de fibo getekend, maar de fibo verschijnt niet in de lijst Objecten voor de kaart. Ik kan nu zonder dat leven, maar het zou leuk zijn om in de toekomst verschillende fibo's handmatig te kunnen verwijderen.
    Quote Originally Posted by ;
    {quote} Hint: U kunt dezelfde objectnaam niet meer dan ��n keer maken(...)
    Aha, dit is de sleutel! Ik heb timecurrent toegevoegd aan de naam fibo (waarschijnlijk niet de meest elegante oplossing), en alles lijkt te werken. Het doet alles wat ik wil, behalve de grafiek in de lijst met objecten laten staan. Ik heb Detach() nodig, maar wat moet ik nog meer doen om het daar te plaatsen? Ik kan hier niets zien:
    https://docs.mql4.com/objects
    https://www.aforexa.com/attachments/...5757347892.mq4

  5. #5

    Quote Originally Posted by ;
    {quote} Het werkte! Ik weet zeker dat de code niet erg elegant is, maar het werkt! Heel erg bedankt voor al je advies. Ik heb alles werkend gekregen zoals ik het wil, behalve 1 ding... Ik kan het maar ��n keer op een grafiek uitvoeren. Wat moet ik doen zodat ik het script elke balk kan noemen, en het blijft een nieuwe fibo toevoegen? Ik vermoed dat het iets te maken heeft met het vernietigen van het object, maar weet het niet zeker? {het dossier}
    Nou, dat hangt allemaal af van hoe je het wilt implementeren... Probeer je de tekeningen op de kaart te laten staan? Probeert u de huidige tekening bij te werken? Wat gebeurt er als je fibo.Detach() aanroept? Heb je een breekpunt ingesteld en door de code in de debugger gestapt? Hint: U kunt dezelfde objectnaam niet meer dan ��n keer maken(...).

  6. #6
    1 Bijlage(n)
    Quote Originally Posted by ;
    {quote} Probeer het en vertel me wat er gebeurt
    Het werkte! Ik weet zeker dat de code niet erg elegant is, maar het werkt! Heel erg bedankt voor al je advies. Ik heb alles werkend gekregen zoals ik het wil, behalve 1 ding... Ik kan het maar ��n keer op een grafiek uitvoeren. Wat moet ik doen zodat ik het script elke balk kan noemen, en het blijft een nieuwe fibo toevoegen? Ik vermoed dat het iets te maken heeft met het vernietigen van het object, maar weet het niet zeker?
    https://www.aforexa.com/attachments/...1574714932.mq4

  7. #7

    Quote Originally Posted by ;
    {quote} Probeer het en vertel me wat er gebeurt
    Ik denk dat zijn probleem 101 compileerfouten en 1 waarschuwing krijgt.

  8. #8

    Quote Originally Posted by ;
    Dit script is geweldig als je een fibo wilt tekenen van de hoogste kaars naar de laagste kaars, wat het gebruikelijke gebruik is van de fibo-tool. Ik wil de fibo alleen over de meest recente kaars plaatsen. Hoe zou ik dit doen alstublieft? Verwijder de for-lus en gebruik iets als High[0] voor prijs?
    Probeer het en vertel me wat er gebeurt

  9. #9
    Dit script is geweldig als je een fibo wilt tekenen van de hoogste kaars naar de laagste kaars, wat het gebruikelijke gebruik is van de fibo-tool. Ik wil de fibo alleen over de meest recente kaars plaatsen. Hoe zou ik dit doen alstublieft? Verwijder de for-lus en gebruik iets als High[0] voor prijs?

  10. #10
    Deze is eigenlijk vrij eenvoudig als je de standaardbibliotheek gebruikt.
    https://www.mql5.com/en/docs/standar...hartobjectfiboCode ingevoegd/ --------------------------------------------- --------------------- /| FiboDraw.mq4 |/| nicholishen |/| www.reddit.com/u/nicholishenFX |/ ----------------------------------------------- ------------------- #property copyright nicholishen #property link www.reddit.com/u/nicholishenFX #property version 1.00 #property strict #include lt;ChartObjects\ChartObjectsFibo .mqhgt;/ ----------------------------------------------- ------------------- /| Script programma start functie |/ ----------------------------------------------- ------------------- void OnStart() {/--- ObjectDelete(0,myFibo);/--- fibo-ankerpunten krijgen van zigzag struct myAnchors { dubbele prijs; datum/tijd; myAnchors()rice(0.0),time(NULL){} } anchors#91;2#93;; int-index = -1; for(int i=0;ilt;Bars(Symbol(),Period());i ) { double val = iCustom(Symbol(),Period(),ZigZag,15,5,3,0,i); if((val != 0.0 || val != EMPTY_VALUE) val gt; 0.0) { if(index gt;=0) { anchors#91;index#93;.price = val; anchors#91;index#93;.time = iTime(Symbool(),Periode(),i); } index ; if(index gt;=2) pauze; } }/--- declareer en maak een object van de fibo-klasse CChartObjectFibo fibo; fibo.Create(0,/chartID myFibo,/chart object name 0,/subwindow anchors#91;1#93;.time,/time 1 anchors#91;1#93;.price,/price 1 ankers#91;0#93;.time,/time 2 ankers#91;0#93;.price/price 2 );/--- nieuwe niveaus instellen omdat we 76.4 willen en geen extensies, anders is deze stap niet nodig dubbele niveaus#91;7#93; = { 0.000, 0.236, 0.382, 0.500, 0.618, 0.764, 1.000} ; fibo.LevelsCount(7); for(int i=0;ilt;ArraySize(levels);i ) { fibo.LevelValue(i,levels#91;i#93; fibo.LevelDescription(i,DoubleToStr(levels#91;i#93 ;*100,1)); }/laat object op de kaart staan ??????nadat het object is vernietigd fibo.Detach(); }/ ---------------------------------------------- --------------------

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.