Hilfe bei der Codierung - Seite 288

 

Hallo,

Zunächst eine Entschuldigung, wenn dies an der falschen Stelle ist, seine ein Pivot indi ich bin auf, aber meine Q ist in Bezug auf die Codierung, ich könnte es in MTF als auch gesetzt haben, aber ich dachte, dies war der beste Ort, um zu beginnen.

In MT4 haben wir täglich, wöchentlich, monatlich = W1, D1, MN1

aber gibt es eine Jahresfunktion oder eine Quartalsfunktion.

So zum Beispiel in der beigefügten Pivot-Indikator, wie Sie 1 Jahr zu bekommen, und ist es (oder können Sie wählen) eine rollende 12 Monate oder eine feste Vorjahr 2013 Beispiel. Und wie bekomme ich es hin, vierteljährliche Pivots zu berechnen.

Ich bin einigermaßen zuversichtlich, dass ich die beigefügte Tabelle ändern kann, aber ich weiß nicht, wie ich die Daten in die Tabelle bekomme, damit sie Quartale oder Jahre ausgibt.

allpivots_monthly.mq4

Vielen Dank!

Kevin

Dateien:
 
mladen:
Sie haben ihn geändert, um "#pollan indy" zu verwenden. Ich habe keine Ahnung, was dieser Indikator macht (wenn er wie die anderen "pollan"-Indikatoren ist, dann malt er sich neu und das kann Ihre Probleme verursachen, aber ich mache jetzt nur ein Ratespiel)

Sehr geehrter Herr MLADEN...

Könnten Sie diesen (#pollan indy) durch einen anderen Indikator ersetzen, den Sie haben... vielleicht #VQ bars.... BITTE probieren Sie es aus.... denn ich habe einen Messwert auf dem Indikatorpuffer als angehängtes Bild... aber ich konnte nicht über iCustom in meinem EA aufrufen, um diesen "#pollan indy" weiter zu testen...

Hoffe, bald wieder von Ihnen zu hören... DANKE

Mit freundlichen Grüßen

AZRUL

Dateien:
my_vq.jpg  48 kb
 
12BPRO:
Sehr geehrter Herr MLADEN...

Könnten Sie ersetzen diese (#pollan indy) mit einem anderen Indikator, die Sie haben... kann Aufruf #VQ Bars.... sein BITTE probieren Sie es aus.... denn ich habe einen Messwert auf dem Indikatorpuffer als beigefügtes Bild... aber ich konnte nicht über iCustom in meinem EA aufrufen, um diesen "#pollan indy" weiter zu testen...

Hoffe, bald wieder von Ihnen zu hören... DANKE

Mit freundlichen Grüßen

AZRUL

Es besteht keine Notwendigkeit, #VQ durch #VQ zu ersetzen (es wird bereits die Volatilitätsqualität berechnet)

Wenn es mit dem regulären #VQ so funktioniert, wie es sollte, ist die einzige logische Schlussfolgerung, dass mit "#pollan indy" etwas nicht stimmt

 

Hilfe bei der Codierung

Guten Morgen an alle

Hallo mladen

Ich versuche, meine ersten Codes zu erstellen.

Von anderen Codes lernen, da es kein Handbuch MT4 in meiner Sprache gibt.

Ich bete nicht lachen über meinen Code.

Bitte können Sie mir helfen, es funktioniert.

Es ist ein einfacher Indikator, der die Schaffung eines Doji markiert.

Ich bitte um Ihre Hilfe.

Ich danke Ihnen sehr im Voraus.

Mit freundlichen Grüßen.

Hermo.

PD. Kompiliert gut, funktioniert aber nicht.

Dateien:
 
Hermo:
Guten Morgen an alle

Hallo mladen

Ich versuche, meine ersten Codes zu erstellen.

Lerne von anderen Codes, da es kein Handbuch MT4 in meiner Sprache gibt.

Ich bete nicht lachen über meinen Code.

Bitte können Sie mir helfen, es funktioniert.

Es ist ein einfacher Indikator, der die Bildung eines Doji markiert.

Ich bitte um Ihre Hilfe.

Ich danke Ihnen im Voraus sehr viel.

Mit freundlichen Grüßen.

Hermo.

PD. Kompiliert gut, funktioniert aber nicht.

Hermo

Werde es überprüfen

Ich warte jetzt auf die Pressekonferenz der EZB :):)

 
12BPRO:
Sehr geehrter Herr MLADEN...

Das ist, warum in erster Linie habe ich nicht meine #VQ.... können Sie Recht haben, es ist etwas falsch über die "pollan indy" und JA es repaint....

Für mich, ich möchte nur versuchen, meine Theorie, mit diesem Indikator nur um zu sehen, was ist das Ergebnis....

Die Sache ist die, dass ich den Indikatorpuffer in meinem EA nicht aufrufen konnte... vielleicht liegt es an der modifizierten Version meines #VQ, die den iCustom-Aufruf in meinem EA blockiert....

Mit der originalen #VQ funktioniert es einwandfrei... und ich konnte meinen EA.... ausführen, aber mit der geänderten #VQ (meiner), konnte ich nicht überschreiten, aber es gibt immer noch einen Wert wie im vorherigen Thread gezeigt...

Ich denke, das Problem ist mit meinem MODIFIED #VQ Version.... kann so Syntaxfehler sein... BITTE, wenn Sie Zeit haben, werfen Sie einen Blick darauf und sehen Sie, ob es so funktioniert, wie es sollte.....

DANKE... und entschuldigen Sie den negativen Input.....

Mit freundlichen Grüßen...

AZRUL

AZRUL

Ich kann einfach nicht wissen, was mit Ihrem "pollan indy" passiert, ohne den Code zu sehen.

Ich kann nur raten, und raten ist bei der Programmierung sehr, sehr schlecht.

Alles Gute

 
mladen:
Es besteht keine Notwendigkeit, #VQ durch #VQ zu ersetzen (es berechnet bereits die Volatilitätsqualität). Wenn es mit dem regulären #VQ so funktioniert, wie es sollte, ist die einzige logische Schlussfolgerung, dass mit "#pollan indy" etwas nicht stimmt

Sehr geehrter Herr MLADEN...

Das ist der Grund, warum ich nicht in erster Linie meine #VQ.... vielleicht haben Sie Recht, es ist etwas falsch über die "pollan indy" und JA es repaint....

Für mich, ich möchte nur versuchen, meine Theorie, mit diesem Indikator nur um zu sehen, was ist das Ergebnis....

Das Problem ist, dass ich den Indikatorpuffer in meinem EA nicht aufrufen konnte... vielleicht liegt es an der modifizierten Version meiner #VQ, die den iCustom-Aufruf in meinem EA blockiert....

Mit der originalen #VQ funktioniert es einwandfrei... und ich konnte meinen EA.... ausführen, aber mit der geänderten #VQ (meiner), konnte ich nicht überschreiten, aber es gibt immer noch einen Wert wie im vorherigen Thread gezeigt...

Ich denke, das Problem ist mit meiner MODIFIZIERTEN #VQ Version.... kann ein Syntaxfehler sein... BITTE, wenn Sie Zeit haben, werfen Sie einen Blick darauf und sehen Sie nach, ob es so funktioniert, wie es sollte..... nur für die LERNZWECKE....

DANKE... ICH HABE DAS EA JETZT ZUM LAUFEN GEBRACHT UND TESTE ES, WENN SIE DARAN INTERESSIERT SIND, DAS ERGEBNIS HERAUSZUFINDEN, WERDE ICH ES IM POLLAN-THREAD POSTEN.....

Mit freundlichen Grüßen...

AZRUL

 
mladen:
AZRUL

Ich kann einfach nicht wissen, was mit Ihrem "pollan indy" passiert, ohne den Code zu sehen.

Alles, was ich tun kann, ist zu raten, und raten in der Codierung ist sehr, sehr schlecht

alles Gute

ICH HABE DIESE EA JETZT LAUFEN UND TESTEN, WENN SIE DARAN INTERESSIERT SIND, DAS ERGEBNIS HERAUSZUFINDEN, WERDE ICH ES IN DER POLLAN THREAD..... POSTEN

ES WAR MEINE VERSION DES #VQ, DIE NICHT FUNKTIONIERT HAT...

DANKE...

mit freundlichen Grüßen...

AZRUL

 

Hallo CODESGURUS,

Ich habe eine allgemeine Frage zu Multi-Time-Frame.... als Anhang

das erste Bild auf der linken Seite ist ein RSI-Indikator auf einem 5M-Zeitrahmen...

Auf der zweiten ist der RSI Multi Time Frame des 5M auf dem 15M Timeframe...

Die Frage ist, warum gibt es einen Unterschied in den Wert, wie in der ROTEN Kreis angezeigt....

Kann jemand BITTE erklären und berichtigen Sie diese RsiMA-MTF-Codes........

#property indicator_separate_window

#Eigenschaft indicator_buffers 6

#Eigenschaft indicator_color1 Lime

#Eigenschaft indicator_color2 Rot

#Eigenschaft indicator_color3 Aqua

#Eigenschaftsanzeige_Farbe4 Gelb

