[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 120

 

Vor ein paar Tagen habe ich den EA "e-MoveSLTPbyMouse" heruntergeladen (danke Granit) und auf der Broco-Handelsplattform ausprobiert, funktioniert einwandfrei. Heute beschloss ich, es mit IBFX zu verwenden und sah, dass es nicht funktionierte. Eine Art zusätzliche Linie ist erschienen, die vom Preis "abgeprallt" ist, dann hat der Markt die Stop-Loss-Linie erfolgreich überschritten und ich musste die Position manuell mit einem kleinen Verlust schließen. Haben Sie dazu eine Meinung? Was kann ich tun, damit mein Expert Advisor mit IBFX funktioniert? Oder gibt es vielleicht etwas Ähnliches im Arsenal von jemandem?

Eine weitere Frage. Ich habe einen EA, der Positionen mit horizontalen Linien öffnet, aber leider öffnet er nur 3-4 Pips vom eingestellten Preis. Zum Beispiel habe ich eine SELL-Linie bei 1,4018 mit 1 Pip zum Durchbrechen gesetzt (EUR), und die Position wurde bei 1,4015 eröffnet, d.h. sie ist um 2 Pips gesunken. Beim GBP wurde er um 3 Pips überschritten. Vielleicht hat jemand einen ähnlichen EA, aber er würde richtig funktionieren. Dafür wäre ich sehr dankbar.

Ich poste diesen EA, vielleicht braucht ihn jemand.

Dateien:
 

Meine Herren Experten, ich möchte in meinem Expert Advisor einen Gleitindikator auf einem Chart verwenden.

Wenn ich den gleitenden Indikator manuell an das Diagramm anhänge, kann der Parameter Anwenden auf als Daten des vorherigen Indikators geschrieben werden, aber wie sollte ich es in meinem EA tun?

Ich denke, es wäre logisch, die Funktion OnArray anzuwenden, aber ich weiß nicht, wo ich das Array mit den Daten des ersten МА nehmen soll.

Ich brauche zum Beispiel Folgendes: Wenn der erste МА (21) höher ist als der zweite MA (21) (der auf dem ersten MA aufbaut), dann..................

Und eine weitere Frage: wenn mein Expert Advisor hat die folgende Funktion aufrufen: iMA(0,0,250,0,1,0,0), dann jeden Tick wird es diese 250 Bars schließen, summieren sie und dividieren durch 250 nehmen? Das ist jedoch nicht der Fall. Und wenn ich eine weitere Schiebestange verwende, wird der Preis sinken... Bitte klären Sie das.



 
mukata писал(а) >>

Meine Herren Experten, ich möchte in meinem Expert Advisor einen Gleitindikator auf einem Chart verwenden.

Wenn ich den gleitenden Indikator manuell an das Diagramm anhänge, kann der Parameter Anwenden auf als Daten des vorherigen Indikators geschrieben werden, aber wie sollte ich es in meinem EA tun?

Ich denke, die Funktion iMAOnArray macht Sinn, aber ich weiß nicht, wo das Array mit den Daten des ersten MA zu nehmen, bitte, klären Sie mich auf oder geben Sie mir einen Link zu einer solchen Konstruktion, oder die Konstruktion selbst, wenn überhaupt.

Ich brauche zum Beispiel Folgendes: Wenn der erste МА (21) höher ist als der zweite MA (21) (der auf dem ersten MA aufbaut), dann..................

Und eine weitere Frage: wenn mein Expert Advisor hat die folgende Funktion aufrufen: iMA(0,0,250,0,1,0,0), dann jeden Tick wird es diese 250 Bars schließen, summieren sie und dividieren durch 250 nehmen? Das ist jedoch nicht der Fall. Und wenn ich eine weitere Schiebestange verwende, wird der Preis sinken... Bitte erklären Sie das.

Der einfachste Weg, einen Indikator zu erstellen.

 
Vinin >> :

Am einfachsten ist es, einen Indikator zu erstellen.

Erstellen wir einen Indikator, woher bekommen wir das Datenfeld? Geben Sie mir einen Hinweis auf die Konstruktion, im Lehrbuch steht das nicht...

Und die zweite Frage?

 
mukata писал(а) >>

Nehmen wir einen Indikator, woher bekommen wir das Datenfeld? Bitte geben Sie mir einen Hinweis auf die Konstruktion, im Lehrbuch steht das nicht...

Und die zweite Frage?

Zur zweiten Frage. Es hängt alles von der Umsetzung ab. Sie können den Indikator selbst berechnen, indem Sie den Code optimieren. Sie dürfen nur die Balkenöffnung berechnen. Es gibt eine Vielzahl von Varianten.

Die beste Möglichkeit ist jedoch die Verwendung des Indikators. In diesem Bereich werden alle Berechnungen durchgeführt, und der Expert Advisor liest sie aus (berechnete Werte).

Hier ist ein Beispiel für einen Indikator

Ich habe den Indikator geändert

Dateien:
 
Vinin >> :

Zur zweiten Frage. Es hängt alles von der Umsetzung ab. Sie können Ihre eigene Berechnung durchführen, indem Sie den Code optimieren. Sie können nur nach der Öffnung des Balkens rechnen. Es gibt eine Vielzahl von Varianten.

Die beste Möglichkeit ist jedoch die Verwendung des Indikators. In diesem Bereich werden alle Berechnungen durchgeführt, und der Expert Advisor liest sie (die berechneten Werte).

1) "Sie können das Tool selbst berechnen, indem Sie den Code optimieren" - diese Zeile verstehe ich nicht. Ich verstehe: Bei jedem Tick wird der Start aufgerufen, und wenn die Funktion iMA(0,0,250,0,1,0,0) aufgerufen wird, dann werden jedes Mal diese 250 Balken addiert und geteilt. Und wenn wir den Indikator korrekt erstellen, zählt er nur den letzten Balken, und der letzte Shift-Parameter wird aus dem Array gelesen. Oder?

