Potete dirmi come selezionare un oggetto quando viene creato, in modo che non perda la sua selezione e non si selezioni quando l'utente lo deseleziona. Era facile nel quarto, ma non funziona nel quinto.
Come potete vedere, durante la creazione, possiamo selezionare o non selezionare l'oggetto che si sta creando e non cambierà più e non ci sarà alcun riferimento ad esso, ma non funziona nel quinto, lo crea senza selezione.
Come rendere mql5 in modo che l'oggetto possa essere selezionato alla creazione e poi gestirlo manualmente quando necessario - selezionare/non selezionare
In MetaTrader5 è possibile generare un EA in 3 blocchi. 1 blocco dà segnali da un indicatore o da più indicatori. 2 barre di trascinamento del blocco. 3 rischi di blocco.
2. è possibile correggere il codice in modo che i trade siano aperti in entrambe le direzioni (ora, per esempio, se viene aperto un trade di acquisto, il trade di vendita non viene aperto finché il trade di acquisto non viene chiuso)
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Potete dirmi come selezionare un oggetto quando viene creato, in modo che non perda la sua selezione e non si selezioni quando l'utente lo deseleziona. Era facile nel quarto, ma non funziona nel quinto.
Lo era, e funzionava benissimo:
if(ObjectFind(chart_ID,nm)!=0) {
ObjectCreate(chart_ID,nm,OBJ_HLINE,0,0,0);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
...
}
ObjectSetDouble(chart_ID,nm,OBJPROP_PRICE,p);
}
Come potete vedere, durante la creazione, possiamo selezionare o non selezionare l'oggetto che si sta creando e non cambierà più e non ci sarà alcun riferimento ad esso, ma non funziona nel quinto, lo crea senza selezione.
Come rendere mql5 in modo che l'oggetto possa essere selezionato alla creazione e poi gestirlo manualmente quando necessario - selezionare/non selezionare
Beh, lo è, ma l'icona non si distingue
if(ObjectFind(0,nm)!=0) {
ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0);
ObjectSetInteger(0,nm,OBJPROP_COLOR,col);
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false);
ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt);
}
ObjectSetDouble(0,nm,OBJPROP_PRICE,p);
ObjectSetInteger(0,nm,OBJPROP_TIME,t);
}
Beh, lo è, ma l'icona non è evidenziata
if(ObjectFind(0,nm)!=0) {
ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0);
ObjectSetInteger(0,nm,OBJPROP_COLOR,col);
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false);
ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt);
}
ObjectSetDouble(0,nm,OBJPROP_PRICE,p);
ObjectSetInteger(0,nm,OBJPROP_TIME,t);
}
Tutto è evidenziato:
Tutto si distingue:
Ho notato una strana caratteristica, se la imposti in questo modo, le linee non sono evidenziate quando crei
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Ma se è il contrario, non ci sono problemi di selezione:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Per qualche motivo, la sostituzione dei sommatori cambia la somma?
Ho notato una strana caratteristica, se la imposti in questo modo, le linee non sono evidenziate quando crei
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Ma se si fa il contrario, allora non c'è nessun problema di selezione:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Per qualche ragione, la sostituzione dei sommatori cambia la somma?
A quanto pare, quando
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
ultimo comando, il grafico viene aggiornato
Ho notato una strana caratteristica, se la imposti in questo modo, le linee non sono evidenziate quando crei
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Ma se si fa il contrario, allora non c'è nessun problema di selezione:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Per qualche motivo, la sostituzione dei sommatori cambia la somma?
Poi lo si seleziona (ma l'oggetto non è selezionabile), di conseguenza non viene selezionato nulla
Poi lo si imposta come selezionabile. Ma è "troppo tardi per bere il borjomi" ...
Quindi ecco il codice completo:
string tooltxt="",bool sel=false,bool back=false) {
if(ObjectFind(chart_ID,nm)<0) {
ObjectCreate(chart_ID,nm,OBJ_VLINE,0,tm,0);
ObjectSetInteger(chart_ID,nm,OBJPROP_TIME,tm);
ObjectSetInteger(chart_ID,nm,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
// ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
ObjectSetString(chart_ID,nm,OBJPROP_TOOLTIP,tooltxt);
ObjectSetInteger(chart_ID,nm,OBJPROP_COLOR,cl);
ObjectSetInteger(chart_ID,nm,OBJPROP_WIDTH,wd);
ObjectSetInteger(chart_ID,nm,OBJPROP_STYLE,st);
}
}
Sì, ricontrollato su tutti i tipi di oggetto, e dovete mettere prima"SELECTABLE" e poi"SELECTED".
Grazie per la vostra partecipazione e il vostro aiuto nella risoluzione!
Posso suggerire 1. Posso aggiungere indicatori personalizzati in 1 blocco? Se sì, come devo fare?
2. è possibile correggere il codice in modo che i trade siano aperti in entrambe le direzioni (ora, per esempio, se viene aperto un trade di acquisto, il trade di vendita non viene aperto finché il trade di acquisto non viene chiuso)