Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 511

 
AlexMikash:

Guten Tag, meine Damen und Herren!

Ich muss die Variablen aufrufen: Tagesmaximum, Tagesminimum, Schluss- und Eröffnungskurs des aktuellen Tages und den Eröffnungskurs des nächsten Tages!

Mit freundlichen Grüßen, AlexMikash

https://docs.mql4.com/ru/series

if(TagderWoche()==1,2..... && Stunde()==1,2....)
{
double hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define high
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define low.

/////////////////////////////////////////////////////////////////////////////////////////////////

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define opening.

 
woin2110:

wenn ((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//Kaufauftrag eröffnen.

wenn (Kauf>0)
{
Alert ("Die BuyStop-Order wurde gesetzt ",buy);
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//Offener Verkaufsauftrag.
wenn (Verkauf>0)
{
Alert ("SellStop order set ",sell);
}
if (DayOfWeek()==5 && Hour()==22) //Löschen von ausstehenden und offenen Aufträgen am Freitag, 23:00 Serverzeit
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(Ticket,lot,Close price, Slippage in Punkten, Farbe des Close-Pfeils auf dem Chart)

Marktauftrag zum Verkauf schließen.
OrderDelete(sell);//Schließen des Verkaufslimits.
}
if (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(Ticket, Lot, Schlusskurs, Slippage in Punkten, Farbe des Schlusspfeils auf dem Chart)

Marktauftrag zum Kauf schließen.
OrderDelete(buy);//Schließen des Kauflimits.
zurück(0);
}
}
}

Wer kann mir sagen, warum er Aufträge nicht schließt und Limits nicht löscht?

mindestens

wie diese:

if ((hi-low)<=max_koridor_v_punktah)
{
buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//открытие ордера на покупку.

if (buy>0) 
{
Alert ("Установлен ордер BuyStop ",buy);
}
 sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//открытие ордера на продажу.
if (sell>0) 
{
Alert ("Установлен ордер SellStop ",sell);
}
if (DayOfWeek()==5 && Hour()==22) //удаляем отложенные и открытые ордера в пятницу, в 23:00 по серверному времени 
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет 
стрелки закрытия на графике)зыкрытие рыночного ордера на продажу.
OrderDelete(sell);//закрытие лимиток на продажу.
}
if (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки 
закрытия на графике)зыкрытие рыночного ордера на покупку.
OrderDelete(buy);//закрытие лимиток на покупку.
return(0); 
}
} 
}
далее int buy,sell; должно быть за пределами старта
Да и лимиток тут нет, поэтому закрыть он их и не должен. 
 
Vladon:

mindestens

wie diese:

Dankeschön
 
Gibt es eine Ressource/Plattform, die das Testen von EAs in mehreren Währungen ermöglicht?
 
evillive:
Der Roboter wird aus dem Speicher gelöscht, wenn er aus dem Diagramm entfernt wird und wenn das Terminal geschlossen wird. Schauen Sie zumindest eine Weile in das Handbuch, es ist sehr nützlich und nimmt viele Fragen vom Tisch.

sie werden nicht lesen. sie werden sich nicht einmal das video ansehen. man muss sie irgendwie hypnotisieren.....
 
Trader7777:
Gibt es eine Ressource/Plattform, die das Testen von EAs in mehreren Währungen ermöglicht?


ja.

MT5

 
Vladon:


Ja.

MT5


Wird ein in MLQ4 geschriebener EA funktionieren?
 
isn-88:

Hallo. Ich versuche herauszufinden, wie die Ereignisse funktionieren. Ich habe das Ereignis des Löschens eines Objekts aus dem Diagramm (CHARTEVENT_OBJECT_DELETE) NICHT bearbeitet. Entfernt sowohl mit der Maus als auch über die Objektliste. Bauen Sie 600.

Bitte sagen Sie mir, was los ist?

Ich verwende den Code aus der Hilfe

#define KEY_NUMPAD_5 12
#define KEY_LEFT 37
#define KEY_UP 38
#define KEY_RIGHT 39
#define KEY_DOWN 40
#define KEY_NUMLOCK_DOWN 98
#define KEY_NUMLOCK_LEFT 100
#define KEY_NUMLOCK_5 101
#define KEY_NUMLOCK_RIGHT 102
#define KEY_NUMLOCK_UP 104
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
Print("Запущен эксперт с именем ",MQLInfoString(MQL_PROGRAM_NAME));
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, // идентификатор события
const long& lparam, // параметр события типа long
const double& dparam, // параметр события типа double
const string& sparam) // параметр события типа string
{
//--- нажатие левой кнопкой мышки на графике
if(id==CHARTEVENT_CLICK)
{
Print("Координаты щелчка мышки на графике: x = ",lparam," y = ",dparam);
}
//--- нажатие мышкой на графическом объекте
if(id==CHARTEVENT_OBJECT_CLICK)
{
Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'");
}
//--- нажатие кнопки на клавиатуре
if(id==CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case KEY_NUMLOCK_LEFT: Print("Нажата KEY_NUMLOCK_LEFT"); break;
case KEY_LEFT: Print("Нажата KEY_LEFT"); break;
case KEY_NUMLOCK_UP: Print("Нажата KEY_NUMLOCK_UP"); break;
case KEY_UP: Print("Нажата KEY_UP"); break;
case KEY_NUMLOCK_RIGHT: Print("Нажата KEY_NUMLOCK_RIGHT"); break;
case KEY_RIGHT: Print("Нажата KEY_RIGHT"); break;
case KEY_NUMLOCK_DOWN: Print("Нажата KEY_NUMLOCK_DOWN"); break;
case KEY_DOWN: Print("Нажата KEY_DOWN"); break;
case KEY_NUMPAD_5: Print("Нажата KEY_NUMPAD_5"); break;
case KEY_NUMLOCK_5: Print("Нажата KEY_NUMLOCK_5"); break;
default: Print("Нажата какая-то неперечисленная клавиша");
}
ChartRedraw();
}
//--- удален объект
if(id==CHARTEVENT_OBJECT_DELETE)
{
Print("Удален объект с именем ",sparam);
}
//--- создан объект
if(id==CHARTEVENT_OBJECT_CREATE)
{
Print("Создан объект с именем ",sparam);
}
//--- перемещен объект или изменены координаты точек привязки
if(id==CHARTEVENT_OBJECT_DRAG)
{
Print("Изменение точек привязки объекта с именем ",sparam);
}
//--- изменен текст в поле ввода графического объекта Edit
if(id==CHARTEVENT_OBJECT_ENDEDIT)
{
Print("Изменен текст в объекте Edit ",sparam);
}
}


Für mich ist das auch seltsam.
 
Trader7777:

Wird ein in MLQ4 geschriebener EA funktionieren?


Wenn Sie den Code in mt5 übersetzen, ja.

es gibt keine anderen Abhilfemaßnahmen.

 
Zolotai:


Ich danke Ihnen. Wozu brauchen Sie void init und deinit? Ich verstehe deinit, es führt nur Code aus. Wenn der Roboter startet, richtig? Und init?

Wie können Sie einen Code verwenden. Das heißt, Sie müssen sich nicht um die fünf Ziffern kümmern. Woher weiß ich, wie hoch meine fünf Ziffern im Moment sind?

Eine einfache Bedingung in der init-Funktion
double point;
int OnInit()
{
point = Point;
if(Digits % 2 == 1)// значит пятизнак
point *= 10;
}
Metalle, Vorräte und Rohstoffe zählen nicht.