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

 
artmedia70:
Wollen Sie den Gesamtgewinn aller offenen Positionen, oder wollen Sie einen Stopp für jede einzelne Position setzen, wenn sie 20 Pips Gewinn erreicht?
Wenn Sie davon ausgehen, dass nur eine Position auf einmal eröffnet wird, sollten Sie einen Stopp für den Gewinn setzen.
 

Hallo. Es gibt eine Arbitrage-Strategie, ist sie perfekt? Ist es also unrealistisch, dabei zu verlieren, oder erreicht der Preis nicht immer das richtige Niveau?

Dankeschön

 
auf jeden Stopp, wenn ein Gewinn 20 Pips erreicht
 

Ich mache es schon wieder falsch :(

Warum wird es nicht verglichen?

if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(230),10,"Wingdings",SymbolSellColor);
      Print("Ошибка при вызове sig_nal201 1:",GetLastError());}
   else if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(228),10,"Wingdings",SymbolBuyColor);
      Print("Ошибка при вызове sig_nal201 2:",GetLastError());}
   else {ObjectSetText("sig_nal201",CharToStr(224),10,"Wingdings",SymbolBasisColor);
      Print("Ошибка при вызове sig_nal201 3:",GetLastError());}
Ich habe auskommentiert, ich vergleiche 2 Werte - es wird immer der letzte gezogen...
 
profitinvesting:
für jeden einen eigenen Stopp zu setzen, wenn er 20 Pips Gewinn erreicht

Igor Kim verfügt über eine Funktion, die einen Stop auf dem Breakeven-Level für eine bestimmte Anzahl von Pips setzt (kann auch eingestellt werden):

Funktion MovingInWL()

 
Abzasc:

Ich mache es schon wieder falsch :(

Warum ist es nicht vergleichbar?

Ich habe unnötig auskommentiert, ich vergleiche 2 Werte - es wird immer der letzte gezogen...

Interessant... ObjectFind(); gibt die Nummer des Diagrammteilfensters zurück, in dem dieses Objekt gefunden wurde:

Suche nach einem Objekt mit dem angegebenen Namen. Die Funktion gibt den Index des Fensters zurück, zu dem das Objekt gehört. Schlägt sie fehl, gibt die Funktion -1 zurück. Rufen Sie die Funktion GetLastError() auf, um weitere Informationen über den Fehler zu erhalten. Die Unterfenster des Diagramms (falls es Unterfenster für Indikatoren im Diagramm gibt) werden von 1 an nummeriert. Das Hauptfenster des Diagramms ist immer vorhanden und hat den Index 0.

Und womit vergleichen Sie sie?

(NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))

Ich finde diese Konstruktion etwas seltsam. Warum wird die Nummer des Unterfensters(int) normalisiert und außerdem in double umgewandelt, und zwar mit der Funktion StrToDouble()?

 
Abzasc:

Warum ist es nicht vergleichbar?

Vielleicht, weil ich den Namen des Objekts und nicht den Wert erhalte? Wie erhalte ich dann den richtigen Wert? Verwirrt, wie es scheint.
 
artmedia70:

Es ist interessant... ObjectFind(); gibt die Nummer des Diagramm-Unterfensters zurück

:) Ich habe die Hilfe auch gelesen :)

Es gibt Textobjekte, die ich vergleichen muss (Zahlen). Wie?

Ein Indikator zeichnet eine Tabelle und der andere muss sie berechnen.

 
Abzasc:
Vielleicht, weil ich den Namen des Objekts und nicht den Wert erhalte? Wie erhalte ich dann den richtigen Wert? Verwirrt, wie es scheint.
Sie vergleichen die Nummern der Unterfenster, in denen die Objekte gezeichnet werden. Wenn es sich um ein Fenster handelt, gibt die Funktion ObjectFind(); die Nummer dieses Fensters zurück, die für die beiden zu vergleichenden Werte gleich ist. Sie vergleichen also Fensterzahlen. Und höchstwahrscheinlich das gleiche Fenster mit sich selbst...
 
Abzasc:

:) Ich habe die Hilfe auch gelesen :)

Es gibt Textobjekte, die ich vergleichen muss (Zahlen). Wie?

Zahlen von was? Können Sie das genauer erläutern?