Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 509
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Gente, suggerite un robot, uno che usi Martin.
Per esempio, apro un ordine e il robot continua a lavorare...
Gente, suggerite un robot, uno che usi Martin.
Per esempio, apro un ordine e il robot continua a lavorare...
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);
}
}
Cari membri del forum, aiutatemi a capire, i è la candela attuale, perché i-2 non vuole disegnare una linea, il tester si ferma quando si esegue.
Cari membri del forum, aiutatemi a capire, i è la candela attuale, perché i-2 non vuole disegnare una linea, il tester si ferma quando si esegue.
Se stai cercando di disegnare una linea 2 candele prima della i, allora devi aggiungere 2, non sottrarre, perché la numerazione delle candele va da destra a sinistra, 0-barra corrente.
Se cercate di disegnare delle linee su una barra che non esiste ancora (-2), l'indice della matrice non può essere negativo. Per farlo, calcolate il tempo della barra necessaria, ad esempio Time[0]+2*(Time[0]-Time[1])
Se stai cercando di disegnare una linea 2 candele avanti alla candela i-esima, allora devi aggiungere 2, non sottrarre, perché la numerazione delle candele va da destra a sinistra, 0-barra corrente.
Se cercate di disegnare delle linee su una barra che non esiste ancora (-2), l'indice della matrice non può essere negativo. Per farlo, dovete calcolare il tempo della barra che volete, per esempio Time[0]+2*(Time[0]-Time[1])
Grazie mille, la linea avrebbe dovuto essere disegnata su una barra che non esiste (-2)
Grazie mille, la linea avrebbe dovuto essere disegnata su una barra che non esiste (-2)
Perché altrimenti ci sarebbe un prezzo. Dopo tutto, l'oggetto è basato sul tempo.
Grazie mille, la linea avrebbe dovuto essere costruita su una barra (-2) che non esiste
Per favore
Ecco un'altra "bella" soluzione
Time[0]+Period()*60*2 //60 переводим в секунды, 2 кол-во баров
Gente, aiutatemi a cominciare. Ho bisogno di aprire un ordine.
input int TakeProfit = 30;
input double StartLot = 0.01;
input double summ=false; //true, открываем позиции в обе стороны
input int Slippage = 30; // установим значение проскальзывания
void OnTick()
{
if(summ) { // открываем однупозицию, покупка.
OrderSend(
Symbol(),
OP_BUY,
StartLot,
NormalizeDouble(NormalizeDouble(Ask,_Digits),_Digits),
Slippage,
0,
TakeProfit,
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
}else{
OrderSend(
Symbol(),
OP_BUY,
StartLot,
NormalizeDouble(NormalizeDouble(Ask,_Digits),_Digits),
Slippage,
0,
TakeProfit,
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
OrderSend(
Symbol(),
OP_SELL,
StartLot,
NormalizeDouble(NormalizeDouble(Bid,_Digits),_Digits),
Slippage,
0,
TakeProfit,
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
}
}
Non funziona, cosa c'è che non va?
Scrivere il codice che aprirà solo una posizione. Questo è tutto ciò di cui hai bisogno...
Gente, aiutatemi a cominciare. Ho bisogno di aprire un ordine.
Non funziona, cosa c'è che non va?
Scrivere il codice che aprirà solo una posizione. Questo è tutto ciò di cui hai bisogno...
TakeProfit non è specificato correttamente nell'invio dell'ordine. Dovresti specificare il prezzo, non il numero di nano-pip di profitto. Correggere a Ask+TakeProfit*Point()
Ask, Bid non deve essere normalizzato....
OrderSend(
Symbol(),
OP_BUY,
StartLot,
Ask,
Slippage,
0,
Ask+TakeProfit*Point(),
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);