#Eigenschaft indicator_color5 Weiß

#Eigenschaft indicator_color6 Magenta

#Eigenschaft indicator_width1 1

#Eigenschaft indicator_width2 1

#Eigenschaft indicator_width3 1

#Eigenschaft indicator_width4 1

#Eigenschaft indicator_width5 1

#Eigenschaft indicator_width6 1

//-------------------------------------

//-----

//externer String TimeFrames = "M15; M60";

extern bool TimeFrame1bool = true;

extern int TimeFrame1 = 0;

extern bool TimeFrame2bool = False;

extern int TimeFrame2 = 0;

extern bool TimeFrame3bool = False;

extern int TimeFrame3 = 0;

//int period[]={1,5,15,30,60,240,1440,43200};

//string periodString[]={"M1","M5","M15","M30","H1","H4","D1",MN1"};

// ein weiteres Array mit Indikatornamen erstellen

//string signalNameString[]={"MA"};

int ExtCountedBars=0;

//---------------------

int TF;

//---- Puffer

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

double ExtMapBuffer4[];

double ExtMapBuffer5[];

double ExtMapBuffer6[];

//-------

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

int init()

{

SetIndexPuffer(0, ExtMapPuffer1);

SetIndexPuffer(1, ExtMapPuffer2);

SetIndexBuffer(2, ExtMapBuffer3);

SetIndexBuffer(3, ExtMapBuffer4);

SetIndexBuffer(4, ExtMapBuffer5);

SetIndexPuffer(5, ExtMapPuffer6);

//-----

SetIndexStyle(0, DRAW_LINE);

SetIndexStyle(1, DRAW_LINE);

SetIndexStyle(2, DRAW_LINE);

SetIndexStyle(3, DRAW_LINE);

SetIndexStyle(4, DRAW_LINE);

SetIndexStyle(5, DRAW_LINE);

// SetIndexStyle(0,DRAW_LINE,EMPTY,1);

// SetIndexPuffer(0,ExtMapPuffer1);

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

int M1 = PERIOD_M1;

int M5 = PERIOD_M5;

int M15 = PERIOD_M15;

int M30 = PERIOD_M30;

int H1 = PERIOD_H1;

int H4 = PERIOD_H4;

int D1 = PERIOD_D1;

int WK1 = PERIOD_W1;

int MN1 = PERIOD_M1;

TF=Periode();

if (TF==PERIOD_M1) { TimeFrame1 = M1; TimeFrame2 = M1; TimeFrame3 = M1;}

else if (TF==PERIOD_M5) { TimeFrame1 = M1; TimeFrame2 = M5; TimeFrame3 = M15;}

sonst if (TF==PERIOD_M15) { TimeFrame1 = M5; TimeFrame2 = M15; TimeFrame3 = H1; }

sonst if (TF==PERIOD_M30) { TimeFrame1 = M5; TimeFrame2 = M15; TimeFrame3 = H1; }

sonst if (TF==PERIOD_H1) { TimeFrame1 = M15; TimeFrame2 = H1; TimeFrame3 = H4; }

sonst if (TF==PERIOD_H4) { TimeFrame1 = H4; TimeFrame2 = H4; TimeFrame3 = D1; }

sonst if (TF==PERIOD_D1) { TimeFrame1 = H4; TimeFrame2 = D1; TimeFrame3 = WK1;}

sonst if (TF==PERIOD_W1) { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}

sonst if (TF==PERIOD_MN1) { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}

sonst { TimeFrame1 = D1; TimeFrame2 = WK1; TimeFrame3 = MN1;}

//-----

return(0);

}

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

int start()

{

datetime TimeArray1[];

datetime TimeArray2[];

datetime TimeArray3[];

int limit, i,y=0;

// int counted_bars = IndicatorCounted();

ExtCountedBars=IndicatorCounted();

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

if(ExtCountedBars > 0) ExtCountedBars--;

Grenze = Bars - ExtCountedBars;

//-----

ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),TimeFrame1);

ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),TimeFrame2);

ArrayCopySeries(TimeArray3,MODE_TIME,Symbol(),TimeFrame3);

for(i=0,y=0;i<limit;i++)

{

if(TimeFrame1bool)

{

if (Time<TimeArray1[y]) y++;

{

//ExtMapBuffer1

ExtMapBuffer1 = iCustom(NULL,TimeFrame1 , "#RSI-MA",0, y);

ExtMapBuffer2 = iCustom(NULL,TimeFrame1 , "#RSI-MA",3, y);

}

}

//-----

if(TimeFrame2bool)

{

if(Zeit<TimeArray2[y]) y++;

{

//ExtMapBuffer1

ExtMapBuffer3 = iCustom(NULL,TimeFrame2 , "#RSI-MA",0,y);

ExtMapBuffer4 = iCustom(NULL,TimeFrame2 , "#RSI-MA",3,y);

}

}

//-----

if(TimeFrame3bool)

{

if(Zeit<TimeArray3[y]) y++;

{

//ExtMapBuffer1

ExtMapBuffer5 = iCustom(NULL,TimeFrame3 , "#RSI-MA",0, y);

ExtMapBuffer6 = iCustom(NULL,TimeFrame3 , "#RSI-MA",3, y);

}

}

}

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

//=======================================================

return(0);

}

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

int deinit()

{

return(0);

}

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

Dateien:
rsi-mtf_diff.jpg  290 kb
 

DIES IST EINE KOPIE DES RSI-MA........

#property indicator_separate_window

#property indicator_buffers 4

#Eigenschaft indicator_color1 LimeGreen

#property indicator_color2 Rot

#eigenschaft indicator_color3 Gelb

#Eigenschaft indicator_color4 Weiß ///DarkGray

#Eigenschaft indicator_width1 3

#Eigenschaft indicator_width2 3

#Eigenschaft indicator_width3 3

#eigenschaft indicator_width4 1

#Eigenschaft indicator_levelcolor Aqua

extern string TimeFrame = "Aktueller Zeitrahmen";

extern int RsiOma_Periode = 13;

extern int RsiOma_Price = 0;

extern int RsiOma_Mode = MODE_LWMA;

extern int MaPeriod = 8;

extern int MaType = MODE_LWMA;

extern double levelOb = 88;

extern double levelOs = 13;

extern int OB_RSI = 80;

extern int OS_RSI = 15;

extern string note = "turn on Alert = true; turn off = false";

extern bool alertsOn = true; ///false;

extern bool alertsOnCurrent = true;

extern bool alertsMessage = true;

extern bool alertsSound = true; ///false;

extern bool alertsEmail = false;

extern string soundfile = "connect.wav"; ///"alert2.wav";

externer string SoundUp = "ok.wav";

externer string SoundDown = "stops.wav";

double rsi[];

double rsida[];

double rsidb[];

double ma[];

double mab[];

double trend[];

double slope[];

string indicatorFileName;

int Char, timeFrame;

bool returnBars;

bool calculateValue;

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

int init()

{

IndicatorBuffers(7);

SetIndexPuffer(0,rsi);

SetIndexPuffer(1,rsida);

SetIndexBuffer(2,rsidb);

SetIndexBuffer(3,ma);

SetIndexBuffer(4,mab);

SetIndexBuffer(5,trend);

SetIndexBuffer(6,slope);

SetLevelValue(0,levelOs);

SetLevelValue(1,levelOb);

indicatorFileName = WindowExpertName();

calculateValue = (TimeFrame=="calculateValue"); if (calculateValue) return(0);

returnBars = (TimeFrame=="returnBars"); if (returnBars) return(0);

timeFrame = stringToTimeFrame(TimeFrame);

IndicatorShortName(timeFrameToString(timeFrame)+" Rsi-Ma MaxMin ("+RsiOma_Period+", "+MaPeriod+")");

SetIndexLabel(0, "RSI");

SetIndexLabel(1, "RSIDA");

SetIndexLabel(2, "RSIDB");

SetIndexLabel(3, "MA");

return(0);

}

int deinit() { return(0); }

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

int start()

{

int gezählte_Balken=IndicatorCounted();

int i,limit;

if(gezählte_Balken<0) return(-1);

if(gezählte_Balken>0) gezählte_Balken--;

Grenze = MathMin(Balken-gezählte_Balken,Balken-1);

if (returnBars) { rsi[0] = limit+1; return(0); }

if (calculateValue || timeFrame==Period())

{

if (slope[limit] == -1) ClearPoint(limit,rsida,rsidb);

for (i=limit; i >= 0; i--) mab = iMA(NULL,0,RsiOma_Period,0,RsiOma_Mode,RsiOma_Price,i);

for (i=limit; i >= 0; i--) rsi = iRSIOnArray(mab,0,RsiOma_Period,i);

for (i=limit; i >= 0; i--)

{

ma = iMAOnArray(rsi,0,MaPeriod,0,MaType,i);

rsida = EMPTY_VALUE;

rsidb = EMPTY_VALUE;

slope = Steigung;

trend = trend;

if ((rsi > rsi) && (rsi > OB_RSI))

slope= 1;

wenn ((rsi < rsi) && (rsi < OS_RSI))

slope=-1;

wenn ((rsi > ma) && (rsi > OB_RSI))

trend= 1;

wenn ((rsi < ma) && (rsi < OS_RSI))

trend=-1;

wenn (Steigung == -1)

PlotPoint(i,rsida,rsidb,rsi);

}

manageAlerts();

return(0);

}

limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName, "returnBars",0,0)*timeFrame/Period()));

