[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 578

 
rigonich:

Es dauert 2,5 Sekunden, um ihn in mt 4 auszuführen.

Verdammt, das ist mein Problem. Ich frage mich, wie ich es umgehen kann, wenn ich nur das gesamte Gitter löschen muss, wenn ich den Roboter entlade... Mir fällt hier nichts ein :(
 
lottamer:

Sie müssen die Begriffe HABEN einen offenen Handel (einen, ohne Majors) in einer Zeile einfügen, zum Beispiel mit einem Crossover von Durchschnitten.

fand dies

==============================================

int start()

{

for(int i=0; i<OrdersTotal(); i++)

{

wenn ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) )

PlaySound ("alert.wav");

zurück(0);

}}

==============================================

Es gibt eine offene Stelle, aber keinen Ton.

Können Sie mir sagen, was los ist?

Oder wie einfach es ist, die Bedingung zu schreiben:

WENN MA 5 die MA 10 kreuzt und eine offene Position besteht - schließen Sie diese Position.

Dies scheint der Punkt zu sein, an dem void.... benötigt wird.


Prüfen Sie, ob Töne für MT im Windup erlaubt sind und ob sich Dateien im OrdnerSound befinden.Aber auf dem bstrom-Markt wird der sn als Wecker funktionieren.
 
rigonich:

Prüfen Sie, ob Töne für MT im Windup erlaubt sind und ob sich Dateien im OrdnerSound befinden.Aber auf dem bstrom-Markt wird der sn als Wecker funktionieren.


Nein, auch wenn ich ein Anfänger bin, aber ich mache solche Fehler nicht. :))

andere Experten singen wie Nachtigallen! im selben Terminal!

 
Desead:

Verdammt, das ist mein Problem. Ich frage mich, wie ich es umgehen kann, wenn ich nur das gesamte Gitter löschen muss, wenn ich den Roboter entlade... Mir fällt hier nichts ein :(

die gleiche Bedingung vor dem Aufruf von deinit auf die gleiche Bedingung setzen, bei der du deinit aufrufst.
 
lottamer:


Nein, ich bin ein Anfänger, aber ich mache solche Fehler nicht. :))

die anderen Experten singen wie Nachtigallen! im selben Terminal!


Und wenn es sich um ein Skript handelt, müssen Sie die Handelserlaubnis für Expert Advisors aktiviert haben, und in dem Fenster, in das Sie das Skript eingefügt haben, sollten keine anderen funktionierenden Skripte oder Expert Advisors vorhanden sein, außerdem wird es "klingeln", wenn es offene Geschäfte für irgendein Instrument gibt.
 
rigonich:

Platzieren Sie ein Deinit, bevor Sie das Deinit unter der gleichen Bedingung aufrufen, unter der Sie das Deinit aufrufen.


Deinit wird also aufgerufen, wenn ich einen Roboter aus einem Diagramm entferne - anders kann ich diese Bedingung nicht nachverfolgen..... ist es wahrscheinlich einfacher, ein separates Skript zu schreiben, das alle verbleibenden ausstehenden Roboter löscht, es gibt keinen anderen Weg.

Übrigens, ein weiterer Gedanke zu diesem Thema:

Ich glaube, ich habe das Problem der Löschung von ausstehenden Aufträgen gelöst. Ich bestimme die Menge der "notwendigen" (zu entfernenden) Aufträge in einer separaten Funktion, rufe diese Funktion auf und dann while mit einer Bedingung (Total>0), dann den Zyklus des Entfernens for(int i=Total-1;i<=0l; i--), wiederum Berechnung der Menge der "notwendigen", Zähler der Entfernungsversuche mit Beendigung vonwhile, wenn das gegebene Niveau erreicht ist. Auf diese Weise wird alles gelöscht.

Hier kann eine Endlosschleife entstehen, wenn einer der Aufträge aus irgendeinem Grund nach dem Zeitpunkt der Zählung verschwindet.

 
rigonich:

Und wenn es sich um ein Skript handelt, müssen Sie die Handelsberechtigung für Expert Advisor aktiviert haben.


dies ist ein EA.

alle Berechtigungen sind natürlich aktiviert (es gibt andere EAs - sie funktionieren NICHT gleichzeitig)

Es gibt ein Problem mit dem Code. Irgendetwas stimmt da nicht.....

 
Desead:

Vielen Dank für die Antwort. Ich brauche nicht alle, nur bylimit und selllimit, und ich stelle sie auch nur, der Zauberer ist auch überall gleich präsent. Ich sah den Code von Ihnen gegeben, es gibt so viel Zeug dort, ich saß, um es zu verstehen, im Allgemeinen, wenn ich das Problem nicht selbst lösen können, muss ich Ihre Skripte gründlicher zu demontieren, gibt es keinen anderen Weg, es nicht zu löschen und das ist es (

Ich habe über etwas nachgedacht. Ich habe die Löschung aller ausstehenden Roboter nur an einer Stelle eingestellt - wenn ich meinen Roboter entlade, wird er in deinit gesetzt. Wenn ich nur ein paar Aufträge lösche, ist alles in Ordnung, aber wenn ich ein ganzes Raster entlade, was zum Teufel passiert dann - es bleiben immer etwa zehn Aufträge übrig und es gibt keine Möglichkeit, sie manuell zu löschen.

Mein Skript verwendet diese Bibliothek. Die Funktion, die für die Löschung der darin enthaltenen Aufträge zuständig ist:

/*int fClose_AllOrders (double& fd_Pribul,         // Возвращаемый профит закрытых ордеров
                        int fi_Type = -1,          // тип закрываемых ордеров: -1 - все; -2 - рыночные; 7 - отложенные или OrderType()
                        int fi_NBars_Life = 0,     // минимальная "жизнь" ордера в барах на fi_Period: 0 - параметр не учитывается
                        int fi_Period = 0,         // Период
                        int fi_OrderProfit = 0)*/  // Идентификатор профитности ордера: > 0 - профитный; < 0 - лоссовый
                                     // Функция закрытия "своих" ордеров по признаку

Man braucht zwar einige Kenntnisse, um die Funktion aus der Bibliothek herauszulösen, aber die Verwendung der gesamten Bibliothek ist für einen Neuling durchaus akzeptabel.

 
rigonich:

Hurra, es scheint, dass ich das Problem des Löschens von Aufträgen gelöst habe. Ich berechnete die Anzahl der "notwendigen" (zu entfernenden) Aufträge in einer separaten Funktion, rief diese Funktion auf, dann while mit einer Bedingung (Total>0), dann der Zyklus des Entfernens for(int i=Total-1 ;i<=0l; i--), wieder die Funktion des Zählens der "notwendigen", Zähler der Entfernungsversuche mit dem Ausstieg auswhile, wenn das angegebene Niveau erreicht ist. Auf diese Weise wird alles gelöscht.
Bei der Verwendung von Schleifen sollten Sie IMMER vorsichtig sein: Geben Sie die Iterationszahl und die Ausstiegsbedingung an, wenn der EA nicht handeln darf.
 
TarasBY:
Bei der Verwendung von Schleifen sollten Sie IMMER vorsichtig sein: Setzen Sie einen Iterationszähler und eine Ausstiegsbedingung, wenn Sie dem EA den Handel untersagen.


Danke für den Hinweis. Ich hatte die Ausstiegsbedingung vergessen, wenn kein Handel erlaubt ist.