ICustom-Funktion - Seite 12

 

Kann jemand ein einfaches Ea posten, das kauft und verkauft, indem es zwei Indikatoren mit icustom() aufruft.

Gibt es eine Funktion zum Schließen von Pending Orders.

Danke

 

iCustom Hilfe

Hallo.

Ich versuche, einen der Indikatoren von FerruFX zu ändern, um benutzerdefinierte Indikatoren zu verwenden. Ich habe bereits alle MAs, um richtig zu arbeiten, aber ich bin nicht sicher, wie man die richtigen Informationen für die beiden anderen Indikatoren zu erhalten. Ich möchte schließlich, dass dies die MTF-Daten von den beiden Indikatoren, die ich angehängt habe, PerkyAsctrend1 und HeikenAshi MTF anzeigen. Ich verwende iCustom für beide und ich denke, ich habe die richtigen Befehle in diesem Umfang verwendet.

Ich bin in der Lage, Daten (aber nicht die richtigen Daten) für den PerkyAsctrend1 zu erzeugen. Ich dachte, ich hätte die Logik für die korrekte Anzeige verstanden, aber das ist wohl nicht der Fall. Ferru hat MA, CCI, MACD, ADX, Bullspower und BearsPower in seinem Indikator verwendet, aber das sind verschiedene Arten von Indikatoren und sind leider nicht sehr nützlich als Referenz (für mich) für PerkyAsctrend1 in dieser Einstellung.

Ich dachte, der HeikenAshi MTF-Indikator ließe sich leicht in den Indikator einfügen. Offenbar habe ich mich geirrt. Die Heiken-Spalte zeigt unerklärlicherweise "Label" an und sie verschwinden alle nach dem ersten Tick.

Ich hoffe, der Code sieht für Sie nicht ganz so eklig aus wie für mich. Ich bin ein Amateurprogrammierer. Wenn jemand helfen kann, wäre ich wirklich dankbar. Ich brauche ein erfahreneres Paar Augen dafür. Ich denke, dass es ziemlich nützlich sein wird, wenn es fertig ist.

-

Hier sind die Teile des Codes, die mir Probleme bereiten. Beide iCustoms geben mir Werte von 2147483647, die Gesamtzahl der Balken in der Kursgeschichte/dem Diagramm.

int RISK = 4;

int AllBars = 250;

int MaMethode = 1;

int MaPeriod = 20;

//...

// Pesky

//...

string Pesky_Trend_1 //-- , Pesky_Trend_5, Pesky_Trend_15, Pesky_Trend_30, Pesky_Trend_60, Pesky_Trend_240, Pesky_Trend_1440, Pesky_Trend_10080;

double Pesky_m_1=iCustom(NULL,PERIOD_M1, "PerkyAsctrend1", RISK, AllBars,0,shift_1);

if ((Pesky_m_1 > 0)) { Pesky_Trend_1 = "UP"; x = 416; color_indic = Lime; UP_33 = 1; DOWN_33 = 0; }

if ((Pesky_m_1 < 0)) { Pesky_Trend_1 = "DOWN"; x = 406; color_indic = Rot; UP_33 = 0; DOWN_33 = 1; }

// ...

// Indikator (Heiken)

//...

string HA_Trend_1 //-- , HA_Trend_5, HA_Trend_15, HA_Trend_30, HA_Trend_60, HA_Trend_240, HA_Trend_1440, HA_Trend_10080;

double HA_1_1=iCustom(NULL,PERIOD_M1, "Heiken MTF",MaMethod,MaPeriod,shift_1);

double HA_2_1=iCustom(NULL,PERIOD_M1, "Heiken MTF",MaMethod,MaPeriod,shift_1+1);

if ((HA_1_1 > HA_2_1)) { HA_Trend_1 = "UP"; x = 466; color_indic = Lime; UP_41 = 1; DOWN_41 = 0; }

if ((HA_1_1 < HA_2_1)) { HA_Trend_1 = "DOWN"; x = 456; color_indic = Lime; UP_41 = 0; DOWN_41 = 1; }

//...

Ich weiß, dass die Verschiebungswerte unorthodox sind, aber so hat es der ursprüngliche Autor gemacht.

int start()

{

//...

// Shift-Berechnung für Indikatoren (nur Tests)

double shift_1, shift_5, shift_15, shift_30, shift_60, shift_240, shift_1440, shift_10080;

if( test == true )

{

shift_1=iBarShift(NULL,PERIOD_M1,look_time_shift,false);

shift_5=iBarShift(NULL,PERIOD_M5,look_time_shift,false);

shift_15=iBarShift(NULL,PERIOD_M15,look_time_shift,false);

shift_30=iBarShift(NULL,PERIOD_M30,look_time_shift,false);

shift_60=iBarShift(NULL,PERIOD_H1,look_time_shift,false);

shift_240=iBarShift(NULL,PERIOD_H4,look_time_shift,false);

shift_1440=iBarShift(NULL,PERIOD_D1,look_time_shift,false);

shift_10080=iBarShift(NULL,PERIOD_W1,look_time_shift,false);

}

sonst

{

shift_1=shift_indicators;

shift_5=shift_indicators;

shift_15=Verschiebung_Indikatoren;

shift_30=Verschiebung_Indikatoren;

shift_60=Verschiebungsindikatoren;

shift_240=Verschiebungsindikatoren;

shift_1440=Schicht_Anzeiger;

shift_10080=shift_indicators;

Vielen Dank...

 

Aktualisierte Versionen

Nun, ich habe alles neu geordnet, wie es visuell sein muss, und einige Parameternamen geändert. Für iCustom scheint noch alles korrekt zu sein, aber der PerkyAsctrend-Wert wird nicht korrekt berechnet und die Heiken-Logik ist offenbar völlig falsch. Es scheint, dass der Heiken MTF-Indikator nicht einmal einen doppelten Wert für iCustom liefert. Ich habe sie noch nicht erneut überprüft, aber beide iCustom-Doppelwerte für die Indikatoren waren gleich der Anzahl der Balken in meiner Historie (2147483647)...! Ich muss mit iCustom irgendetwas völlig falsch machen, aber ich kann es beim besten Willen nicht finden.

Wenn Sie die Zeit oder Energie haben, sich das anzusehen, wäre ich Ihnen sehr dankbar.

Dateien:
 

An: Homicida & Ra457 re: iCustom

Hallo.

Der große Zahlenwert, den Sie erhalten, wenn Sie iCustom verwenden, klingt nach einem Problem, das ich auch hatte.

Ich hoffe, das hilft.

Vergewissern Sie sich, dass die Parameter, die Sie in iCustom eingeben, genau die gleichen sind und in der gleichen Reihenfolge stehen wie die, die Sie in den externen Variablen im Indikatorcode selbst angeben.

Zum Wohl.

 

2147483647 hat nichts mit Ihrer Geschichte zu tun.

Es ist der größte Wert, den eine vorzeichenbehaftete 32-Bit-Ganzzahl haben kann, und wird von MT4 als Standard "Empty Value" von Indikatoren verwendet.

Indikatoren geben "Empty Value" zurück, wenn der Wert nicht angezeigt werden soll.

 

iCustom()

Hallo, ich muss drei Variablen aus einem Indikator lesen.

Ich habe hem am Anfang des Indikators platziert:

Variablen

double eaBid=0;

double eaAsk=0;

string eaType="";

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

Variablen

#property indicator_separate_window

#Eigenschaft indicator_buffers 8

#property indicator_color1 Schwarz

#Eigenschaft indicator_color2 Limette

#Eigenschaft indicator_color3 Limette

#Eigenschaft indicator_color4 Gelb

#Eigenschaft indicator_color5 Rot

#Eigenschaft indicator_color6 Rot

#Eigenschafts-Indikator_color7 Schwarz

#eigenschaft indicator_color8 Schwarz

double eaEP=0;

double eaSL=0;

double eaType=0;

double iVars[];

Zeugs

#property indicator_buffers 2

#property indicator_color1 Rot

#property indicator_color2 WaldGrün

//---- Eingabeparameter

string IndikatorName="TradeWatch";

double EntryBid=0;

double EntryAsk=0;

string EntryType="";

double eaBid=0;

double eaAsk=0;

string eaType="";

int init()

{

return (0);

}

Start

{

EntryBid = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 1, 0);

EntryAsk = iCustom(Symbol(), Periode(), Indikatorname, eaBid, eaAsk, eaType, 2, 0);

EntryType = iCustom(Symbol(), Periode(), Indikatorname, eaBid, eaAsk, eaType, 3, 0);

}

Wie lese ich die drei Variablen in meinen EA ein?

Ich kann nicht erkennen, was ich falsch mache?

Vielen Dank!

 

Warum lesen Sie nicht einfach die Ergebnisse der Variablen ab, die sich in den Pufferwerten des Indikators widerspiegeln sollen? Wenn Sie sich die Farben im Indikator-Setup ansehen, nachdem Sie den Indikator im Diagramm platziert haben, steht jede Farbe für einen Puffer. Die oberste Farbe = Puffer0, die zweite Farbe von oben = Puffer1 und so weiter.

Verwenden Sie in Ihrem EA etwas wie dieses:

Buff0=iCustom(NULL,0, "Indicator Name",0,0); //Oberste Farbe des Indikators

Buff0=iCustom(NULL,0, "Indikator Name",0,1); //1-Rückseite

Buff1=iCustom(NULL,0, "Indicator Name",1,0); //Nächste Farbe des Indikators oben

Buff1=iCustom(NULL,0, "Indikatorname",1,1); //1-Zurück

Ändern Sie die Variablen im Indikator selbst, und kompilieren Sie den Indikator neu, wodurch die Puffer und der Indikator im Diagramm aktualisiert werden!

Wenn Sie immer noch verwirrt sind, sende ich Ihnen einen aktuellen EA und einen Indikator, den Sie sich ansehen können.

Dave

<<<

 

iCustom()

Danke Dave.

Ich habe es zum Laufen gebracht.

 

Ich wünsche allen einen schönen Tag

 

mein EA

Ich habe meine EA - ASCTrend.mq4 mit MQ4 builder, die asctrend Signal mit ICustom Funktion verwendet erstellt. es kann ein KAUFEN Handel öffnen, wenn UP-Signal, und SELL, wenn DOWN.

Ich möchte zu meinem EA einige Filter hinzufügen - mit Backtesting in einigen Paaren, es sieht gut aus für Filter mit BBands ind, aber ich weiß nicht, wie ich diesen Filter in meinem EA hinzufügen kann - so etwas denke ich, aber ich habe kein Glück.

double Buy1_1 = iCustom(Symbol(),0, "PerkyAsctrend1",0,1);

double Buy2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 4, 0, Current + 1);

double Buy2_2 = 1;

double Sell1_1 = iCustom(Symbol(),0, "PerkyAsctrend1",1,1);

double Sell2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 5, 0, Current + 1);

double Sell2_2 = 1;

if (Buy1_1 && Buy2_1 > Buy2_2) Order = SIGNAL_BUY;

if (Sell1_1 && Sell2_1 > Sell2_2) Order = SIGNAL_SELL;

Dateien: