Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 356

 
Nauris Zukas:

Danke, aber dann müsste ich die Daten auch skalieren (wenn ich Sie richtig verstehe). Es scheint, dass die Skalierung der Daten die einzige Lösung ist.

Warum etwas skalieren? Verwenden Sie einfach 2 Puffer, legen Sie positive Werte in den einen und negative Werte in den anderen. Wenn die Berechnung nur positive Werte ergibt, können Sie diese mit -1 multiplizieren. Aber wenn die Berechnung sowohl positive als auch negative Werte ergibt, dann passt mein Vorschlag nicht.

Dann können Sie Histogramme mit unterschiedlicher Breite erstellen. Zuerst wird der Puffer, der mit einem breiten Histogramm angezeigt wird, mit einem Wert gefüllt, dann der, der mit einem schmalen Histogramm angezeigt wird, mit einem Wert.

Dadurch wird ein Histogramm erstellt. Hier werden vier Puffer verwendet.


 
Alexey Viktorov:

Warum etwas skalieren? Verwenden Sie einfach 2 Puffer, legen Sie positive Werte in den einen und negative Werte in den anderen. Wenn die Berechnung nur positive Werte ergibt, können Sie diese mit -1 multiplizieren. Aber wenn die Berechnung sowohl positive als auch negative Werte ergibt, dann passt mein Vorschlag nicht.

Dann können wir Histogramme mit unterschiedlichen Breiten erstellen. Zunächst sollte der im breiten Histogramm angezeigte Puffer mit Werten gefüllt werden, dann der im schmalen Histogramm angezeigte Puffer mit Werten.

Dadurch wird ein Histogramm erstellt. Hier werden vier Puffer verwendet.


Danke, aber es passt nicht zu dieser Variante, da die Puffer mit Linien beispielsweise im Bereich von 1.19653 bis 1.19674 liegen und das Histogramm von 0 bis 250 reicht. Tics und Spread in einem Fenster, deshalb wollte ich eine zweite Y-Achse machen.

 
Nauris Zukas:

Danke, aber es wird nicht funktionieren, weil der Puffer mit Linien zum Beispiel im Bereich von 1.19653 bis 1.19674 liegt und das Histogramm von 0 bis 250 reicht. Tics und Spread in einem Fenster, deshalb wollte ich eine zweite Y-Achse machen.

Ich stimme zu, es wird nicht passen. Aber!!! Was wird die Skalierung bewirken? Vielleicht teilen Sie die Histogrammwerte durch 100? Oder multiplizieren Sie mit 0,01...

 
Alexey Viktorov:

Ich stimme zu, es wird nicht passen. Aber!!! Was würde die Skalierung bewirken? Wie wäre es, die Histogrammwerte durch 100 zu teilen? Oder multiplizieren Sie mit 0,01...

Bisher das folgende Konzept: wir nehmen Max/Min-Werte aus linearen Puffern und machen Max-Spreads unter diesen Werten, andere Spreads werden unter Max skaliert.

 
Artyom Trishkin:

Der Broker erlaubt also kein Autotrading für Ihr Konto, da alles aktiviert ist und der EA keine Positionen eröffnet oder Aufträge erteilt.

Was wird im Protokoll angezeigt, wenn der EA versucht, eine Handelsanfrage an den Server zu senden?

Aufträge werden erteilt, aber IsTradeAllowed() ist 0. Wie kann das sein?

 
Andrei:

Meinen Sie damit, den automatischen Handel zuzulassen? Dies ist auch möglich...

Ist es sinnvoll, den Helpdesk des Maklers anzurufen?

 
Andrei:

Aufträge werden erteilt, aber IsTradeAllowed() ist 0. Wie ist das möglich?


das Konto konkurrenzfähig ist?

Es sind mindestens vier Parameter zu prüfen:

ACCOUNT_TRADE_EXPERT
ACCOUNT_TRADE_ALLOWED
TERMINAL_TRADE_ALLOWED
IsTradeAllowed(_Symbol,TimeCurrent())
 

Können Sie mir bitte sagen, wie ich einen Code schreiben kann, um den aktuellen Tick mit dem vorherigen Tick für ein ausgewähltes Handelsinstrument zu vergleichen?

Ich muss vergleichen: wenn Tick (current) > Tick (previous), dann gehe ich zur Ausführung der Zählung dieser Ticks, und umgekehrt, wenn Tick (current) < Tick (previous), dann gehe ich zur Berechnung von Ticks2.

Ich möchte also berechnen, wie viele Ticks in jedem Balken auf dem ausgewählten Diagramm und Zeitrahmen den Preis erhöhen und wie viele ihn senken.

Bitte um Rat! Ich schreibe gerade meinen ersten Trainingsindikator und mein erstes Programm in meinem Leben :(

Habe ich es richtig gemacht?

int Tick;

int Tick2;

int start()

if((Gebot - Gebot[1]) > 0)

{

Tick++;

Rückkehr;

}

sonst

{

Tick2++;

Rückkehr;

}

 
YarTrade:

Können Sie mir bitte sagen, wie ich einen Code schreiben kann, um den aktuellen Tick mit dem vorherigen Tick für ein ausgewähltes Handelsinstrument zu vergleichen?

Ich muss vergleichen: wenn Tick (current) > Tick (previous), dann weiter zur Ausführung solcher Ticks, und umgekehrt, wenn Tick (current) < Tick (previous), dann weiter zur Berechnung von Ticks2.

Ich möchte also berechnen, wie viele Ticks in jedem Balken auf dem ausgewählten Diagramm und Zeitrahmen den Preis erhöhen und wie viele ihn senken.

Bitte um Rat! Ich schreibe meinen ersten Trainingsindikator, und auch mein erstes Programm in meinem Leben :(

Mache ich es richtig?

Versuchen Sie, Datum, Uhrzeit, Gebot und die Ergebnisse Ihrer Berechnungen auf jedes Häkchen zu schreiben. Laden Sie sie dann in Excel hoch und überprüfen Sie sie. Es macht kaum Sinn, alle Dutzend Zeilen des Programms abzustimmen!

Aber sehen Sie, Sie haben Return in jedem Zweig des bedingten Operators, d.h. er wird immer ausgeführt. Wir nehmen ihn also aus dem bedingten Operator heraus:

int Tick=0, Tick2=0;       // Для вставки программы используйте кнопку SRC
double Bid1;

void OnInit()
{
  Bid1=Bid;
}

void start()   // Вместо start более модно писать OnTick
{
    if(Bid > Bid1) Tick++;                             
    else           Tick2++;
    Bid1=Bid;                          
}

Bid[1] - ist das so?

 
STARIJ:
// Вместо start более модно писать OnTick

:)

Grund der Beschwerde: