[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 439

 
peshihod:


Ich verstehe, dass ein schwebender Auftrag und ein offener Auftrag unterschiedliche Aufträge sind. Und wenn der schwebende Auftrag geöffnet wird, dann wird die Aufgabe auf die ursprüngliche, auf den offenen Auftrag reduziert. Wenn ich es richtig verstehe, wird es sehr kompliziert.

Was sind die Aufgaben? Vielleicht lässt sich alles auf einfachere Weise erledigen?

Ich verstehe, dass ein schwebender und ein offener Auftrag unterschiedliche Aufträge sind. -------------- Ja (vielleicht) Vielleicht auch nicht. Die Hauptsache ist, dass das Skript bei der Eröffnung dieses schwebenden Auftrags ausgelöst wird, d. h. nicht bei seiner Platzierung, sondern bei seiner Eröffnung.

Ich brauche Hilfe beim Schreiben des Skripts, bitte helfen Sie mir, Fachleute, Experten und gute Leute, schlagen Sie Änderungen vor, wenn Sie wollen, dass es funktioniert.


Wenn ich eine schwebende Order habe, erreicht ihr Preis sie und der Roboter sollte auch reagieren. Ich möchte, dass es auch bei solchen Aufträgen funktioniert.

Nun, ich teste es jetzt und es funktioniert. Warum es im 1. Test nicht geklappt hat, hmmm... Vielleicht wegen des Neustarts des Computers ... Aber nach dem geplanten Neustart lächelte der Roboter (funktionierte).

Ein weiteres Detail. Dieses Skript funktioniert nicht bei historischen Diagrammen, und warum?

//+------------------------------------------------------------------+
//| Order_act.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
int Order_array[200];
int Total=0;
int j,pos,count,order_tick,type;
bool found;

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
// создаем список ордеров (туда входят и открытые, и отложенные)
Total=OrdersTotal();

for(pos=0;pos<Total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{ Order_array[pos]=OrderTicket();}
}

// проверочная часть скрипта
int i=0;
while ( !IsStopped() )
{
count=OrdersTotal();
for(pos=0;pos<count;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true)
{
found=false;
order_tick=OrderTicket();

for (j=0;j<Total;j++)
{

if (order_tick==Order_array[j]) {found=true;}
}
if (!found)
{
type=OrderType();

if ((type==OP_BUY) || (type==OP_SELL))
{
Total++; // в случае,если есть новый открытый
Order_array[Total-1]=order_tick; //ордер - добавляем в список

Alert("Новый открытый ордер"); // и делаем с ним что хотим

}
}
}
// если планируется, что скрипт будет работать долго или открываемся часто
// удаляем из списка все закрытые ордера чтобы не было переполнения.
// А чтобы работало быстрее, количество записей можно уменьшить (лишь бы не превысило
// максимально возможного числа открытых и отложенных поз.
if (Total>190)
{
for (j=0;j<Total;j++)
{
if(OrderSelect(Order_array[j],SELECT_BY_TICKET)==true)
{
if (OrderCloseTime()!=0)
{
Alert("нашли закрытый в списке и удалили");
for (i=j+1;i<Total;i++) {Order_array[j]=Order_array[i];}
Total--;
}
}
}
}
Sleep(100);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

Его написал RAVen_ Спасибо этому профессионалу .

 

Liebe Fachleute,

Wie kann ich einem EA beibringen, Informationen aus einem anderen Fenster zu lesen, in dem ein anderer EA mit demselben Währungspaar arbeitet?

 
demlin:

Liebe Fachleute,

Wie kann ich einem EA beibringen, Informationen aus einem anderen Fenster zu lesen, in dem ein anderer EA mit demselben Währungspaar arbeitet?


Versuchen Sie einen anderen Weg zu gehen, nämlich den Austausch von Werten zwischen EAs über globale Variablen... Ich habe sie nicht selbst benutzt, ich kenne die Details nicht, suchen Sie nach ihnen und sehen Sie, wie sie benutzt werden...
 
demlin:

Liebe Fachleute,

Wie kann ich einem EA beibringen, Informationen aus einem anderen Fenster zu lesen, in dem ein anderer EA mit demselben Währungspaar arbeitet?

Es gibt auch eine solche Bibliothek.
 
semiromid:

Ich verstehe, dass ein schwebender Auftrag und ein offener Auftrag unterschiedliche Aufträge sind. -------------- Ja (vielleicht) Vielleicht auch nicht. Die Hauptsache ist, dass das Skript funktioniert, wenn der schwebende Auftrag geöffnet wird, d.h. nicht, wenn er platziert wird, sondern wenn er geöffnet wird.


Hier werden ein paar Bäume mit einem Bagger ausgegraben! Welchen Sinn hat es, die Aufträge zu trennen? Der Preis ist für alle gleich. Die Aufträge werden immer gemeinsam, in großen Mengen und mit der gleichen besten Variante bearbeitet.

D.h. es ist nicht wichtig, wer die Aufträge erteilt, sondern welche Parameter jeder einzelne Auftrag hat. Sie suchen nach einer leeren Stelle.

Wenn wir Aufgabe1 und Aufgabe2 ausführen müssen, dann müssen wir für jeden Auftrag prüfen, ob die dafür notwendige Aufgabe bereits ausgeführt wurde oder nicht. Und es ist nicht notwendig, zu prüfen, ob dieser Auftrag jetzt gerade geöffnet ist oder kurz davor oder in Kürze geöffnet wird.

 
peshihod:


Ein paar Bäume werden mit einem Bagger ausgegraben! Welchen Sinn hat es, die Aufträge zu trennen? Der Preis ist für alle gleich. Die Aufträge werden immer gemeinsam, in großen Mengen und zum gleichen günstigen Preis bearbeitet.

D.h. es spielt keine Rolle, wer die Aufträge erteilt, sondern es kommt auf die Parameter jedes einzelnen Auftrags an. Sie suchen nach einer leeren Stelle.

Wenn wir Aufgabe1 und Aufgabe2 ausführen müssen, dann müssen wir für jeden Auftrag prüfen, ob die dafür notwendige Aufgabe bereits ausgeführt wurde oder nicht. Und es ist nicht nötig, zu prüfen, ob dieser Auftrag jetzt gerade geöffnet ist, oder erst vor kurzem, oder ob er bald geöffnet wird.

Es werden ein paar Bäume mit einem Bagger ausgegraben! ----------- Welche einfachere Möglichkeit gibt es?

Welchen Sinn hat die Aufteilung von Aufträgen? -------------- Ich muss meine Aufträge in Boje und Verkauf aufteilen. Oder meinen Sie die Bearbeitung der Aufträge? Geben Sie mir wenigstens einen Tipp, wie ich das Skript vereinfachen kann?

Stano, ich teste es jetzt, alles funktioniert. Warum hat es im 1. Test nicht geklappt, hmm... Vielleicht, weil es einen Computer-Neustart gab ... Aber nach einem geplanten Neustart lächelte der Roboter (und arbeitete). Welche Möglichkeiten gibt es, warum es dann nicht funktioniert hat? Vielleicht wird in Zukunft eine ähnliche Störung auftreten.

 

Einen guten Tag an alle.

Ich habe folgende Frage. Angenommen, es gibt einen Indikator XXXXXXX (Name spielt keine Rolle)

Leider habe ich den Quellcode des Indikators nicht. Daher verstehe ich nicht, worauf sie beruht)

Kann ich einen Expert Advisor entwickeln, der auf den Signalen des XXXXXXXXX-Indikators für die Eröffnung von Kauf- und Verkaufsaufträgen basiert?

Hier ist ein Beispiel für einen Screenshot

 
FreeSerfer:

Einen guten Tag an alle.

Ich habe folgende Frage. Angenommen, es gibt einen Indikator XXXXXXX (Name spielt keine Rolle)

Leider habe ich den Quellcode des Indikators nicht. Daher verstehe ich nicht, worauf sie beruht)

Kann ich einen Expert Advisor entwickeln, der auf den Signalen des XXXXXXXXX-Indikators für die Eröffnung von Kauf- und Verkaufsaufträgen basiert?

Hier ist ein Beispiel für einen Screenshot


Ja, vielleicht. Ich kann sogar erraten, welche Art von Truthahn... :-)))
 

Bitte beraten Sie mich. Wie kann ich diesen Roboter dazu bringen, in 20 Sekunden zu kaufen?

Ich möchte nicht, dass er in 20 Sekunden kauft, dann ist der Preis weitere 20 Sekunden wert, so dass er nur in 40 Sekunden gewinnt.

int start()
{

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point, "Order #", 0); // Kaufauftrag eröffnen
Sleep(20000); // Timer für 20 Sekunden

return(0);
}

 
Ein Skript in einer Schleife muss nach Zeit und nicht nach Ticks arbeiten.