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

 
Craft:

Was ist dann zu tun? Ich habe es mit for(i=0;i<=PeriodS;i++) versucht - es hat nicht geholfen.


Wie Ihnen bereits gesagt wurde

   for(i=1;i<=PeriodB;i++)
{
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
}
   double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i);
   double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i+2);
   double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,i+3);

iMAOnArray wird außerhalb der Schleife ausgeführt (so wie es sein sollte). Dementsprechend ist i+2 = ZeitraumB + 2. Für ArrayResize(c1b,PeriodB);

Und in der Tat ... ersetzen Sie Ihr "i+" durch 0,2,3.

 
SergNF:


Wie bereits an Sie geschrieben

iMAOnArray wird außerhalb der Schleife ausgeführt (so wie es sein sollte). Dementsprechend ist i+2 = ZeitraumB + 2. Für ArrayResize(c1b,PeriodB);

Und in der Tat ... Ersetzen Sie Ihr "i+" durch 0,2,3.


Danke, ich habe alles so gemacht, wie Sie es gesagt haben, aber warum werden die Bestellungen jetzt nicht aufgegeben?

Ich habe es sowohl mit als auch ohne Normalisierung versucht.

   double c1b[];
   for(i=1;i<=PeriodB;i++)
   {
   c1b[i]=iCCI(NULL,0,PeriodB,PRICE_TYPICAL,i);
   }
   double c1b_1=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,1);
   double c1b_2=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,2);
   double c1b_3=iMAOnArray(c1b,0,AvgB,0,MODE_SMA,3);
   
   double c1s[];
   for(i=1;i<=PeriodS;i++)
   {
   c1s[i]=iCCI(NULL,0,PeriodS,PRICE_TYPICAL,i);
   }
   double c1s_1=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,1);
   double c1s_2=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,2);
   double c1s_3=iMAOnArray(c1s,0,AvgS,0,MODE_SMA,3);

 //if (NormalizeDouble(c1s_1,4)>NormalizeDouble(c1s_2,4)&&NormalizeDouble(c1s_2,4)<NormalizeDouble(c1s_3,4))
 if (c1s_1>c1s_2&&c1s_2<c1s_3)
     {                                          // 
      Opn_B=true;                               // Критерий откр. Buy
      Cls_S=true;                               // Критерий закр. Sell
     }
//if (NormalizeDouble(c1b_1,4)<NormalizeDouble(c1b_2,4)&&NormalizeDouble(c1b_2,4)>NormalizeDouble(c1b_3,4))
if (c1b_1<c1b_2&&c1b_2>c1b_3)
     {                                          // 
      Opn_S=true;                               // Критерий откр. Sell
      Cls_B=true;                               // Критерий закр. Buy
     }
 
gordeef:

Tut mir leid, ich habe nicht sofort geantwortet, mein Notebook hat sich komplett verabschiedet. Ich hoffe, mein Zahn tut nicht mehr weh, das ist eine beängstigende Sache. Ich gestehe, ich war die Schuld Babon, er funktioniert gut, aber der Fehler Indikator NMAZZ, ich erinnere mich nicht, wo ich es heruntergeladen, aber auf einem Diagramm es noch funktioniert, aber ich habe es auf drei Charts (5M, 30M, 4H) und alle, der Computer fror komplett, oder vielmehr das Terminal. Ich habe begonnen, die Indikatoren einzeln aus den Diagrammen zu entfernen und dabei diesen Fehler gefunden. Ich weiß nicht, was mit diesem Indikator nicht stimmt, aber am Anfang funktionierte er gut. Und über Umkehr oder Korrektur, ja Sie haben Recht, es ist immer eine Umkehr, aber wenn bei 30M, 1H und 4H der Staffelstab die Farbe wechselt, wenn nicht eine Umkehr, dann Korrektur ist sicher und wir können einige Gewinne machen.
Ja... Wunde Zähne bewirken Wunder... Wo auch immer Sie damit hingehen... :) Wenn Ihnen ein Indikator gefällt und Sie damit arbeiten wollen - entweder mit iCustom oder mit dem Code des Expert Advisors, denke ich. Beim Trend-TP ist jedoch Vorsicht geboten: Sie können ihn am Ende der Bewegung, d. h. vor der Umkehr, kaufen. Dann wird der Elch in der Luft hängen (wie ich gestern mit einem schlechten Zahn... :))). Ich arbeite derzeit an der Definition der Trenderschöpfung und hoffe, dass ich meine Ergebnisse mitteilen kann.
 
Craft:


Danke, ich habe alles so gemacht, wie Sie gesagt haben, aber warum werden die Bestellungen jetzt nicht aufgegeben?

Ich habe es sowohl mit als auch ohne Normalisierung versucht.


Nun, dann nur ein "unpriming" nach den beiden if's, um zu sehen, ob der Fehler in diesem Block ist oder nicht (einschließlich Opn_B und Cls_S) Eine Zeile und Sie werden alles wissen.

Ich weiß nicht, vielleicht ordnen Sie sie (Opn_B und Cls_S) anschließend neu zu oder verwenden beim Öffnen völlig andere Variablen.

 
artmedia70:
Ja... Ein schlechter Zahn kann Wunder bewirken... Wo auch immer Sie damit hingehen... :)

Sie haben keine Behandlung versucht. Sie sagen, es funktioniert.
 
Vinin:

Haben Sie eine Behandlung versucht? Sie sagen, es hilft.
Oh, ja! Man lebt und lernt... ;) Nur nachts können wir keine Zahnärzte in Zakolyuchinsk finden... Ich musste auf Volksheilmittel zurückgreifen...
 

Leute, ich verstehe, dass es keine Wunder gibt, aber ich kann nicht gewinnen... Ich schaue schon unter dem Tisch nach, ob Hottabych dort sitzt... :)

Ich habe versucht, einige EA-Daten im Indikator-Fenster anzuzeigen und habe beschlossen, die Trends im selben Fenster anzuzeigen. Ich berechne die Trends mit meiner Funktion, die die Werte int -1, 0 und +1 zurückgibt. Dementsprechend ist der Abwärtstrend = 1, die Stagnation = 0, der Aufwärtstrend = 1. Mir ist aufgefallen, dass die Pfeile zwar wie gewünscht erscheinen, aber nicht in Richtung der Trends auf den verschiedenen TFs. Also habe ich die Pfeile lange Zeit auskommentiert und durch die Ausgabe des von der Trendfunktion zurückgegebenen Wertes ersetzt. An zwei Stellen des Codes habe ich die Ausgabe des von dieser Funktion zurückgegebenen Zustands platziert. Sie gibt ihren Zustand korrekt zurück; in der oberen linken Ecke des Diagramms werden die Funktionswerte direkt nach dem Aufruf dieser Funktion angezeigt. Darunter, im Indikatorfenster, werden auch die Funktionswerte angezeigt. Numerisch ist es korrekt, aber der vierte Wert der Funktion, die per Definition nur drei Zahlen zurückgibt, wird irgendwoher genommen... Bei diesem vierten Wert zeigt das Indikatorfenster also die Meldung "Fuck you" an... Nun, ich habe es bereits selbst geschrieben, aus Wut... :)

Helfen Sie mir zu verstehen, was das Problem ist? Ich will nicht an Hassan Obdurahman ibn Hottab glauben... :):)

   ObjectCreate("trM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("trM15",OBJPROP_XDISTANCE,x*10);
   ObjectSet("trM15",OBJPROP_YDISTANCE,y*10);
   
   ObjectCreate("ArrowM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("ArrowM15",OBJPROP_XDISTANCE,x*17);
   ObjectSet("ArrowM15",OBJPROP_YDISTANCE,y*10);
   
   if (trM15==1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",Lime);
//         ObjectSetText("ArrowM15",CharToStr(241),10,"Wingdings",Lime);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",Lime);
      }
   if (trM15==-1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(242),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   if (trM15==0)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText("trM15","Хрен вам",9,"Tahoma",LightGray);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",LightGray);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",LightGray);
      }

Hier habe ich bereits versucht, alle vier Zustände zu prüfen, nicht nur -1, 1 und else...

Und das ist es, was es bei mir auslöst - sonst

trM15 ist eine Variable, der ein Wert zugewiesen wird, der von der Trendfunktion zurückgegeben wird

In der Abbildung sehen Sie, dass die Werte korrekt zurückgegeben werden, aber die "lustige Aufschrift" gedruckt wird, die nur dann ist, wenn sonst

Mein Kopf ist schon ganz aus dem Häuschen...

 
artmedia70:

Leute, ich verstehe, dass es keine Wunder gibt, aber ich kann nicht gewinnen... Ich schaue schon unter dem Tisch nach, ob Hottabych dort sitzt... :)

Ich habe versucht, einige EA-Daten im Indikator-Fenster anzuzeigen und habe beschlossen, die Trends im selben Fenster anzuzeigen. Ich berechne die Trends mit meiner Funktion, die die Werte int -1, 0 und +1 zurückgibt. Dementsprechend ist der Abwärtstrend = 1, die Stagnation = 0, der Aufwärtstrend = 1. Mir ist aufgefallen, dass die Pfeile zwar wie gewünscht erscheinen, aber nicht in Richtung der Trends auf den verschiedenen TFs. Also habe ich die Pfeile lange Zeit auskommentiert und durch die Ausgabe des von der Trendfunktion zurückgegebenen Wertes ersetzt. An zwei Stellen des Codes habe ich die Ausgabe des von dieser Funktion zurückgegebenen Zustands platziert. Sie gibt ihren Zustand korrekt zurück; in der oberen linken Ecke des Diagramms werden die Funktionswerte direkt nach dem Aufruf dieser Funktion angezeigt. Darunter, im Indikatorfenster, werden auch die Funktionswerte angezeigt. Die Zahlen sind korrekt, aber der vierte Wert der Funktion, die per Definition nur drei Zahlen zurückgibt, wird von irgendwoher genommen... Bei diesem vierten Wert zeigt das Indikatorfenster also die Meldung "Fuck you" an... Nun, ich habe es bereits selbst geschrieben, aus Wut... :)

Helfen Sie mir zu verstehen, was das Problem ist? Ich will nicht an Hasan Obdurahman ibn Hottab glauben... :):)

Hier habe ich bereits versucht, alle vier Zustände zu prüfen, nicht nur -1, 1 und else...

Und das ist es, was es bei mir auslöst - sonst

trM15 ist eine Variable, der ein Wert zugewiesen wird, der von der Trendfunktion zurückgegeben wird

In der Abbildung können Sie sehen, dass die Werte korrekt zurückgegeben werden, während die "lustige Aufschrift" nur angezeigt wird, wenn sonst

Mein Kopf ist schon ganz aus dem Häuschen...



Das ist richtig.

ObjectCreate("trM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("trM15",OBJPROP_XDISTANCE,x*10);
   ObjectSet("trM15",OBJPROP_YDISTANCE,y*10);
   
   ObjectCreate("ArrowM15",OBJ_LABEL,1,0,0,0,0);
   ObjectSet("ArrowM15",OBJPROP_XDISTANCE,x*17);
   ObjectSet("ArrowM15",OBJPROP_YDISTANCE,y*10);
   
   if (trM15==1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",Lime);
//         ObjectSetText("ArrowM15",CharToStr(241),10,"Wingdings",Lime);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",Lime);
      }
   else if (trM15==-1)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(242),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else if (trM15==0)
      {
         ObjectSetText("trM15","Тренд M15",9,"Tahoma",OrangeRed);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",OrangeRed);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",OrangeRed);
      }
   else
      {
         ObjectSetText("trM15","Хрен вам",9,"Tahoma",LightGray);
//         ObjectSetText("ArrowM15",CharToStr(240),10,"Wingdings",LightGray);
         ObjectSetText("ArrowM15",DoubleToStr(trM15,0),9,"Tahoma",LightGray);
      }

Sie können diese Variante ausprobieren

 
Vinin:


Das ist richtig.

Versuchen Sie dies

GUT. Vielen Dank, Victor. Bis jetzt funktioniert es einwandfrei. Bis jetzt, denn ich habe es schon lange nicht mehr verfolgt, aber ich hatte es noch nie, dass es Trend Up für mich ausgibt. Das ist jetzt der Fall:


Ich wusste, dass es immer einen mächtigeren Zauberer-Zauberer für einen Möchtegern-Zauberer gab... :)

Natürlich ist das alles nur ein Scherz, aber... Victor, ich möchte nicht nur die richtige Lösung kopieren, sondern herausfinden und verstehen , wo das Problem liegt, was der Grund für das unverständliche Verhalten des Codes ist.

 
artmedia70:
Ja... Ein schlechter Zahn kann Wunder bewirken... Wo auch immer Sie damit hingehen... :) Wenn Ihnen ein Indikator gefällt und Sie damit arbeiten möchten - entweder iCustom oder EA-Code, denke ich. Aber was das Trend-TP betrifft, so sollten Sie vorsichtig sein, denn es kann sein, dass Sie es am Ende der Bewegung, d.h. vor der Umkehr, kaufen. Dann wird der Elch in der Luft hängen (wie ich gestern mit einem schlechten Zahn... :))). Ich arbeite derzeit an der Definition der Trenderschöpfung und hoffe, dass ich meine Ergebnisse mitteilen kann.

Ja, ich versuche ohnehin, bei Rückschlägen und Korrekturen vorsichtig zu sein. Aber bezüglich der Trenderschöpfung bin ich auch daran interessiert, ich bin durch das Forum gewandert und habe bei CodeBase nachgesehen, bin aber auf keine Indizes zu diesem Thema gestoßen. Es wird interessant sein, Ihre Ergebnisse zu lesen. Ich habe eine andere Frage, sie schickte mir eine EA, die meine Verluste und Gewinne steuert, wie im Bild sollte es funktionieren, aber die Frage ist, es hat einen 15 Punkt Gewinn und ich sehe, dass der Preis noch höher gehen kann, wenn ich den Gewinn auf einem oder einem anderen Handel erhöhen, kann es die allgemeinen Berechnungen und den Betrieb des EA brechen?
Grund der Beschwerde: