[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 178

 
MQL414:

Kann " If TP. and Ask< iClose("USDCHF",PERIOD_H1,i) then Lot=0.0.


Die Bedingung ist zu Beginn jeder Stunde erfüllt, wenn Open unterhalb (auf den Verkauf) der Trendlinie ist, und Candlesticks können beliebig sein.diese Einschränkung kann zu der Tatsache führen, dass der erste Handel auch nicht geöffnet wird.

Ich habe eine Möglichkeit. Wenn z.B. heute nach einem Verkaufsgeschäft der Saldo um TP gestiegen ist, dann verbieten Sie heute ein Verkaufsgeschäft, wenn ein Kaufgeschäft, dann verbieten Sie ein Kaufgeschäft. Aber ich weiß nicht, wie man das codiert.

 
deyron:
Vielen Dank, Sir, ich habe dies und mehr getan - viele Male in verschiedenen Variationen. Wenn ich versuche, iCustom Indikator verwenden, es funktioniert gut in der gleichen Weise, wenn ich ändern TF es gezeichnet wird ... Wenn ich es aus der Zwischenablage entfernen, wird es in einem anderen Ordner in iCustom gezeichnet werden ... Wenn ich versuche, in einem Kommentar in iCustom setzen, wird es automatisch in iCustom gezeichnet werden. Ich werde versuchen, sie so zu ändern, wie sie im Code gezeichnet ist. Ich freue mich über jeden weiteren Vorschlag)).

Option)))... Gespeicherte Vorlage mit dem gleichen Namen wie der EA mit diesem Indikator... dann, nein?

.... Behandlung))) Entfernen Sie die Vorlage.

 

Ich danke Ihnen! Es hat sich ein wenig aufgeklärt. Mit dem Puffer.

Und hier...

IndicatorCounted( )
Die Funktion gibt die Anzahl der seit dem letzten Aufruf des Indikators unveränderten Balken zurück. Wie? Ich habe es einmal an das Diagramm angehängt, und die Anzahl der Balken bleibt gleich? Das kann nicht sein, es könnte die Zahl nach jedem Ticken zählen. Welche Bars? Wahrscheinlich im sichtbaren Teil des Diagramms? Es ist wirklich so geschrieben, dass man nur raten kann! Entschuldigung für das ukrainische Layout, mein Bruder hat das Windows geändert, ich kann es nicht ändern!
 if(gezählte_Balken>0) gezählte_Balken--; limit=Balken-gezählte_Balken;
Warum ist es so schwer zu schreiben? Und überhaupt, mehr Bar, weniger Bar? Okay, ich werde den Code weiter lesen, vielleicht finde ich es heraus.

 

Ist es möglich, so kompliziert zu sein? Und überhaupt, Bar mehr, Bar weniger? OK, ich werde den Code weiter lesen und sehen, ob ich es herausfinden kann.

Wenn die Berechnung ziemlich kompliziert ist, dann ist die unnötige Neuberechnung von Tausenden von unveränderten Balken eine große Zeitverschwendung. Ich muss vor dem nächsten Tick dort sein, und das kann 250 Millisekunden dauern (auf meinem Server).
 
Heroix:
Korinf, lesen Sie über OrderCloseBy().

Soweit ich es verstanden habe, werden zwei Aufträge abgeschlossen. D.h. +1 für den ersten Auftrag und -2 für den zweiten, werden beide mit einem Gesamtgewinn von -1 abgeschlossen. Ich brauche +1 und -1 und der Rest ist die Anzahl der Lots, die -1 ergibt. Das heißt, die Gesamtheit des ersten + ein Teil des zweiten, so dass ein Restbetrag übrig bleibt.

Können Sie mir einen Tipp geben?
Den ganzen Tag kann ich die Funktion Schleppnetzpunkte nicht finden. D.h. ich habe viele Wege gefunden, aber sie verwenden alle Kerzenständer oder Fraktale oder etwas anderes.
Wenn mein Gewinn +1 ist, sollte ich um mehrere Punkte nachziehen. Ich habe zum Beispiel einen Trailing Edge von 10 Pips festgelegt. Der Kurs hat sich um 10 Punkte in meine Richtung bewegt - der SL ist um n Punkte näher gerückt. Er bewegte sich um 10 Punkte weiter und der SL rückte näher.
Ich denke, dies hätte schon vor langer Zeit eingeführt werden sollen!
 
Gibt es eine Funktion, die berechnet, wo ein Bündel von Aufträgen die Gewinnschwelle erreichen wird?

Ich habe z. B. zwei Verkaufsaufträge und einen Kaufauftrag (auch wenn sie identisch sind). Ich möchte eine Linie ziehen, bei der das Break-even-Niveau dieser Positionen liegt, wenn der Kurs sinkt.
 

korinf:
Есть ли функция которая считает где будет безубыток у кучи ордеров?

У меня есть к примеру два ордера sell и один buy(пусть одинаковые). Хочу чтобы рисовалась линия где будет уровень безубытка по этим позициям если цена идет вниз.

https://www.mql5.com/ru/code/9703

https://www.mql5.com/ru/code/9375

https://www.mql5.com/ru/code/10007

 
korinf:

Soweit ich es verstanden habe, werden zwei Aufträge abgeschlossen. D.h. die erste +1 auf der zweiten -2 wird es beide mit einem Gesamtgewinn von -1 zu schließen. Und ich brauche es, um +1 und -1 zu schließen und links, dass kolichuvto viel, was -1 gibt. D.h. der gesamte erste Teil + ein Teil des zweiten Teils, damit ein Restbetrag übrig bleibt.



Und so wird es sein. Nur der sich überschneidende Teil der Bestellungen wird geschlossen, aber der Rest erhält sein Ticket. Es sieht aus wie ein neuer Auftrag, aber er wird zum Preis des Auftrages eröffnet, dessen Volumen größer war.
 

OK!) Alle Überschneidungen wurden beseitigt!

Können Sie mir einen Tipp geben?
Ich habe den ganzen Tag lang versucht, die Funktion "Posten für Posten" zu finden. Ich habe z. B. eine Menge Tralls gefunden, aber sie verwenden alle Kerzenständer oder Fraktale.
Wenn mein Gewinn +1 ist, sollte ich um mehrere Punkte nachziehen. Ich habe zum Beispiel einen Trailing Edge von 10 Pips festgelegt. Der Kurs hat sich um 10 Punkte in meine Richtung bewegt - der SL ist um n Punkte näher gerückt. Er bewegte sich um 10 Punkte weiter und der SL rückte näher.
Ich denke, dies hätte schon vor langer Zeit eingeführt werden müssen!

 

Hilfe) Was ist der Fehler im Code) im Tester ist alles in Ordnung) und in der Demo ist alles still) das ist schon seit einigen Tagen so) Hier ist der Code)

extern inttern Tenkan=5;
extern int dd=9;
extern int slowing=3;
extern int kk=9;
extern inttern UrovenUp=56;
extern double TakeProfit=100;
extern double Lots=3;
extern double StopLoss=100;

int start()
{double MY,priceBuy,priceBuy2,Ich,D,K,K1;
double Cc1,C2,C3,C4;
int-Ticket;


MY=(Open[0] + Close[0] )/2;
Ich=((Open[iHighest(NULL, 0, MODE_OPEN, Tenkan)]) +
(Close[iLowest(NULL, 0, MODE_CLOSE, Tenkan)]))/2;

D=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_SIGNAL,0))
K=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_MAIN,0))
K1=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_MAIN,1))
Cc1=Close[2] < Close[1];
C2=Close[0] > Close[1];
C3=K>K1;
C4=D<UrovenUp;


//Kauf- und Verkaufspreisbedingung//
priceBuy=MarketInfo(Symbol(),MODE_ASK);
priceBuy2=MarketInfo(Symbol(),MODE_BID);


//Kaufbedingung//


{if (MY > Ich && Cc1 && C2 && C3 && C4)

//ticket=OrderS³; //ticket=OrderS³; //Bedingung für Kauf und Verkauf//
{ticket=OrderSend(Symbol(),OP_BUY,Lots,priceBuy,3,priceBuy2-StopLoss*Point,priceBuy2+TakeProfit*Point,
"Mein Baby",123453,0,Grün);
if(Ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der BUY-Bestellung: ",GetLastError());
zurück(0);
}

}

}



Grund der Beschwerde: