Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 755

 

Guten Tag!

Ich brauche Hilfe/Ratschläge. Im Terminal gibt es die Möglichkeit, mehrere Indikatoren zu mischen. In diesem Fall ist es möglich, die Bereiche zu fixieren.

Zum Beispiel, CCI min=-300 max=300 und RSI min=0 max=100.

Ist es möglich, in den Expert Advisor zu implementieren, um 2 Indikatoren zu kreuzen. Angenommen, der CCI kreuzt den RSI von unten nach oben => eröffnen Sie eine Bay-Order.

Ist das möglich?

Oder ist das nicht möglich, weil diese Indikatoren einen unterschiedlichen Wertebereich haben. Bei rsi ist der Wertebereich auf 0 bis 100 begrenzt, bei cci können die Werte sowohl positiv als auch negativ sein und sind nicht auf den Max/Min-Wert begrenzt...

 
lomaxx7:

Guten Tag!

Ich brauche Hilfe/Ratschläge. Im Terminal gibt es die Möglichkeit, mehrere Indikatoren zu mischen. In diesem Fall ist es möglich, die Bereiche zu fixieren.

Zum Beispiel, CCI min=-300 max=300 und RSI min=0 max=100.

Ist es möglich, in den Expert Advisor zu implementieren, um 2 Indikatoren zu kreuzen. Angenommen, der CCI kreuzt den RSI von unten nach oben => eröffnen Sie eine Bay-Order.

Ist das möglich?

Oder ist dies nicht möglich, da diese Indikatoren einen unterschiedlichen Wertebereich haben. Bei rsi ist der Wertebereich auf 0 bis 100 begrenzt, bei cci können die Werte sowohl positiv als auch negativ sein und sind nicht auf den Max/Min-Wert begrenzt...

Wenn Sie zu diesem Zweck Ihren eigenen iRSI schreiben, können Sie 50 vom iRSI-Wert abziehen und erhalten einen Indikator mit Nullniveau. Es bleibt eine Frage: Was nützt es, Indikatoren auf diese Weise zu mischen?

 
Alexey Viktorov:

Wenn Sie Ihren eigenen iRSI für diesen Zweck schreiben, können Sie 50 vom iRSI-Wert abziehen und erhalten einen Null-Indikator. Es bleibt eine Frage: Wozu dient eine solche Mischung von Indikatoren?

Ich danke Ihnen. Es gibt einige Ideen, die noch ausgearbeitet werden müssen.
 

lomaxx7:

Ist es möglich, in einem EA die Funktion der Kreuzung von 2 Indikatoren zu implementieren. Angenommen, der CCI kreuzt den RSI von unten nach oben => eröffnet eine Bay Order...

Ist dies möglich?

Oder ist dies nicht möglich, da diese Indikatoren einen unterschiedlichen Wertebereich haben. Beim rsi ist der Wertebereich auf 0 bis 100 begrenzt, beim cci können die Werte sowohl positiv als auch negativ sein und sind nicht auf den Max/Min-Wert beschränkt...

Nicht kompliziert. Sie können denCCI über denRSI berechnen und umgekehrt. Sehen Sie sich die Dokumentation an. Zu jedem Indikator gibt es eine Erklärung, welche Preise verwendet werden können.

https://www.mql5.com/ru/docs/indicators/irsi

angewandter_Preis

[in]Preisgebraucht . Es kann eine der Preiskonstanten ENUM_APPLIED_PRICE oder ein Handle eines anderen Indikators sein.

Zum Beispiel ersetzen wir den CCI-Handle durch denRSI:

int OnInit()
h_cci=iCCI(_Symbol, _Period, cci_ma_period, cci_applied_price);
h_rsi=iRSI(_Symbol, _Period, rsi _ma_period, h_cci);
Далее
void OnTick() 
if(CopyBuffer(h_cci,0,0,to_copy, cci_buf)<=0) return(0);
if(CopyBuffer(h_rsi,0,0,to_copy, rsi _buf)<=0) return(0);
Далее сравниваете значения:
if(cci_buf>rsi_buf) {...ваши действия; ...buy; ...sell;} 
else
if(cci_buf<rsi_buf) {...ваши действия; ...buy; ...sell;}

Der Wertebereich ist in diesem Fall nicht wichtig, da der nächste Oszillator bereits die Werte des vorherigen Oszillators verwendet.

Документация по MQL5: Технические индикаторы / iRSI
Документация по MQL5: Технические индикаторы / iRSI
  • www.mql5.com
Технические индикаторы / iRSI - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
 //+------------------------------------------------------------------+
class A
  {
public: int       propA;
public:
                     A(void) {propA = 15;};
                    ~A(void) {};
  };
//+------------------------------------------------------------------+
class B: public A
  {
public:
                     B(void){};
                    ~B(void){};
  };
//+------------------------------------------------------------------+
void OnStart()
  {
   B newObj;
   GetA(newObj);
//---
   //B newObjArray[3];
   //GetA_Array(newObjArray);
  }
//+------------------------------------------------------------------+
void GetA(A &obj)
  {
   Print(obj.propA);
  }
//+------------------------------------------------------------------+
void GetA_Array(A &obj[])
  {
   for(int i=0;i<ArraySize(obj);i++)
      Print(obj[i].propA);
  }
//+------------------------------------------------------------------+

Wenn wir die restlichen Zeilen in OnStart() auskommentieren, erhalten wir "newObjArray - parameter conversion not allowed".

Zwei Fragen: Warum, und wie kann man das Problem lösen?
 

Können Sie mir bitte sagen, wie ich einen Positionsbericht vom Terminal abrufen kann?

Das Problem ist, dass ich im Terminal eine normale Position sehe, aber im Excel-Bericht ist sie in Teile aufgeteilt, was für mich nicht praktisch ist.

 

Hallo 2017.06.30_18:11 GMT+3. Forum für Kenner. Ich habe meinen EA im MT5 im Strategie-Tester getestet. Er öffnet und schließt Geschäfte, scheint aber nur die erste Bedingung für das Öffnen und Schließen von Geschäften zu erfüllen. Also beschloss ich, den EA auf einem Demokonto zu testen. Der EA verschwindet jedoch sofort aus dem Chart des Demokontos. Es stellt sich heraus, dass es auf dem Demokonto einen Fehler gibt: 2017.06.30 18:08:17.878 Late_raw3 (GOLD,M1) array out of range in 'Cross.mqh' (18,12).
Seltsamerweise wurde im Strategietester kein solcher Fehler gefunden. Ich habe versucht, den Fehler zu finden, aber ich habe ihn nicht verstanden. Die Frage ist so dumm, wie sie nur sein kann. Das war für mich sehr verwirrend. Könnten die Programmierer von MetaQuotes in diesem Fall einen Fehler machen? Der Standard Moving Average.mq5 Expert Advisor hat denselben Code (ich habe ihn von dort aus umgeschrieben). Auf dem Demokonto gibt es keinen Fehler. Aber es wurde nicht gehandelt. Ich habe auf М1 gehandelt. Ich habe aber nicht lange gewartet. Was ist das Problem? Ich werde auf Ihre Antworten warten. Ich freue mich darauf. In der Anlage finden Sie die Dateien, wenn auch nicht ganz alle. 18:26 GMT+3. Ich habe verschiedene Möglichkeiten ausprobiert, den Code zu ändern, aber das Ergebnis ist zweierlei: Entweder geht er über das Array hinaus, oder er schreibt den Fehler "No indicator data". Und im Tagebuch des Strategietesters können Sie sehen, wie die "Überschreitungen" erzielt werden. Der Eröffnungskurs des ersten Abschlusses wird übernommen. Er unterscheidet sich vom Eröffnungskurs des zweiten Geschäfts. Diese "Abweichung" (sie ist größer als meine 130 Punkte) wird als "Überschwingen" bezeichnet. Sie sollten auch den Programmierern von MetaQuotes "Danke" sagen? Sie werden sich nicht langweilen. Alles, was Sie tun, ist langsam. Ich werde den Expert Advisor früher fertigstellen. 18:45 GMT+3. Wenn Sie weitere Informationen benötigen, zögern Sie bitte nicht, mich zu kontaktieren. Das ist alles. 18:51 GMT+3.

 
Николай Никитюк:

Hallo 2017.06.30_18:11 GMT+3. Forum für Kenner. Ich habe meinen EA im MT5 im Strategie-Tester getestet. Er öffnet und schließt Geschäfte, scheint aber nur die erste Bedingung für das Öffnen und Schließen von Geschäften zu erfüllen. Also beschloss ich, den EA auf einem Demokonto zu testen. Der EA verschwindet jedoch sofort aus dem Chart des Demokontos. Es stellt sich heraus, dass es auf dem Demokonto einen Fehler gibt: 2017.06.30 18:08:17.878 Late_raw3 (GOLD,M1) array out of range in 'Cross.mqh' (18,12).
Seltsamerweise wurde im Strategietester kein solcher Fehler gefunden. Ich habe versucht, den Fehler zu finden, aber ich habe ihn nicht verstanden. Die Frage ist so dumm, wie sie nur sein kann. Das war für mich sehr verwirrend. Könnten die Programmierer von MetaQuotes in diesem Fall einen Fehler machen? Der Standard Moving Average.mq5 Expert Advisor hat den gleichen Code (ich habe ihn von dort kopiert). Auf dem Demokonto gibt es keinen Fehler. Aber es wurde nicht gehandelt. Ich habe auf М1 gehandelt. Ich habe aber nicht lange gewartet. Was ist das Problem? Ich bin gespannt auf Ihre Antworten. Ich freue mich darauf. In der Anlage finden Sie die Dateien, wenn auch nicht ganz alle. 18:26 GMT+3. Ich habe verschiedene Möglichkeiten ausprobiert, den Code zu ändern, aber das Ergebnis ist zweierlei: Entweder geht er über das Array hinaus, oder er schreibt den Fehler "No indicator data". Und im Tagebuch des Strategietesters können Sie sehen, wie die "Überschreitungen" erzielt werden. Der Eröffnungskurs des ersten Abschlusses wird übernommen. Er unterscheidet sich vom Eröffnungskurs des zweiten Geschäfts. Diese "Abweichung" (sie ist größer als meine 130 Punkte) wird als "Überschwingen" bezeichnet. Sie sollten auch den Programmierern von MetaQuotes "Danke" sagen? Sie werden sich nicht langweilen. Alles, was Sie tun, ist langsam. Ich werde den Expert Advisor früher fertigstellen. 18:45 GMT+3. Sollten Sie weitere Fragen haben, zögern Sie bitte nicht, mich zu kontaktieren. Das ist alles. 18:51 GMT+3.


Bisher sieht es so aus, dass "rates" (Datei "Cross.mqh", Zeile 18, Cursorposition 12) irgendwo auf globaler Ebene deklariert ist - also laufen alle Fragen darauf hinaus: "Wie wird dieser "Tarif" eigentlich ausgefüllt?".

 

Ich versuche, den Schnittwinkel zweier Kurven zu berechnen. Die Aufgabe besteht nicht einmal darin, den Winkel selbst zu finden, sondern zu prüfen, ob er spitz oder stumpf ist. Ich habe das sogar gezeichnet. Ich kann den Tangens von B und den Tangens von C finden. Woher kenne ich diese Tangenten, um zu bestimmen, ob der Winkel A spitz ist? Hilf mir, ich bin nicht sehr gut in Trigonometrie. Ohne die Winkel selbst zu bestimmen, sind ihre Werte wegen der unterschiedlichen Maßstäbe natürlich unzureichend.


 
igorbel:

Ich versuche, den Schnittwinkel zweier Kurven zu berechnen. Die Aufgabe besteht nicht einmal darin, den Winkel selbst zu finden, sondern zu prüfen, ob er spitz oder stumpf ist. Ich habe das sogar gezeichnet. Ich kann den Tangens von B und den Tangens von C finden. Woher kenne ich diese Tangenten, um zu bestimmen, ob der Winkel A spitz ist? Hilf mir, ich bin nicht sehr gut in Trigonometrie. Ohne die Winkel selbst zu bestimmen, sind ihre Werte wegen der unterschiedlichen Maßstäbe natürlich unzureichend.


Haben Sie ein rechtwinkliges Dreieck, um Tangenten zu finden?
Grund der Beschwerde: