Wie programmiert man? - Seite 89

 
shanyang:
Ich habe einen Indikator heruntergeladen, der einen grünen/roten Pfeil anzeigt, wenn das Kauf-/Verkaufssignal kommt.

Jetzt möchte ich meinen eigenen EA auf der Grundlage dieses Indikators programmieren.

aber ich habe nur die ex4-Datei dieses Indikators (kein Quellcode)

Ich möchte, dass mein EA den Indikatorpfeil auf dem Hauptchart liest und den Kauf/Verkaufsauftrag sendet (grüner Pfeil==>Kauf, roter Pfeil==>Verkauf)

Gibt es irgendeinen Ansatz, um Informationen über den Indikatorpfeil auf dem Hauptdiagramm zu erhalten?

danke

Ein Pfeil kann als Wert eines Puffers des Indikators gezeichnet werden; in diesem Fall sollte die Farbe in den Eigenschaften des Indikators Ihnen die Nummer des Puffers geben, was ausreicht, um ihn mit der Funktion "ICustom()" aufzurufen; Sie müssen auch alle Werte der Registerkarte "Input" als Parameter des ICustom()-Aufrufs ausfüllen.

Wenn der Pfeil kein Wert eines Puffers ist, ist er ein Objekt. Wählen Sie ihn aus, um seine Eigenschaften zu sehen. In den meisten Fällen ist es einfach zu verstehen, wie die Namen generiert werden, und dann ist es möglich, ObjectFind() zu verwenden.

Der EA sollte ObjectsTotal() beobachten, und nur wenn es inkrementiert wird, kann er versuchen, das letzte Objekt zu erkennen. Wenn der Name nicht bekannt ist, kann der EA nicht OjectFind() verwenden und muss alle Objekte durchsuchen, um das letzte zu erkennen. Das letzte Objekt ist nicht unbedingt das mit dem höchsten Index (ObjectsTotal() - 1), aber es ist besser, die Suche mit dem höchsten Index zu beginnen, da man so wahrscheinlich schneller zum Ziel kommt. Nun müssen Sie den von ObjectGet() erhaltenen OBJPROP_TIME1 mit Time[0] oder Time[1] vergleichen und die Farbe oder den Pfeiltyp oder eine Teilzeichenkette des Namens überprüfen, um ein Kauf- oder Verkaufssignal zu identifizieren.

Es scheint komplex zu sein, ist es aber nicht. Versuchen Sie, es zu schreiben, und zögern Sie nicht, bei Bedarf nach weiteren Präzisierungen zu fragen.

 
Big Be:
Die vorherige Antwort war unvollständig.

Wenn der Indikator standardmäßig in MT4 enthalten ist, wird er an der üblichen Stelle angezeigt. Wenn er von iCustom aufgerufen wird, wird er auch angezeigt, wenn er richtig codiert ist.

Bei den folgenden EAs werden die Indikatoren sogar im Chart-Fenster angezeigt. Studieren Sie sie, um zu erfahren wie:

bouncingPipEA_mpowerV42.mq4

bouncingPipEA_BigBear_v23.mq4

Großer Be

Danke Big Be, ich werde sie mir ansehen.

 
Michel:
Ein Pfeil kann als Wert eines der Puffer des Indikators gezeichnet werden; in diesem Fall sollte die Farbe in den Eigenschaften des Indikators Ihnen die Nummer des Puffers geben, was ausreicht, um ihn mit der Funktion "ICustom()" aufzurufen; Sie müssen auch alle Werte der Registerkarte "Input" als Parameter des ICustom()-Aufrufs ausfüllen.

Wenn der Pfeil nicht der Wert eines Puffers ist, ist er ein Objekt. Wählen Sie es aus, um seine Eigenschaften zu sehen. In den meisten Fällen ist es einfach zu verstehen, wie die Namen generiert werden, und dann ist es möglich, ObjectFind() zu verwenden.

Der EA sollte ObjectsTotal() beobachten, und nur wenn es inkrementiert wird, kann er versuchen, das letzte Objekt zu erkennen. Wenn der Name nicht bekannt ist, kann der EA nicht OjectFind() verwenden und muss alle Objekte durchsuchen, um das letzte zu erkennen. Das letzte Objekt ist nicht unbedingt das mit dem höchsten Index (ObjectsTotal() - 1), aber es ist besser, die Suche mit dem höchsten Index zu beginnen, da man so wahrscheinlich schneller zum Ziel kommt. Jetzt müssen Sie den OBJPROP_TIME1, den Sie mit ObjectGet() erhalten haben, z. B. mit Time[0] oder Time[1] vergleichen und die Farbe oder den Pfeiltyp oder eine Teilzeichenkette des Namens überprüfen, um ein Kauf- oder Verkaufssignal zu identifizieren.

Es scheint komplex zu sein, ist es aber nicht. Versuchen Sie, es zu schreiben, und zögern Sie nicht, bei Bedarf nach weiteren Präzisierungen zu fragen.

Großartige Erklärung Michel ... 100% vollständiger als meine!

Vielen Dank an alle, die sich dafür interessieren.

FerruFx

 

Indikator in einem EA ändern

Ich würde gerne den Indikator in einem EA, den ich habe, ändern, aber ich weiß nicht, wie man das macht.

Ich bin kein Programmierer und habe auch nicht viel Ahnung von solchen Dingen. Hier ist der einzige Teil, der sich auf den Indikator bezieht, ich möchte den DiMA in MFA(14) ändern

ich möchte bei >60 kaufen und bei <40 verkaufen

double diClose0=iClose(NULL,5,0);

double diMA1=iMA(NULL,5,7,0,MODE_SMA,PRICE_OPEN,0);

double diClose2=iClose(NULL,5,0);

double diMA3=iMA(NULL,5,6,0,MODE_SMA,PRICE_OPEN,0);

if(AccountFreeMargin()<(1000*Lots)){

Print("Wir haben kein Geld. Freie Marge = ", KontoFreieMargin());

return(0);

}

if (!ExistPositions()){

wenn ((diClose0<diMA1)){

OpenBuy();

return(0);

}

if ((diClose2>diMA3)){

OpenSell();

return(0);

}

}

Könnte mir bitte jemand helfen?

Denis

 

Bitte veröffentlichen Sie Ihren MFA-Indikator. Ich muss die Puffer sehen. Nach welcher Logik wollen Sie die Indikatoren wechseln?

Dave

 

Hallo Dave, ich kann den MFI-Indikator nicht posten, da er sich nicht im Indikatorenordner befindet. Sie können den Indikator über die Symbolleiste unter "Volumen" abrufen, ich weiß nicht, was Sie mit "unter welcher Logik" meinen.

denis

 
denis68:
Hallo Dave, ich kann den MFI-Indikator nicht posten, er befindet sich nicht im Indikatoren-Ordner. Sie können den Indikator über die Symbolleiste unter "Volumen" abrufen, ich weiß nicht, was Sie mit "unter welcher Logik" meinen. denis

Dieser hier? Market Facilitation Index

Dateien:
mfi.mq4  3 kb
 

hallo linuxer ich glaube nicht, dass das der richtige ist, aber trotzdem danke, der, den ich habe, heißt Geldflussindex.

denis

 
denis68:
hallo linuxer ich glaube nicht, dass das der richtige ist, aber trotzdem danke, der, den ich habe, heißt Geldflussindex. denis

Entschuldigung, ich habe den Namen falsch geschrieben, es ist dieser.

Geldflussindex.mq4 alias MFI.mq4