Alle Indikatoren funktionieren im gleichen Thread. Dementsprechend verbraucht jeder Indikator einige CPU-Ressourcen. Setzen Sie 100500 Indikatoren mit denselben Parametern ein, und was wird mit dem Terminal passieren? Wenn 300 Gramm Kartoffeln ausreichen, um Sie in den nächsten 20 Minuten glücklich zu machen, werden Sie einen Sack voll davon auf den Schultern haben. Wie gefällt Ihnen das?
Guten Tag. Ich habe über Vail gelesen. Ich kann weder addieren noch subtrahieren. Ich kann nichts über Geldmanagement sagen, ich habe es nicht ausprobiert. Ich habe die neueste Version beigefügt. Aber ich habe bereits alles für mich selbst durcheinander gebracht) Order1(2) der Gewinn der ausgewählten Order Order1(3) das Lot der ausgewählten Order
Ich konnte den Code nicht verstehen.
Ich werde versuchen, das zu erklären. Ich hoffe, Sie kennen die Tickets der benötigten Bestellungen, das macht die Sache sehr einfach. Die Bedingungen. Es gibt einen Gewinnauftrag mit einem Gewinn größer als Null, es gibt einen Verlustauftrag mit einem Gewinn kleiner als Null und größer als der Gewinn, und es gibt eine Bedingung für die teilweise Schließung eines Verlustauftrags.
Im Allgemeinen können Sie Aufträge, die anders ausgerichtet sind, ohne weiteres mit OrderCloseBy schließen. Der kleinere Verlustauftrag wird genauso geschlossen wie der kleinere Gewinnauftrag. Wir brauchen nur 2 Tickets.
Wir können es komplizierter machen und OrderProfit() (das ist Geld) und OrderLots() (das ist das Volumen in Lots) von beiden Aufträgen erhalten. Berechnen Sie das Verhältnis zwischen Gewinn und Verlust und schließen Sie den gewinnbringenden Auftrag und diesen Teil in Losen des Verlustauftrags. Bevor die Gewinne und Lots einer Order ermittelt werden können, muss eine OrderLots() vorausgewählt werden.
// ticket1 тикет прибыльного ордера, ticket2 убыточногоbool sel1=OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES);
double profit1=OrderProfit();
double Lts1=OrderLots();
double price1=0; if(OrderType()==0)price1=Bid; else price1=Ask;
bool sel2=OrderSelect(ticket2,SELECT_BY_TICKET,MODE_TRADES);
double profit2=OrderProfit(); // profit1 < profit2 можно условием впереди поставитьdouble Lts2=OrderLots();
double price2=0; if(OrderType()==0)price2=Bid; else price2=Ask;
double ratio=fabs(profit1/profit2); // или если ratio<1, и берем модуль, у нас один профит меньше нуляdouble lotsl=Lts2*ratio;
Alert("Попытка закрыть прибыльный ордер тикет1 ",ticket1,". Ожидание ответа..");
RefreshRates(); // Обновление данныхbool Ans1=OrderClose(ticket1,Lts1,price1,2); // Закрытие прибыльного ордераif(Ans1==true) // Получилось :)Alert("Закрыт ордер тикет1 ",ticket1,". профит1 ",profit1);
elseAlert(" Ошибка при закрытии ордера тикет1",ticket1," Код ошибки ",GetLastError());
Alert("Попытка закрыть часть ордера тикет2 ",ticket2,". Ожидание ответа..");
RefreshRates(); // Обновление данныхbool Ans2=OrderClose(ticket2,lotsl,price2,2); // Закрытие убыточного ордера частичноif(Ans2==true) // Получилось :)Alert("Закрыт частично ордер тикет2 ",ticket2,". профит2 ",profit2);
elseAlert(" Ошибка при закрытии ордера тикет2",ticket2," Код ошибки ",GetLastError());
Danke, ich habe es gefunden, aber es ist ein bisschen anders, nur in einer Zeile.
Vitaly, du überraschst mich. Alle diese Indikatoren beruhen auf dem Aufbau von DRAW_ARROW mit dem entsprechenden Code. In Ihrer Zeichnung sind die Quadrate der Code 167
ObjectSetInteger(0, up_arrow, OBJPROP_ARROWCODE, 167); // установим код стрелки
Und das Niveau der Serie ist wie Artyoms Katze oder Katze wünscht. Die Angabe kann in ganzen Zahlen oder in Zehnteln erfolgen.
Fangen Sie an und fragen Sie nach, was nicht funktioniert.
Vitaly, du überraschst mich. Alle diese Indikatoren basieren auf der Zeichnung DRAW_ARROW mit einem entsprechenden Code. In Ihrem Bild sind die Quadrate der Code 167
Und das Niveau der Reihe wird nach Artyoms Katze oder Katzenwunsch eingestellt. Die Angabe kann in ganzen Zahlen oder in Zehnteln erfolgen.
Fangen Sie an und fragen Sie nach, was nicht funktioniert.
Ich verstehe das Prinzip des Einrückens von unten nicht, so dass es in mehreren Zeilen gleich ist.
Alle Indikatoren funktionieren im gleichen Thread. Dementsprechend verbraucht jeder Indikator einige CPU-Ressourcen. Setzen Sie 100500 Indikatoren mit denselben Parametern ein, und was wird mit dem Terminal passieren? Wenn 300 Gramm Kartoffeln ausreichen, um Sie in den nächsten 20 Minuten glücklich zu machen, werden Sie einen Sack voll davon auf den Schultern haben. Wie gefällt Ihnen das?
Können Sie mir sagen, ob ich irgendwo in kodobase ein Unterfenster für einen Indikator in diesem Stil gesehen habe?
Kann es nicht finden
Guten Tag. Ich habe über Vail gelesen. Ich kann weder addieren noch subtrahieren.
Ich kann nichts über Geldmanagement sagen, ich habe es nicht ausprobiert.
Ich habe die neueste Version beigefügt. Aber ich habe bereits alles für mich selbst durcheinander gebracht)
Order1(2) der Gewinn der ausgewählten Order
Order1(3) das Lot der ausgewählten Order
Ich konnte den Code nicht verstehen.
Ich werde versuchen, das zu erklären. Ich hoffe, Sie kennen die Tickets der benötigten Bestellungen, das macht die Sache sehr einfach. Die Bedingungen. Es gibt einen Gewinnauftrag mit einem Gewinn größer als Null, es gibt einen Verlustauftrag mit einem Gewinn kleiner als Null und größer als der Gewinn, und es gibt eine Bedingung für die teilweise Schließung eines Verlustauftrags.
Im Allgemeinen können Sie Aufträge, die anders ausgerichtet sind, ohne weiteres mit OrderCloseBy schließen. Der kleinere Verlustauftrag wird genauso geschlossen wie der kleinere Gewinnauftrag. Wir brauchen nur 2 Tickets.
Wir können es komplizierter machen und OrderProfit() (das ist Geld) und OrderLots() (das ist das Volumen in Lots) von beiden Aufträgen erhalten. Berechnen Sie das Verhältnis zwischen Gewinn und Verlust und schließen Sie den gewinnbringenden Auftrag und diesen Teil in Losen des Verlustauftrags. Bevor die Gewinne und Lots einer Order ermittelt werden können, muss eine OrderLots() vorausgewählt werden.
Können Sie mir sagen, ob ich irgendwo in kodobase ein Unterfenster für einen Indikator in diesem Stil gesehen habe?
Ich kann es nicht finden.
Siehe Indikatoren von Scriptor
Siehe Indikatoren des Scriptors.
Danke, ich habe es gefunden, aber es ist ein bisschen anders, nur in einer Zeile
Danke, ich habe es gefunden, aber es ist ein bisschen anders, es ist nur für eine Zeile.
Ich glaube, es gibt auch mehrere Reihen.
Ich glaube, da sind auch ein paar Zeilen drin.
Es gibt über 1500 Codes, ich muss sie leider übersehen haben.
Danke, ich habe es gefunden, aber es ist ein bisschen anders, nur in einer Zeile.
Vitaly, du überraschst mich. Alle diese Indikatoren beruhen auf dem Aufbau von DRAW_ARROW mit dem entsprechenden Code. In Ihrer Zeichnung sind die Quadrate der Code 167
Und das Niveau der Serie ist wie Artyoms Katze oder Katze wünscht. Die Angabe kann in ganzen Zahlen oder in Zehnteln erfolgen.
Fangen Sie an und fragen Sie nach, was nicht funktioniert.
Können Sie mir sagen, ob ich irgendwo in kodobase ein Unterfenster für einen Indikator in diesem Stil gesehen habe?
Kann es nicht finden
DRAW_ARROW ist nicht gut?
8 Puffer beim Zeichnen mit einer Farbe, 16 beim Zeichnen mit zwei Farben.
oder DRAW_COLOR_LINE mit dickeren Linien.
Der Sinn ist, dass die Linien immer auf der gleichen Ebene sind (erste 1 zweite 2 usw.), nur die Farbe ändert sich.
Vitaly, du überraschst mich. Alle diese Indikatoren basieren auf der Zeichnung DRAW_ARROW mit einem entsprechenden Code. In Ihrem Bild sind die Quadrate der Code 167
Und das Niveau der Reihe wird nach Artyoms Katze oder Katzenwunsch eingestellt. Die Angabe kann in ganzen Zahlen oder in Zehnteln erfolgen.
Fangen Sie an und fragen Sie nach, was nicht funktioniert.
Ich verstehe das Prinzip des Einrückens von unten nicht, so dass es in mehreren Zeilen gleich ist.
Das ist der Punkt, an dem ich nicht ansetzen kann