Ich kämpfe mit einer Frage, bitte sagen Sie mir, wie ich sie lösen kann.
Die Idee ist die folgende: Ich ziehe eine Linie am vorherigen Maximum der Kerze. Ich möchte, dass die Linie in Abhängigkeit vom vorherigen Höchstwert verschoben wird.
Wer hindert mich daran, den Zeilenpreis auf der Zecke zu ändern, wenn ich ihn brauche?
Können Sie mir bitte sagen, wie MT5 aus der Historie den Preis und die Zeit des ersten Handels beim Öffnen einer Position und den Preis und die Zeit des ersten Handels beim Schließen dieser Position kennt? Der Zweck ist es, ein Array von Einstiegspunkten aus der Geschichte zu erhalten, weil ich manchmal Aktien, wenn der Handel manuell, so dass ich zu verstehen, wenn es effektiv ist oder nicht wollen. Ich weiß nichts über Handelsoperationen, ich verwende eine Klasse, in der diese Funktionen nicht implementiert wurden :(
2. Einen Preis festlegen, nachdem das Objekt erstellt wurde
Hallo Namensvetter!)
void OnTick()
{
//---
double o1 = iOpen(Symbol(),Period(),1);
double h1 = iHigh(Symbol(),Period(),1);
double l1 = iLow(Symbol(),Period(),1);
double c1 = iClose(Symbol(),Period(),1);
double c0 = iClose(Symbol(),Period(),0);
double rt = 0;
double rs1 = 0;
double rs2 = 0;
rt=MathAbs(c1-o1)/_Point; //размер тела свечи
rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи
rs2=MathAbs(l1-c1)/_Point; // размер нижней тени свечи
ObjectDelete(0,"HL");
if ((rs1>=rt)&&(c1>o1)) //[для ростовых свечей] условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же свечи, то...
{
double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум
ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию
}
ObjectDelete(0,"lL");
if ((rs2>=rt)&&(c1<o1)) // [для падающих свечей]условие для построения уровней (если нижняя тень предыдущей свечи, больше, или равна телу этой же свечи, то...
{
double PRL=iLow(Symbol(),_Period,1); // то это будет минимум
ObjectCreate(0,"lL",OBJ_HLINE,0,_Period,PRL); // и строим по этому минимум, горизонтальную линию
}
}
Ich habe Option 1 in Betracht gezogen, etwas in der Nähe. Aber irgendwie geht es nicht mit rechten Dingen zu: Erst läuft alles nach Plan, dann gerät es ins Trudeln.
Nun, irgendwie schon, ja. Wenn man die Bedingungen nur ein wenig erweitert, gibt es ein Problem. Es wird eine Linie gezogen, die wie folgt lautet: Wenn es kein neues Hoch/Tief gibt, wird sie gespeichert.
Nun, irgendwie schon, ja. Wenn man die Bedingungen nur ein wenig erweitert, gibt es ein Problem. Es wird eine Linie gezogen, die wie folgt lautet: Wenn es kein neues Hoch/Tief gibt, wird sie gespeichert.
Ich weiß nicht, wer hindert Sie daran, eine weitere Zeile für Low... hinzuzufügen?
Aleksey Vyazmikin: Bitte teilen Sie mir mit, wie ich den Preis und die Uhrzeit des ersten Geschäfts bei der Eröffnung einer Position und den Preis und die Uhrzeit des ersten Geschäfts bei der Schließung dieser Position aus der Historie ermitteln kann. Mein Ziel ist es, ein Array von Einstiegspunkten aus der Historie zu erhalten, weil ich manchmal Aktien beim manuellen Handel, so möchte ich wissen, ob es effektiv ist oder nicht. Ich weiß nichts über den Handel - ich verwende eine Klasse, in der diese Funktionen nicht implementiert wurden :(
Überprüfen Sie die EigenschaftDEAL_ENTRY_IN oder DEAL_ENTRY_OUT, um in den Markt ein- oder auszusteigen und den Preis und die Zeit dieses Handels zu übernehmen.
Nehmen Sie Bestellungen auf. Beim Index 0 handelt es sich um einen Markteintritt, bei OrdersTotal()-1 um einen Marktaustritt.
Am besten ist es, beides zu nehmen. Der Punkt ist, dass bei einer Positionseröffnung mit Slippage der Abschlusspreis ≠ der Orderpreis ist. Nehmen Sie also, was Sie brauchen.
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
Guten Tag!
Ich kämpfe mit einer Frage, bitte sagen Sie mir, wie ich sie lösen kann.
Die Idee ist die folgende: Ich ziehe eine Linie am vorherigen Maximum der Kerze. Ich möchte, dass die Linie in Abhängigkeit vom vorherigen Höchstwert verschoben wird.
Wer hindert mich daran, den Zeilenpreis auf der Zecke zu ändern, wenn ich ihn brauche?
Es gibt 2 Optionen
Hallo Namensvetter!)
void OnTick() { //--- double o1 = iOpen(Symbol(),Period(),1); double h1 = iHigh(Symbol(),Period(),1); double l1 = iLow(Symbol(),Period(),1); double c1 = iClose(Symbol(),Period(),1); double c0 = iClose(Symbol(),Period(),0); double rt = 0; double rs1 = 0; double rs2 = 0; rt=MathAbs(c1-o1)/_Point; //размер тела свечи rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи rs2=MathAbs(l1-c1)/_Point; // размер нижней тени свечи ObjectDelete(0,"HL"); if ((rs1>=rt)&&(c1>o1)) //[для ростовых свечей] условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же свечи, то... { double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию } ObjectDelete(0,"lL"); if ((rs2>=rt)&&(c1<o1)) // [для падающих свечей]условие для построения уровней (если нижняя тень предыдущей свечи, больше, или равна телу этой же свечи, то... { double PRL=iLow(Symbol(),_Period,1); // то это будет минимум ObjectCreate(0,"lL",OBJ_HLINE,0,_Period,PRL); // и строим по этому минимум, горизонтальную линию } }Ich habe Option 1 in Betracht gezogen, etwas in der Nähe. Aber irgendwie geht es nicht mit rechten Dingen zu: Erst läuft alles nach Plan, dann gerät es ins Trudeln.
Und wer hindert Sie daran, bei Bedarf einfach den Linienpreis auf den Ticks zu ändern?
Nun, irgendwie schon, ja. Wenn man die Bedingungen nur ein wenig erweitert, gibt es ein Problem. Es wird eine Linie gezogen, die wie folgt lautet: Wenn es kein neues Hoch/Tief gibt, wird sie gespeichert.
Nun, irgendwie schon, ja. Wenn man die Bedingungen nur ein wenig erweitert, gibt es ein Problem. Es wird eine Linie gezogen, die wie folgt lautet: Wenn es kein neues Hoch/Tief gibt, wird sie gespeichert.
Ich weiß nicht, wer hindert Sie daran, eine weitere Zeile für Low... hinzuzufügen?
Sie können eine ganze Reihe von Linien oder anderen Objekten hinzufügen und damit jedes Low und High markieren. Wo liegt das Problem...?
Bitte teilen Sie mir mit, wie ich den Preis und die Uhrzeit des ersten Geschäfts bei der Eröffnung einer Position und den Preis und die Uhrzeit des ersten Geschäfts bei der Schließung dieser Position aus der Historie ermitteln kann. Mein Ziel ist es, ein Array von Einstiegspunkten aus der Historie zu erhalten, weil ich manchmal Aktien beim manuellen Handel, so möchte ich wissen, ob es effektiv ist oder nicht. Ich weiß nichts über den Handel - ich verwende eine Klasse, in der diese Funktionen nicht implementiert wurden :(
HistorySelectByPosition wird Ihnen helfen
Dann gibt es mehrere Möglichkeiten:
Ich weiß nicht, wer hindert Sie daran, eine weitere Zeile für Low... hinzuzufügen?
Sie können eine ganze Reihe von Linien oder anderen Objekten hinzufügen und damit jedes Low und High markieren. Wo liegt das Problem...?
Ja! Es funktioniert einwandfrei! Danke Mihail!
Und wenn Sie die untere Zeile durchstochen haben und sie nach dem Durchstechen löschen müssen, wie:
Oder?
Ja! Es funktioniert, wie es sollte! Danke Mihail!
Und wenn die untere Zeile gestanzt ist und Sie sie löschen müssen, wenn sie gestanzt ist, wie:
Oder?
Das Programm verwendet nur zwei Zeilen zur Hervorhebung von Ebenen. Warum löschen und dann neu anlegen, wenn man sie einfach auf 0 setzen kann...?
Die Linie wird auf dem Diagramm nicht sichtbar sein... Und dann können Sie es wieder zeigen:
lLine.Price(0, PRL);Das Programm verwendet nur zwei Zeilen zur Hervorhebung der Stufen. Warum löschen und dann neu erstellen, wenn man sie einfach auf 0 setzen kann?
Die Linie wird auf dem Diagramm nicht sichtbar sein... Und dann können Sie es wieder zeigen:
Etwa so? Oder ist es notwendig, etwas anderes in OnInit zu deklarieren?