if (slope[limit]==-1) ClearPoint(limit,rsida,rsidb);

for (i=limit;i>=0; i--)

{

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

rsi = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,0,y);

rsida = EMPTY_VALUE;

rsidb = EMPTY_VALUE;

ma = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,3,y);

trend = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,5,y);

slope = iCustom(NULL,timeFrame,indicatorFileName, "calculateValue",RsiOma_Period,RsiOma_Price,RsiOma_Mode,MaPeriod,MaType,6,y);

}

for (i=limit;i>=0;i--) if (slope==-1) PlotPoint(i,rsida,rsidb,rsi);

manageAlerts();

return(0);

}

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

string sTfTable[] = {"M1", "M5", "M15", "M30", "H1", "H4", "D1", "W1", "MN"};

int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};

int stringToTimeFrame(string tfs)

{

tfs = stringUpperCase(tfs);

for (int i=ArraySize(iTfTable)-1; i>=0; i--)

if (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable,Period()));

return(Zeitraum());

}

string timeFrameToString(int tf)

{

for (int i=ArraySize(iTfTable)-1; i>=0; i--)

if (tf==iTfTable) return(sTfTable);

return("");

}

string stringUpperCase(string str)

{

string s = str;

for (int length=StringLen(str)-1; length>=0; length--)

{

Char = StringGetChar(s, length);

if((Char > 96 && Char 223 && Char < 256))

s = StringSetChar(s, length, Char - 32);

sonst if(Zeichen > -33 && Zeichen < 0)

s = StringSetChar(s, Länge, Char + 224);

}

return(s);

}

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

void ClearPoint(int i,double& first[],double& second[])

{

if ((second != EMPTY_VALUE) && (second != EMPTY_VALUE))

second = EMPTY_VALUE;

sonst

if ((first != EMPTY_VALUE) && (first != EMPTY_VALUE) && (first == EMPTY_VALUE))

first = EMPTY_VALUE;

}

void PlotPoint(int i,double& first[],double& second[],double& from[])

{

if (first == EMPTY_VALUE)

{

if (first == EMPTY_VALUE)

{

zuerst = von;

erster = von;

zweite = EMPTY_VALUE;

}

sonst

{

zweite = von;

zweite = von;

erste = EMPTY_VALUE;

}

}

sonst

{

erste = von;

zweite = EMPTY_VALUE;

}

}

void manageAlerts()

{

if (!calculateValue && alertsOn)

{

if (alertsOnCurrent)

int whichBar = 0;

sonst whichBar = 1; whichBar = iBarShift(NULL,0,iTime(NULL,timeFrame,whichBar));

if (trend[whichBar] != trend[whichBar+1])

{

if (trend[welcherBalken] == 1)

//doAlert(whichBar, "trend");

doAlerts( whichBar, "UP RSI-MA "+Symbol()+" (tf: "+Periode()+")",SoundUp);

if (trend[whichBar] ==-1)

//doAlert(whichBar, "kein Trend");

doAlerts( whichBar, "DOWN RSI-MA "+Symbol()+" (tf: "+Periode()+")",SoundDown);

}

}

}

void doAlerts(int forBar, string doWhat, string SoundFile) {

static string previousAlert="nichts";

static datetime previousTime;

string Nachricht;

if (previousAlert != doWhat || previousTime != Time[forBar]) {

previousAlert = doWhat;

previousTime = Time[forBar];

message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," - ",timeFrameToString(timeFrame)+" rsioma ",doWhat);

if (alertsMessage) Alert(message);

if (alertsSound) PlaySound(SoundFile);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," rsioma "),message);

}

}

//---------------------------------------------------------------------------------------------------

void doAlert(int forBar, string doWhat)

{

static string previousAlert="nichts";

static datetime previousTime;

string Nachricht;

if (previousAlert != doWhat || previousTime != Time[forBar]) {

previousAlert = doWhat;

previousTime = Time[forBar];

message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," - ",timeFrameToString(timeFrame)+" rsioma ",doWhat);

if (alertsMessage) Alert(message);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," rsioma "),message);

if (alertsSound) PlaySound(soundfile);

}

}

DANKE ALLEN.....

Mit freundlichen Grüßen

AZRUL..........

PS... wie kann ich diesen FILES-Code hier einfügen..... Entschuldigung für die Unordnung....

Grund der Beschwerde: