Hilfe bei der Codierung - Seite 197

 
mladen:
Sie können es hinzufügen, um diese zusätzlichen Linien noch einmal zu zeichnen - wie dies:
if (add>0) { drawLine(totalLevels,current+diff+add,addLinesColor,addLinesStyle); drawLine(totalLevels,current+diff-add ,addLinesColor,addLinesStyle); }
und es wird diese zusätzlichen Linien um alle "grundlegenden" Linien zeichnen

Nochmals vielen Dank an mladen

 

Brauche Hilfe bei der Programmierung eines Alerts

Hallo, ich bin neu in der ganzen mql4 Programmierung.

Ich möchte einen neuen "all in one" Alarm erstellen.

Ich habe Fx MNT, Super Signal und CHT Value Chart mit Alarmsignalen.

Jetzt möchte ich nur einen Alarm haben, wenn MNT, Super Signal, Value Chart & RSI an der richtigen Stelle sind.

Wie kann ich das codieren? Kann ich die Alarmteile aus dem bestehenden Code verwenden und sie alle in einen großen Code packen?

Mit freundlichen Grüßen Slow

 
Slow Moe:
Hallo, ich bin neu in der ganzen mql4 Programmierung.

Ich möchte einen neuen "All-in-One"-Alarm erstellen.

Ich habe Fx MNT, Super Signal und CHT Value Chart mit Alarmsignalen.

Jetzt möchte ich nur einen Alarm haben, wenn MNT, Super Signal, Value Chart & RSI an der richtigen Stelle sind.

Wie kann ich das codieren? Kann ich die Alarmteile aus dem bestehenden Programm verwenden und sie alle in einen großen Code einfügen?

Mit freundlichen Grüßen Slow

Langsam

Sie können das tun, aber der Code, der für das Abrufen von Daten von all diesen Indikatoren "verantwortlich" wäre, wäre nicht einfach (besonders der Teil mit den Parametern, wo Sie externe Parameter für alle Indikatoren deklarieren müssten, die aufgerufen würden, um herauszufinden, ob ein Alarm ausgelöst werden sollte oder nicht).

 

aufeinanderfolgende höhere/tiefere Schließungen

Die angehängte Datei enthält eine Reihe von Bedingungen, die durch Auswahl von true/false einbezogen werden können.

Ich würde gerne eine weitere Bedingung als true/false einbeziehen: Gibt es

2 aufeinanderfolgende höhere Schlusskurse für Long-Positionen?

Wenn dies der Fall ist, wird, wenn die anderen Bedingungen, die durch true aktiviert werden, erfüllt sind, ein Aufwärtspfeil erzeugt.

2 aufeinanderfolgende niedrigere Schlusskurse für Shorts?

Wenn ja, dann wird, wenn die anderen Bedingungen, die durch true aktiviert werden, erfüllt sind, ein Abwärtspfeil erzeugt.

Könnte die Anzahl der Schließungen eine Variable sein?

Könnte jemand diese zusätzliche Bedingung in den Stoch_Indy-Indikator kodieren? Ich danke Ihnen.

Dateien:
 
person77:
Die angehängte Datei enthält eine Reihe von Bedingungen, die durch Auswahl von true/false einbezogen werden können.

Ich möchte eine weitere Bedingung als wahr/falsch einbeziehen: Gibt es

2 aufeinanderfolgende höhere Schlusskurse für Long-Positionen?

Wenn dies der Fall ist und die anderen Bedingungen, die durch true aktiviert werden, erfüllt sind, wird ein Aufwärtspfeil erzeugt.

2 aufeinanderfolgende niedrigere Schlusskurse für Shorts?

Wenn ja, dann wird, wenn die anderen Bedingungen, die durch true aktiviert werden, erfüllt sind, ein Abwärtspfeil erzeugt.

Könnte die Anzahl der Schließungen eine Variable sein?

Könnte jemand diese zusätzliche Bedingung in den Stoch_Indy-Indikator kodieren? Ich danke Ihnen.

Person77

Probieren Sie dies aus

Option UseConsecutiveCloseBars für diesen Zweck hinzugefügt. Es wird nicht nur ein Schlusskurs getestet, sondern der Schlusskurs muss größer als der Eröffnungskurs sein, damit es sich um einen fortlaufenden Aufwärtstrend handelt, oder er muss kleiner als der Eröffnungskurs sein, damit es sich um einen fortlaufenden Abwärtstrend handelt.

Dateien:
 
mladen:
Person77

Probieren Sie dies aus

Option UseConsecutiveCloseBars für diesen Zweck hinzugefügt. Es wird nicht nur ein Schlusskurs getestet, sondern ein Schlusskurs muss größer als der Eröffnungswert sein, damit es sich um einen fortlaufenden Aufwärtstrend handelt, oder er muss kleiner als der Eröffnungswert sein, damit es sich um einen fortlaufenden Abwärtstrend handelt.

Sehr schön mladen - funktioniert sehr gut. Vielen Dank dafür!

In den wenigen Fällen, auf die ich gestoßen bin, ist es im Großen und Ganzen vorteilhaft, wenn C = O erlaubt ist.

