Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 511

 
AlexMikash:

Bonjour, chers Messieurs !

J'ai besoin d'appeler les variables : maximum du jour, minimum du jour, prix de clôture et d'ouverture du jour courant, et le prix d'ouverture du jour suivant !

Salutations, AlexMikash

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

if(DayOfWeek()==1,2..... && Hour()==1,2....)
{
double hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//définit high
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//définit low.

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

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//définir l'ouverture.

 
woin2110:

si ((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//ouvre un ordre d'achat.

si (achat>0)
{
Alerte ("L'ordre d'achat stop a été fixé ",buy) ;
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//ouvre un ordre de vente.
si (vente>0)
{
Alert ("SellStop order set ",sell) ;
}
if (DayOfWeek()==5 && Hour()==22) //supprime les ordres en attente et ouverts le vendredi, à 23h00, heure du serveur.
{
si (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(Ticket,lot,prix de clôture, slippage en points, couleur de la flèche de clôture sur le graphique)

Fermer l'ordre de marché pour vendre.
OrderDelete(sell);//fermeture de la limite de vente.
}
si (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(Ticket, lot, prix de clôture, slippage en points, couleur de la flèche de clôture sur le graphique)

Ordre d'achat sur le marché fermé.
OrderDelete(buy);//fermeture de la limite d'achat.
retour(0) ;
}
}
}

Qui peut me dire pourquoi il ne ferme pas les ordres et ne supprime pas les limites ?

au moins

comme ça :

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:

au moins

comme ça :

Merci.
 
Existe-t-il une ressource/plateforme qui permette de tester les EA dans plusieurs devises ?
 
evillive:
Le robot est déchargé de la mémoire lorsqu'il est retiré du tableau et lorsque le terminal est fermé. Regardez au moins le manuel pendant un moment, il est très utile et permet de répondre à de nombreuses questions.

ils ne liront pas. ils ne regarderont même pas la vidéo. il faut les hypnotiser d'une manière ou d'une autre.....
 
Trader7777:
Existe-t-il une ressource/plateforme qui permette de tester les EA dans plusieurs devises ?


oui.

MT5

 
Vladon:


Oui.

MT5


Un EA écrit en MLQ4 fonctionnera-t-il ?
 
isn-88:

Bonjour. J'essaie de comprendre comment les événements fonctionnent. Je n'ai PAS travaillé l'événement de suppression d'un objet du graphique (CHARTEVENT_OBJECT_DELETE). Supprimé à la fois avec la souris et par la liste d'objets. Construire 600.

Dites-moi ce qui ne va pas.

J'utilise le code de l'aide

#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);
}
}


C'est bizarre pour moi aussi.
 
Trader7777:

Un EA écrit en MLQ4 fonctionnera-t-il ?


Si vous traduisez le code en mt5, oui.

il n'y a pas d'autres remèdes.

 
Zolotai:


Merci. Pourquoi avez-vous besoin de void init et deinit ? Je comprends deinit, ça n'exécute que du code. Quand le robot démarre, c'est ça ? Et init ?

Comment utiliser un code. C'est-à-dire que vous n'avez pas à vous soucier des cinq chiffres. Comment puis-je savoir quels sont mes cinq chiffres en ce moment ?

Une simple condition dans la fonction init
double point;
int OnInit()
{
point = Point;
if(Digits % 2 == 1)// значит пятизнак
point *= 10;
}
Les métaux, les stocks et les matières premières ne comptent pas.