I pulsanti sono raggruppati, perché quando si clicca su di essi, vengono eseguite alcune azioni simili. Il compito è quello di rilevare a quale gruppo di pulsanti appartiene e "inviarlo" al metodo appropriato che eseguirà determinate azioni a seconda del testo che si trova sul pulsante. Per semplificare al massimo le cose, supponiamo di dover semplicemente visualizzare il nome di un gruppo e un testo su un pulsante. E qui è dove diventa sconcertante - come otteniamo il testo del pulsante?
Al momento, il nome del pulsante ha un nome comune per un gruppo particolare + testo sul pulsante stesso. In altre parole: 1) da una sottostringa nel nome determino il gruppo a cui appartiene il pulsante, 2) passo nel metodo "next" di nuovo il nome, da cui "ottengo" il testo. Ma questa non è una soluzione ottimale, per usare un eufemismo. Più specificamente, il problema qui:
//---bool CMyApp::OnEvent(constint id,constlong &lparam,constdouble &dparam,conststring &sparam) {
if ( id == CHARTEVENT_CUSTOM ) {
if ( StringFind(sparam, "Digit") >= 0 ) {
// string text = ? (как получить текст на кнопке?)
OnClickDigit(sparam); // вместо sparam надо бы передавать textreturn(true);
} elseif ( StringFind(sparam, "Letter") >= 0 ) {
OnClickLetter(sparam); // аналогично случю выше - вместо sparam надо бы передавать textreturn(true);
}
}
return(CAppDialog::OnEvent(id, lparam, dparam, sparam));
}
Si prega di consigliare come risolvere il problema.
PS. Per sicurezza, allego il codice, in modo che, se necessario, si possa guardare "il tutto".
Il codice semplice nel tester di strategia, in modalità di visualizzazione, invece di Zig_Zag si ottiene un miracolo nell'immagine (allegato).
A condizione che in CopyClose(_Symbol,PERIOD_H1... il periodo in questa funzione non sia uguale al periodo selezionato nella finestra del tester della strategia (se è uguale, allora tutto va bene, qual è la connessione?)
È un bug? E se è così, dove andare con questo nel service desk attraverso un messaggio privato (o qui il messaggio è sufficiente)?
input int ExtDepth=13; input int ExtDeviation=5; input int ExtBackstep=3;
int zzHandle; // хэндл индикатора ZigZag //+------------------------------------------------------------------+ int OnInit() { //--- Получить хэндл индикатора ZigZag zzHandle=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep); //Расчет индикатора ZigZag //--- Нужно проверить, не были ли возвращены значения Invalid Handle if(zzHandle<0) { Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!"); } return(0); } //+------------------------------------------------------------------+ void OnTick() { //--- double Last_Price_Close[]; CopyClose(_Symbol,PERIOD_H1,0,1,Last_Price_Close); } //+------------------------------------------------------------------+
Il codice semplice nel tester di strategia, in modalità di visualizzazione, invece di Zig_Zag si ottiene un miracolo nell'immagine (allegato).
A condizione che in CopyClose(_Symbol,PERIOD_H1... il periodo in questa funzione non sia uguale al periodo selezionato nella finestra del tester della strategia (se è uguale, allora tutto va bene, qual è la connessione?)
È un bug? E se è così, dove andare con questo nel service desk attraverso un messaggio privato (o qui il messaggio è sufficiente)?
...
In service desk hanno già un messaggio simile. Ma anche scrivere.
{
uint as=iCustom(_Symbol,PERIOD_M10,"Examples\\CCI");
}
void OnTick()
{
}
L'errore si ripete?
Nella build 770, il grafico con m10 non appare, nella build precedente va bene.
Ciao, quando attacco l'indicatore al grafico ottengo
Violazione di accesso letto a 0x000000000000000001 in 'C:{File di programma\Alpari NZ MT5\MQL5\Indicators\indicators.ex5'come faccio a gestirlo? costruire 770 64bit OS 7
Ciao, quando attacco l'indicatore al grafico ottengo
Violazione dell'accesso letto a 0x000000000000000001 in 'C:\Program Files\Alpari NZ MT5\MQL5\Indicators\indicators.ex5'Come posso risolvere questo problema? build 770 64bit OS 7
Pomeriggio .
Scrivete a servicedesk e allegate l'indicatore per favore. Grazie.
Salve.
Diciamo che c'è una classe che contiene diversi gruppi di pulsanti:
I pulsanti sono raggruppati, perché quando si clicca su di essi, vengono eseguite alcune azioni simili. Il compito è quello di rilevare a quale gruppo di pulsanti appartiene e "inviarlo" al metodo appropriato che eseguirà determinate azioni a seconda del testo che si trova sul pulsante. Per semplificare al massimo le cose, supponiamo di dover semplicemente visualizzare il nome di un gruppo e un testo su un pulsante. E qui è dove diventa sconcertante - come otteniamo il testo del pulsante?
Al momento, il nome del pulsante ha un nome comune per un gruppo particolare + testo sul pulsante stesso. In altre parole: 1) da una sottostringa nel nome determino il gruppo a cui appartiene il pulsante, 2) passo nel metodo "next" di nuovo il nome, da cui "ottengo" il testo. Ma questa non è una soluzione ottimale, per usare un eufemismo. Più specificamente, il problema qui:
Si prega di consigliare come risolvere il problema.
PS. Per sicurezza, allego il codice, in modo che, se necessario, si possa guardare "il tutto".
Ciao a tutti!
Il codice semplice nel tester di strategia, in modalità di visualizzazione, invece di Zig_Zag si ottiene un miracolo nell'immagine (allegato).
A condizione che in CopyClose(_Symbol,PERIOD_H1... il periodo in questa funzione non sia uguale al periodo selezionato nella finestra del tester della strategia (se è uguale, allora tutto va bene, qual è la connessione?)
È un bug? E se è così, dove andare con questo nel service desk attraverso un messaggio privato (o qui il messaggio è sufficiente)?
input int ExtDepth=13;input int ExtDeviation=5;
input int ExtBackstep=3;
int zzHandle; // хэндл индикатора ZigZag
//+------------------------------------------------------------------+
int OnInit()
{
//--- Получить хэндл индикатора ZigZag
zzHandle=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep); //Расчет индикатора ZigZag
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
if(zzHandle<0)
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
}
return(0);
}
//+------------------------------------------------------------------+
void OnTick()
{
//---
double Last_Price_Close[];
CopyClose(_Symbol,PERIOD_H1,0,1,Last_Price_Close);
}
//+------------------------------------------------------------------+
Ciao a tutti!
Il codice semplice nel tester di strategia, in modalità di visualizzazione, invece di Zig_Zag si ottiene un miracolo nell'immagine (allegato).
A condizione che in CopyClose(_Symbol,PERIOD_H1... il periodo in questa funzione non sia uguale al periodo selezionato nella finestra del tester della strategia (se è uguale, allora tutto va bene, qual è la connessione?)
È un bug? E se è così, dove andare con questo nel service desk attraverso un messaggio privato (o qui il messaggio è sufficiente)?
...C'è già un messaggio simile in Service Desk. Ma anche scrivere.
Come faccio a cancellare uno screenshot caricato sul muro in modo anonimo, mostra i miei account...
Basta spostare il mouse sulla grafica desiderata e vedrete il comando "Delete".
Salve.