Könnten Sie es so ändern, dass es erlaubt ist, oder, noch besser, eine Option anbieten, ob C = O erlaubt ist oder nicht?

Dateien:
 
person77:

Sehr schöne mladen - funktioniert sehr gut. Vielen Dank dafür!

In den wenigen Fällen, auf die ich gestoßen bin, ist es im Großen und Ganzen vorteilhaft, C = O zuzulassen.

Könnten Sie die Option so ändern, dass sie dies zulässt, oder besser noch, eine Option einrichten, die angibt, ob C = O zulässig ist oder nicht?

Person77

Eine weitere Option hinzugefügt: AllowCloseEqualOpen. also kann man es jetzt mit dieser Option steuern

Dateien:
 

Hallo Leute,

Ich habe eine Frage zum Coding

Ist es möglich, den gleitenden Durchschnitt in einem allgemeinen Diagramm mit diesen Einstellungen zu zeichnen?

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

 
cain82:
Hallo Leute,

Ich habe eine Frage zur Kodierung

Ist es möglich, den gleitenden Durchschnitt in einem allgemeinen Diagramm mit diesen Einstellungen zu zeichnen?

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

Das, was Sie geschrieben haben (dFactor und mFactor), ergibt einen konstanten Wert, unabhängig vom Preis und der Balkenanzahl, so dass Sie eine horizontale Linie im Chart haben.

 
mladen:
Was Sie geschrieben haben (die dFactor und mFactor) alle bewertet zu einem konstanten Wert unabhängig von den Preis und bar Nummer, so dass Sie eine horizontale Linie auf dem Chart haben würde

Danke für die Antwort!

Aber wie kann ich einen Winkel Linien der MA auf dem allgemeinen Diagramm wie in diesem indi Hystogramm-Code zu erhalten?

//---- indicator settings

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 LimeGreen

#property indicator_color2 FireBrick

#property indicator_color3 Yellow

#property indicator_width1 2

#property indicator_width2 2

#property indicator_width3 2

//---- indicator parameters

extern int TimeFrame = 60;

extern int MAMode = 0;

extern int MAPeriod = 50;

extern int Price = 4;

extern double AngleTreshold = 0.25;

extern int StartMAShift = 2;

extern int EndMAShift = 0;

extern int MaxBars = 500;

string TF1;

//---- indicator buffers

double UpBuffer[];

double DownBuffer[];

double ZeroBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- 2 additional buffers are used for counting.

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );

//---- 3 indicator buffers mapping

if(!SetIndexBuffer(0,UpBuffer) &&

!SetIndexBuffer(1,DownBuffer) &&

!SetIndexBuffer(2,ZeroBuffer))

Print("cannot set indicator buffers!");

SetIndexLabel(0,"");

SetIndexLabel(1,"");

SetIndexLabel(2,"");

switch(TimeFrame)

{

case 1: TF1="M1"; break;

case 5: TF1="M5"; break;

case 15: TF1="M15"; break;

case 30: TF1="M30"; break;

case 60: TF1="H1"; break;

case 240: TF1="H4"; break;

case 1440: TF1="D1"; break;

case 10080: TF1="W1"; break;

case 43200: TF1="MN1"; break;

default: {TimeFrame = Period(); init(); return(0);}

}

IndicatorShortName("MAAngle MTF * "+TF1+" *");

//---- initialization done

return(0);

}

//+------------------------------------------------------------------+

//| The angle for EMA |

//+------------------------------------------------------------------+

int start()

{

double fEndMA, fStartMA;

double fAngle, mFactor, dFactor;

int nLimit, i;

int nCountedBars;

double angle;

int ShiftDif;

string Sym;

if (MAMode >= 4) MAMode = 0;

if(EndMAShift >= StartMAShift)

{

Print("Error: EndMAShift >= StartMAShift");

StartMAShift = 6;

EndMAShift = 0;

}

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

Sym = StringSubstr(Symbol(),3,3);

if (Sym == "JPY") mFactor = 100.0;

ShiftDif = StartMAShift-EndMAShift;

mFactor /= ShiftDif;

//---- check for possible errors

if(nCountedBars<0) return(-1);

//---- last counted bar will be recounted

if(nCountedBars>0) nCountedBars--;

nLimit=Bars-nCountedBars;

nLimit=MathMax(nLimit,TimeFrame/Period());

nLimit=MathMin(nLimit,MaxBars );

//---- main loop

for(i=0; i<nLimit; i++)

{

int y = iBarShift(NULL,TimeFrame,Time);

if (TimeFrame<Period()) TimeFrame=Period();

fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);

fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);

// 10000.0 : Multiply by 10000 so that the fAngle is not too small

// for the indicator Window.

fAngle = mFactor * (fEndMA - fStartMA)/2.0;

//fAngle = MathArctan(fAngle)/dFactor;

DownBuffer = 0.0;

UpBuffer = 0.0;

ZeroBuffer = 0.0;

if(fAngle > AngleTreshold)

UpBuffer = fAngle;

else if (fAngle < -AngleTreshold)

DownBuffer = fAngle;

else ZeroBuffer = fAngle;

}

return(0);

}

//+------------------------------------------------------------------+

Grund der Beschwerde: