Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 511

 
AlexMikash:

Buona giornata, cari signori!

Ho bisogno di chiamare le variabili: massimo del giorno, minimo del giorno, prezzo di chiusura e di apertura del giorno corrente, e il prezzo di apertura del giorno successivo!

Saluti, AlexMikash

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

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

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

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//definire l'apertura.

 
woin2110:

se ((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//aprire ordine Buy.

se (comprare>0)
{
Alert ("L'ordine BuyStop è stato impostato ",buy);
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//aprire ordine Sell.
se (vendere>0)
{
Alert ("SellStop order set ",sell);
}
if (DayOfWeek()==5 && Hour()==22) //cancella gli ordini pendenti e aperti il venerdì alle 23:00 ora del server
{
se (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(Ticket,lot,Close price, slippage in punti, colore della freccia di chiusura sul grafico)

Chiudere l'ordine di mercato per vendere.
OrderDelete(sell);//chiude il limite di vendita.
}
se (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(biglietto, lotto, prezzo di chiusura, slippage in punti, colore della freccia di chiusura sul grafico)

Chiudere l'ordine di mercato per comprare.
OrderDelete(buy);//chiude il limite di acquisto.
ritorno(0);
}
}
}

Chi può dirmi perché non chiude gli ordini e non cancella i limiti?

almeno

come questo:

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:

almeno

come questo:

Grazie
 
Esiste una risorsa/piattaforma che permette di testare gli EA in più valute?
 
evillive:
Il robot viene scaricato dalla memoria quando viene rimosso dal grafico e quando il terminale viene chiuso. Guardate almeno il manuale per un po', è molto utile e toglie un sacco di domande dal tavolo.

Non leggeranno. non guarderanno nemmeno il video. bisogna ipnotizzarli in qualche modo.....
 
Trader7777:
Esiste una risorsa/piattaforma che permette di testare gli EA in più valute?


Sì.

MT5

 
Vladon:


Sì.

MT5


Un EA scritto in MLQ4 funzionerà?
 
isn-88:

Salve. Sto cercando di capire come funzionano gli eventi. Non ho lavorato l'evento di eliminazione di un oggetto dal grafico (CHARTEVENT_OBJECT_DELETE). Rimosso sia con il mouse che attraverso la Lista degli oggetti. Costruire 600.

Per favore, ditemi cosa c'è che non va?

Uso il codice dell'aiuto

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


È strano anche per me.
 
Trader7777:

Un EA scritto in MLQ4 funzionerà?


Se si traduce il codice in mt5 allora sì.

non ci sono altri rimedi.

 
Zolotai:


Grazie. A cosa vi servono void init e deinit? Ho capito deinit, esegue solo il codice. Quando il robot parte, giusto? E init?

Come si può usare un codice. Cioè, non dovete preoccuparvi delle cinque cifre. Come faccio a sapere quali sono le mie cinque cifre al momento?

Una semplice condizione nella funzione init
double point;
int OnInit()
{
point = Point;
if(Digits % 2 == 1)// значит пятизнак
point *= 10;
}
Metalli, scorte e materie prime non contano.