Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 727
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
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)