[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 84

 
Roman.:


Tut mir leid, ich habe es nicht bemerkt... :-)))

Ich habe es mehrmals überprüft - keine Fehler, alles streng nach den Formeln.

Offenbar ist es notwendig, das Produkt in Teile zu zerlegen und diese dann zu vergleichen... Lesen Sie mehr - hier.

Ich war dort. Interessant. Ich habe eine Idee. Ich werde in dem Thread zu diesem Thema schreiben.

 
MaxZ:

Haben Sie den gesamten Code kopiert oder nur das, was in der Funktion start() stand? Das ist wichtig!

Sie haben sich geirrt! :)) Bei Zick-Zack zum Beispiel sind nicht alle Elemente des Puffers gefüllt. Es ist auch nicht notwendig, alle Pufferelemente mit Symbolen zu füllen.


Das Kopieren scheint abgeschlossen zu sein...

Seltsam! Wenn ich einen Code wie diesen schreiben würde:

buffer[1]=open[1];

buffer[3]=open[3];

auf der Karte passiert nichts

 
wolf05632:


Ich habe es komplett kopiert...

Seltsam! Wenn ich einen Code wie diesen schreiben würde:

buffer[1]=open[1];

buffer[3]=open[3];

auf der Karte passiert nichts


In diesem Fall müssen Sie sich den gesamten Code ansehen.
 
wolf05632:


Das Kopieren scheint abgeschlossen zu sein...

Seltsam! Wenn ich einen Code wie diesen schreiben würde:

buffer[1]=open[1];

buffer[3]=open[3];

auf der Karte passiert nichts

In diesem Fall sollten Sie Folgendes ändern

SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии

zu

SetIndexStyle (0, DRAW_SECTION);

Andernfalls werden halbierte Linien gezeichnet, oder die Linien springen von Null oder oben auf dem Diagramm und fliegen wieder zurück nach Null oder oben (je nachdem, welchen Wert Sie den übersprungenen Elementen im Puffer geben)! :D

Also hat mein Code bei Ihnen doch noch funktioniert?

 

Ich danke Ihnen! Ich werde es noch einmal versuchen... Ja! Es funktioniert, danke! Mir ist die Bedeutung dieser Zeile nicht ganz klar:

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);
 
wolf05632:

Ich danke Ihnen! Ich werde es noch einmal versuchen... Ja! Es funktioniert, danke! Ich verstehe nur den Sinn dieser Zeile nicht ganz:

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

Lassen Sie mich das erklären.

Wir wenden den Indikator auf ein Diagramm an. Zuerst wird die Funktion init() ausgeführt, sie wird ausgeführt.

Dann wird die Funktion start() ausgeführt. Da noch keiner der Balken berechnet wurde, gibt die Funktion Null an die Variable Counted_bars zurück.

IndicatorCounted(); // Количество просчитанных баров

wird Null zurückgegeben.

Dies bedeutet, dass die Bedingung

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

wird nicht erfüllt, und der Indikator berechnet alle Balken des Symbols, auf das er angewendet wurde.

Nach der Berechnung wird die Ausführung der Funktion start() beendet und der Indikator wartet auf einen neuen Tick.

Wenn ein neuer Tick kommt, wird die Funktion start() erneut ausgeführt. In der Variablen Counted_bars wird die Funktion

IndicatorCounted(); // Количество просчитанных баров

gibt die Anzahl der gezählten Balken zurück.

Dies bedeutet, dass die Bedingung

if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);

kann bereits erfüllt sein, nämlich dann, wenn wir einen Takt nicht brauchen und ihn bei der Zählung der start()-Funktion auslassen wollen.

 

Guten Abend. Ich habe zwei Fragen:

1. ich möchte fragen, ob es jemanden in diesem Forum gibt, der eine Strategie entwickelt, die auf dem Ishimoku-Indikator basiert und einen Zeitrahmen von weniger als einer Stunde verwendet, zum Beispiel 5 oder 15 Minuten?

Das Buch Terekhov A. Ishimoku Indicator.djvu enthält das Kapitel "Ishimoku Indicator and Japanese Candlesticks", in dem es heißt, dass der Indikator Candlestick-Konfigurationen bestätigen sollte. Diese Candlestick-Konfigurationen müssen also vorhanden sein, wenn der Indikator ein Signal ausgibt, oder es können einige Balken zwischen diesen beiden Ereignissen liegen? D.h., das Kreuzen von Tenkan und Kinjun und im gleichen Moment sollte es einen "Hammer" geben oder ist es nicht obligatorisch?

 

Hallo zusammen, ich bin ein Anfänger und habe eine Frage - wenn ich eine Bestellung nach diesem Schema eröffne

extern bool Kaufen = true;

extern double PriceBuy = 0;

int start()
{
if (Buy)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

return;
}
Was muss ich unter den Fragezeichen angeben, um die Variable priceBuy dem Wert des Bestellungskaufpreises zuzuordnen? Der Zweck ist, diesen Wert einmal zuzuweisen, und er wird sich im weiteren Verlauf des Programms nicht mehr ändern.

Und noch etwas: Wie kann man den Stoploss einer bereits offenen Order programmatisch ändern?



 
OTPOK:

Hallo zusammen, ich bin ein Anfänger und habe eine Frage - wenn ich eine Bestellung nach diesem Schema eröffne

extern bool Kaufen = true;

extern double PriceBuy = 0;

int start()
{
wenn (Kaufen)
{OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
PriceBuy = ??????????????????;}

Rückkehr;
}
Was muss ich unter den Fragezeichen angeben, um der Variablen PriceBuy den Wert des Auftragskaufpreises zuzuweisen? Der Zweck ist, diesen Wert einmal zuzuweisen, damit er sich im weiteren Verlauf des Programms nicht mehr ändert.

Noch eine Frage: Wie kann man den Stoploss in einer offenen Order programmatisch ändern?




extern bool Buy = true;
extern double PriceBuy = 0; 
int start() 
{
   if(Buy) 
   {
     int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-50*Point,Ask+50*Point);
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
        PriceBuy=OrderOpenPrice();
   }
   return(0); 
}
 
OTPOK:


Was muss unter den Fragezeichen angegeben werden, damit die Variable priceBuy dem Wert des Auftragskaufpreises zugewiesen wird? Der Zweck ist, diesen Wert einmal zuzuweisen, damit er sich im weiteren Verlauf des Programms nicht mehr ändert.

Und noch etwas: Wie ändere ich den Stoploss einer bereits offenen Order programmatisch?




Guten Tag. Ich habe verstanden, dass Sie Variablen noch nie Werte zugewiesen haben. Das ist sehr einfach zu bewerkstelligen.

PriceBuy=Ask

Und Sie müssen den Stoploss mit der Funktion OrderModifity() ändern.

Verwenden Sie die MetaEditor-Hilfe.

Auf Wiedersehen.