PDA

View Full Version : Zero Crossing MACD na 3 maten



Peimity
17:51,
Ik probeer mijn eerste indior en zou wat hulp van doorgewinterde MQL-codeerders op prijs stellen.

Het onderstaande script is afgeleid van het MACD-voorbeeldscript en aangepast om een ??????pijl OMHOOG te plaatsen wanneer de MACD de ijn heeft overschreden na 3 opeenvolgende balken boven de ijn en eveneens een pijl OMLAAG als de MACD onder de ijn kruist met 3 opeenvolgende balken onder nul.

Ik heb problemen - er verschijnen helemaal geen pijlen.

Als je kunt zien waar ik afdwaal, zou dit een grote hulp zijn.

Bedankt

#property copyright Copyright � 2007, Systrader
#eigendomslink http://www....
//---- binneninstellingen
#property indior_separate_window
#propertyindior_buffers 4
#propertyindior_color1 Aqua
#propertyindior_color2 Rood
#propertyindior_color3 Groen
#propertyindior_color4 Rood
#propertyindior_width1 2
//---- binnenparameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignaalSMA=9;
//---- binnenbuffers
dubbele Macd[];
dubbel Signaal[];
//---- balie
int teller;
// ------------------------------------------------------------ -------------------
//| Aangepaste interne initialisatiefunctie |
// ------------------------------------------------------------ -------------------
int begin()
{
//---- tekeninstellingen
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexPijl(2.233);
SetIndexPijl(3.234);
SetIndexDrawBegin(1,SignalSMA);
IndiorDigits(Cijfers 1);
//---- mapping van binnenbuffers
SetIndexBuffer(0,Macd);
SetIndexBuffer(1,Signaal);
//---- naam voor DataWindow en indior subwindow label
IndiorShortName(MACDZC( FastEMA , SlowEMA , SignalSMA ));
SetIndexLabel(0,MACD);
SetIndexLabel(1,Signaal);
//---- initialisatie voltooid
terug(0);
}
// ------------------------------------------------------------ -------------------
//| Voortschrijdende gemiddelden Convergentie/Divergentie |
// ------------------------------------------------------------ -------------------
int begin()
{
int limiet;
int counted_bars=IndiorCounted();
//---- laatst getelde balk wordt opnieuw geteld
if(counted_barsgt;0) counted_bars--;
limit=Bars-counted_bars;
//---- macd geteld in de 1e buffer
for(int i=0; ilt;limit; i )
Macd[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signaallijn geteld in de 2e buffer
for(i=0; ilt;limit; i )
Signaal[i]=iMAOnArray(Macd,Bars,SignalSMA,0,MODE_SMA,i);

//---- Tel of 3-bars macd boven of onder nul zijn
teller=0;

//begin bij de 3e balk om controle van de 3 balkjes ervoor mogelijk te maken
for(int j=3; jlt;limiet; j )
{
als (Macd[j] lt; 0) counter--;
als (Macd[j] gt; 0) counter ;
}
//tel als er 3 balken boven de ijn zijn gezien
als (tegen gt; 2) {
SetIndexStyle(2,DRAW_ARROW);
ObjectCreate(UpAlert, OBJ_ARROW, 0, High[j],0);
ObjectSet(UpAlert, OBJPROP_ARROWCODE, 74);
}
//tel als er 3 balken onder de ijn zijn gezien
als (tegen lt; -2)
{
SetIndexStyle(3,DRAW_ARROW);
ObjectCreate(DnAlert, OBJ_ARROW, 0, Low[j],0);
ObjectSet(DnAlert, OBJPROP_ARROWCODE, 74);
}

//---- gedaan
terug(0);
}
// ------------------------------------------------------------ -------------------

FerminMoya
08:40,
2 Bijlage(n) Hallo, David, ik heb geen kennis van MT4-programmering. Ik heb een beetje gewijzigd volgens je code macdzc naar macdzc_1, betekent nuldoorgang MACD na 1 bar. Zou je kunnen nakijken of het wel of niet klopt? Bedankt voor je geweldige hulp. Verder zou ik graag uw vriendelijke hulp willen vragen om deze indior-weergave op de hoofdkaart bij te werken, wat betekent dat alleen pijlen omhoog en omlaag op de hoofdkaart worden weergegeven als de MACD na 1 balk de nul passeert, zoals als MACD-kruising op de hoofdkaart ik plak MACD Cross .mq4 Ik ben een Chinees, slecht Engels. Neem bij elk misverstand altijd contact met mij op. Alvast heel erg bedankt. Beste wensen Thomas Chen Nov11,2011
https://www.aforexa.com/attachments/152919415337090737.mq4
https://www.aforexa.com/attachments/1529194154340169428.mq4

FerminMoya
10:00,
Hallo, Hanover, het is een geweldige inwoner van MACDZC. Heel erg bedankt! zou je deze MACDZC kunnen updaten zoals hieronder: om een ??????pijl OMHOOG te plaatsen wanneer de MACD de ijn is gepasseerd na 1 opeenvolgende streepjes boven de ijn en evenzo een pijl OMLAAG als de MACD onder de ijn kruist met 1 opeenvolgende streepjes onder nul. Het is beter om keuze te hebben, betekent dat 0,1 of 2 streepjes de ijn kruisen en dan een pijl etc. tonen. Bij voorbaat hartelijk dank. BR, Thomas C

Hallo Systrader. Wat ik denk dat je hebt gedaan, is binnenshuis en objecten door elkaar halen. Als je de pijlen als indiors gaat plotten, moet je buffers defini�ren - zie de coderegels die ik in de onderstaande bijlage heb toegevoegd om dit te bereiken (zoek naar de ???//-- toegevoegde??? opmerkingen). Zodra een array is gekoppeld aan een buffer (door 'SetIndexBuffer'), worden de waarden in de grafiek weergegeven door simpelweg de array te vullen. De ArrayInitialize zorgt ervoor dat de arrays beginnen met EMPTY_VALUEs, wat betekent dat er geen pijl zal worden geplot voor elke dergelijke balk....

Hallo Systrader. Wat ik denk dat je hebt gedaan, is binnenshuis en objecten door elkaar halen. Als je de pijlen als indiors gaat plotten, moet je buffers defini�ren - zie de coderegels die ik in de onderstaande bijlage heb toegevoegd om dit te bereiken (zoek naar de ???//-- toegevoegde??? opmerkingen). Zodra een array is gekoppeld aan een buffer (door 'SetIndexBuffer'), worden de waarden in de grafiek weergegeven door simpelweg de array te vullen. De ArrayInitialize zorgt ervoor dat de arrays beginnen met EMPTY_VALUEs, wat betekent dat er geen pijl zal worden geplot voor elke dergelijke balk....

Mobydick82
11:21,
2 Bijlage(n) Hallo Systrader Wat ik denk dat je hebt gedaan is het verwarren van binnen en objecten. Als je de pijlen als indiors gaat plotten, moet je buffers defini�ren - zie de coderegels die ik in de onderstaande bijlage heb toegevoegd om dit te bereiken (zoek naar de ???//-- toegevoegde??? opmerkingen). Zodra een array is gekoppeld aan een buffer (door 'SetIndexBuffer'), worden de waarden in de grafiek weergegeven door simpelweg de array te vullen. De ArrayInitialize zorgt ervoor dat de arrays beginnen met EMPTY_VALUEs, wat betekent dat er geen pijl wordt geplot voor elke dergelijke balk. Ik nam aan dat je de pijlen als indiors wilde uitzetten, omdat je ???#property indior_buffers 4??? instelde, vermoedelijk om ze te accommoderen. Zoals ik het heb gedaan, worden de pijlen geplot in het MACD-venster, vanwege de instructie ???#property indior_separate_window???. Als u ze in het prijsvenster wilt plotten, moet u een aparte indior maken met ???#property indior_chart_window???. Er is misschien een andere manier om dit te doen: ik ben geen ervaren MQL4-programmeur. Als u de pijlen als objecten wilt maken in plaats van als interieurs, moet u objecten met unieke namen maken. Kijk naar de ObjectCreate-, ObjectSet- en ObjectSetText-statements in mijn Plot_News-indior om een ??????idee te krijgen. Hoe dan ook, ik hoop dat dit je op weg helpt. Veel succes Davy
https://www.aforexa.com/attachments/1529194150172472180.mq4
https://www.aforexa.com/attachments/1529194151727834694.mq4

Peimity
12:42,
Hallo David, Wow .. dit was een snel antwoord en bedankt, het werkt geweldig .. precies zoals ik wilde. Je hebt gelijk .. Ik heb wat verwarring met objecten, maar niets dat oefening niet zal genezen. Hartelijk dank Nat

FerminMoya
14:03,
Hallo, David Kun je een pop-upwaarschuwing toevoegen voor macdzc_1, die de prijs en tijd laat zien wanneer de MACD-lijn de ijn overschrijdt? Werk indien mogelijk bij naar MTF-versie
https://www.aforexa.com/attachments/1529194147.pngHeel erg bedankt in anvancd. Beste wensen Thomas C 11 oktober 2011