Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo, ich möchte fragen, ob es möglich ist, diesen Indikator so umzuschreiben, dass er nur die Pfeile anzeigt, und diese bei den Candlesticks auftauchen sollten ? Könnte mir jemand dabei helfen, oder es für mich programmieren, bitte?
Grüße
Langsam
fxmtn-test.mq4Langsam
Versuchen Sie es so
Vielen Dank, dass mladen so schön funktioniert!
Ich versuche, "extern int arrowDistance = XXX;" irgendwie auch aktiviert zu bekommen.
Es taucht jetzt im Auswahlmenü auf, hat aber keine sich ändernde Distanz. Wo kann ich die *arrowDistance einfügen ?
Oder liege ich da völlig falsch ?
Ich habe es an mehreren Stellen eingefügt, aber es hat mir nur mehr Punkte gebracht, nicht mehr Entfernung....
Noob versucht, den Code zu verstehen, und hofft auf etwas Licht
Habe es jetzt so gemacht:
wenn (AboveBuff > 24.0) ShortBuff = High+ (Point*arrowDistance /2);
if (BelowBuff < -24.0) LongBuffe = Low- (Punkt*Pfeilabstand /2);
Ist das der richtige Weg? Nur weil es funktioniert, kann es falsch sein
Habe es nun so gemacht:
wenn (AboveBuff > 24.0) ShortBuff = High+ (Point*arrowDistance /2);
if (BelowBuff < -24.0) LongBuffe = Low- (Punkt*Pfeilabstand /2);
Ist das der richtige Weg? Nur weil es funktioniert, kann es falsch seinDas sollte funktionieren, es gibt aber auch eine andere Möglichkeit, wie man es machen kann
LongBuffe = Niedrig-Pfeildistanz*iATR(NULL,0,20,i) und ShortBuff = Hoch+Pfeildistanz**iATR(NULL,0,20,i)
Langsam,
Besser ist es, den iATR()-Modus zu verwenden. Ändern Sie die Zeitrahmen und Sie werden sehen, was ich meine. Bei höheren Zeitrahmen gibt es ein optisches Problem, wenn der Abstand eines Pfeils vom Hoch oder Tief fixiert ist (sie sehen auf einigen Zeitrahmen unschön aus). Die Verwendung von iATR() anstelle eines festen Abstands löst dieses Problem.
Danke mrtools, mladen funktioniert wirklich viel besser.
Ein letzter Indikator, den ich nicht kontrollieren kann ....
Ich versuche es hier zu ändern: SignalGap = MathCeil(iATR(NULL,0,50,0)/Point);
Ich dachte, das sei die richtige Stelle, da die Änderung von 50 den Abstand ändert. Aber nichts, was ich getestet habe, hat mit arrowDistance funktioniert.
Danke mrtools, mladen funktioniert wirklich viel besser.
Ein letzter Indikator, den ich nicht kontrollieren kann ....
Ich versuche es hier zu ändern: SignalGap = MathCeil(iATR(NULL,0,50,0)/Point);
Dachte, das wäre die richtige Stelle, da eine Änderung der 50 die Entfernung verändert. Aber nichts, was ich getestet habe, hat mit arrowDistance funktioniert.Langsam
Wenn Sie atr für Pfeile Abstand wahrscheinlich der beste Weg, um diesen Abstand zu ändern ist eine Art von Multiplikator. Zum Beispiel :
arrowPrice = High+iATR(NULL,0,50,0)*arrowDistance;
Wobei arrowDistance als Double definiert ist und einen Bruchwert haben kann (man könnte also sowohl Werte wie 0.5 als auch Werte wie 10.5 verwenden). Das Ändern der atr-Periode wird die Entfernung nicht signifikant verändern (es wird nur ein längerer Durchschnitt der Entfernungen in Betracht gezogen)
Versuch, den Wert von einem anderen Indikator zu erhalten
hallo com,
ich versuche, meinen ersten eigenen Indikator zu schreiben und ich möchte auch einen Wert von einem bestehenden Indikator verwenden, den ich von dieser Seite bekommen habe. ich habe einfach den Code von dem Indikator hier kopiert.
Was muss ich in meinem neuen Indikator codieren, um zu wissen, ob der Balken blau/rot oder 1/0 ist, aber ich habe schon viel probiert und bekomme immer nur Null.
ich habe sogar versucht, den ganzen Code in meinen Indikator zu bekommen, was nicht funktioniert hat.
jede Hilfe würde geschätzt werden
thx bob
#property link "fxfariz@gmail.com"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue //Red //Aqua
#property indicator_color2 Red
extern int SSP=7;
extern double Kmax=50.6; //24 21.6 21.6
extern int CountBars=300;
extern int myPeriod = 0 ;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtHBuffer1[];
double ExtHBuffer2[];
int xPeriod ;
//+------------------------------------------------------------------+
string TimeFrameToString(int tf)
{
string tfs;
switch(tf) {
case PERIOD_M1: tfs="M1" ; break;
case PERIOD_M5: tfs="M5" ; break;
case PERIOD_M15: tfs="M15" ; break;
case PERIOD_M30: tfs="M30" ; break;
case PERIOD_H1: tfs="H1" ; break;
case PERIOD_H4: tfs="H4" ; break;
case PERIOD_D1: tfs="D1" ; break;
case PERIOD_W1: tfs="W1" ; break;
case PERIOD_MN1: tfs="MN1";
}
return(tfs);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
SetIndexStyle(0,DRAW_HISTOGRAM,0,4); //Red
SetIndexBuffer(0,ExtHBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,4); //Lime
SetIndexBuffer(1,ExtHBuffer2);
SetIndexBuffer(2,ExtMapBuffer1);
SetIndexBuffer(3,ExtMapBuffer2);
if(myPeriod==0){xPeriod=Period();} {xPeriod=myPeriod;}
string tPeriod = TimeFrameToString(xPeriod) ;
IndicatorShortName(tPeriod + " Trade What You see ("+SSP+")");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
int i, counted_bars=IndicatorCounted();
double SsMax, SsMin, smin, smax;
if(Bars<=SSP+1) return(0);
if(counted_bars<SSP+1)
{
for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;
}
for(i=CountBars-SSP;i>=0;i--) {
SsMax = High;
SsMin = Low[Lowest(NULL,xPeriod,MODE_LOW,SSP,i-SSP+1)];
smax = SsMax-(SsMax-SsMin)*Kmax/100;
ExtMapBuffer1=smax;
ExtMapBuffer2=smax;
}
for(int b=CountBars-SSP;b>=0;b--)
{
if(ExtMapBuffer1>ExtMapBuffer2)
{
ExtHBuffer1=1;
ExtHBuffer2=0;
}
else
{
ExtHBuffer1=0;
ExtHBuffer2=1;
}
}
return(0);
}hallo com,
ich versuche, meinen ersten eigenen Indikator zu schreiben und ich möchte auch einen Wert aus einem bestehenden Indikator verwenden, den ich von dieser Seite bekommen habe. ich habe gerade den Code aus dem Indi hier kopiert.
Was muss ich in meinem neuen Indikator codieren, um zu wissen, ob der Balken blau/rot oder 1/0 ist, aber ich habe schon viel versucht und bekomme immer nur Null.
ich habe sogar versucht, den ganzen Code in meinen Indikator zu bekommen, was nicht funktioniert hat.
jede Hilfe würde geschätzt werden
thx bob
#property link "fxfariz@gmail.com"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue //Red //Aqua
#property indicator_color2 Red
extern int SSP=7;
extern double Kmax=50.6; //24 21.6 21.6
extern int CountBars=300;
extern int myPeriod = 0 ;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtHBuffer1[];
double ExtHBuffer2[];
int xPeriod ;
//+------------------------------------------------------------------+
string TimeFrameToString(int tf)
{
string tfs;
switch(tf) {
case PERIOD_M1: tfs="M1" ; break;
case PERIOD_M5: tfs="M5" ; break;
case PERIOD_M15: tfs="M15" ; break;
case PERIOD_M30: tfs="M30" ; break;
case PERIOD_H1: tfs="H1" ; break;
case PERIOD_H4: tfs="H4" ; break;
case PERIOD_D1: tfs="D1" ; break;
case PERIOD_W1: tfs="W1" ; break;
case PERIOD_MN1: tfs="MN1";
}
return(tfs);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
SetIndexStyle(0,DRAW_HISTOGRAM,0,4); //Red
SetIndexBuffer(0,ExtHBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,0,4); //Lime
SetIndexBuffer(1,ExtHBuffer2);
SetIndexBuffer(2,ExtMapBuffer1);
SetIndexBuffer(3,ExtMapBuffer2);
if(myPeriod==0){xPeriod=Period();} {xPeriod=myPeriod;}
string tPeriod = TimeFrameToString(xPeriod) ;
IndicatorShortName(tPeriod + " Trade What You see ("+SSP+")");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
int i, counted_bars=IndicatorCounted();
double SsMax, SsMin, smin, smax;
if(Bars<=SSP+1) return(0);
if(counted_bars<SSP+1)
{
for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;
}
for(i=CountBars-SSP;i>=0;i--) {
SsMax = High;
SsMin = Low[Lowest(NULL,xPeriod,MODE_LOW,SSP,i-SSP+1)];
smax = SsMax-(SsMax-SsMin)*Kmax/100;
ExtMapBuffer1=smax;
ExtMapBuffer2=smax;
}
for(int b=CountBars-SSP;b>=0;b--)
{
if(ExtMapBuffer1>ExtMapBuffer2)
{
ExtHBuffer1=1;
ExtHBuffer2=0;
}
else
{
ExtHBuffer1=0;
ExtHBuffer2=1;
}
}
return(0);
}BobMorane1000
Sie könnten so etwas tun:
bool redValue = (iCustom(NULL,0,"indicatorNameHere",SSP,Kmax,1,0)!=0);
Aber seien Sie vorsichtig. Dieser Indikator ist eine Variation des Supersignal-Indikators, und der Supersignal-Indikator berechnet neu (repaints)
vielen Dank und für die Warnung^^, ich werde es jetzt versuchen ...