2) Woher bekommen Sie das Array, um die zweite MA zu erstellen?

 
mukata >> :

2) Wo kann ich ein Array für die Berechnung des zweiten MA erhalten?


Genau! Ich vergaß, der Indikator erstellt ein Array von MA-Werten...

Ich danke Ihnen vielmals.

 
mukata писал(а) >>

1) "Sie können die Maschine selbst berechnen, indem Sie den Code optimieren" - diese Zeile verstehe ich nicht. Ich verstehe: bei jedem Tick wird Start aufgerufen, und wenn die Funktion iMA(0,0,250,0,1,0,0) aufgerufen wird, werden diese 250 Balken jedes Mal addiert und geteilt. Und wenn wir den Indikator korrekt erstellen, zählt er nur den letzten Balken, und der letzte Shift-Parameter wird aus dem Array gelesen. Oder?

2) Wo können wir ein Array für die Erstellung der zweiten MA erhalten?

1. Es hängt alles von der Umsetzung ab. Es gibt optimale Methoden zur Berechnung. iMa() verwendet einen eigenen Berechnungsalgorithmus. CodeBase hat sie. Wenn Sie es also benutzen, funktioniert der Berechnungsmechanismus, der vor Ihnen verborgen ist. Sie erhalten nur das Ergebnis. Und die Berechnung wird jeden Tick durchgeführt.

2. Ich habe diesen Indikator speziell entwickelt, um Ihnen zu helfen, Arrays zu verstehen.

 
Vinin >> :

1. Es hängt alles von der Umsetzung ab. Es gibt optimale Methoden zur Berechnung. iMa() verwendet einen eigenen Berechnungsalgorithmus. CodeBase hat sie. Wenn Sie es also benutzen, funktioniert der Berechnungsmechanismus, der vor Ihnen verborgen ist. Sie erhalten nur das Ergebnis. Und die Berechnung wird jeden Tick durchgeführt.

2. Ich habe diesen Indikator speziell entwickelt, um Ihnen das Verständnis von Arrays zu erleichtern.

Vielen Dank für den Hinweis, ich habe mir die Startfunktion angeschaut, da wurde mir sofort alles klar.

Zur ersten Frage:

Zum Beispiel in meinem Expert Advisor (nicht MA, aber auch eine eingebaute Funktion):

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
){
//и обе линии ниже 90
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<90&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)<90
){
//и выше 50
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>50&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)>50
)
fl=1;return(fl);//продать
}
}

Wird sie in jeder Zeile gezählt?

Oder man sollte einen Indikator schreiben und Werte aus seinen Arrays nehmen und sie vergleichen, oder etwas anderes. Damit es schneller geht.

 
mukata писал(а) >>

Vielen Dank für den Hinweis, habe mir die Startfunktion angesehen, da wurde alles sofort klar.

Zur ersten Frage:

In meinem EA zum Beispiel (nicht MA, aber es ist auch eine eingebaute Funktion):

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
)

Wird es in jeder Zeile gezählt?

Oder sollte ich einen Indikator schreiben, und nehmen Sie Werte aus seinen Arrays und vergleichen Sie sie, oder etwas anderes. Damit es schneller geht.

Zunächst ist es besser, die Werte der Stochastik und der Signallinie zu berechnen. Und dann vergleichen Sie sie. Ich mag diesen Stil einfach nicht. Dies führt zu einer Art von Blindheit. Und es ist leichter, einen Fehler zu machen.

If() in der Metaquotes-Variante führt eine vollständige Berechnung des logischen Ausdrucks durch. Es wäre wünschenswert, sie so einfach wie möglich zu gestalten. Es ist nur so, dass if() eine der langsamsten Operationen ist.

Es gibt auch den Begriff des "Ratterns" auf der Nullleiste. Es kann vorkommen, dass das Signal auf einem Takt mehr als einmal wiederholt wird. Es kann sogar sein, dass es sich nicht verriegeln lässt. Es war ein falsches Signal. Deshalb versuchen wir, die Werte aus den gebildeten Balken zu übernehmen. Aber in diesem Fall sollten wir die Eröffnungspreise verwenden. Es kann aber auch andere Varianten geben.