Come posso confrontare il simbolo del grafico attuale con quello che mi serve?
case1 : // кейс для открытия Buy по AUD/USDif(Symbol() == (как обозначить нужный символ для сравнения?)) // если символ текущего графика AUD/USD открываем сделку
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_BUY,Lot(),Ask,0,0,0); // Открытие ордера//----------------------------------------------------------------------------------------------------
В тоже время советник запущен на другом графике и пытается произвести открытие ордера, цены не совпадают и соответственно вылетает ошибка - неверные цены
case2 : // кейс для открытия Bay по GBP/USD if(Symbol() == (как обозначить нужный символ для сравнения?))
// если символ текущего графика не AUDUSD то выходим
{
RefreshRates();
Open_Order = OrderSend("GBPUSD",OP_SELL,Lot(),Bid,0,0,0); // Открытие ордера
Т.е. надо ему дать понять, что тот или иной кейс принадлежит тому или другому графику, но чтот я пока не придумал как
Ho bisogno che il programma apra un ordine su AUD/USD, quindi apre l'ordine (funziona correttamente). Tuttavia, il programma cerca di aprire l'ordine su altri grafici aperti(il robot è in esecuzione su diverse coppie di valute) e restituisce un errore di prezzo per le altre coppie di valute dove l'Expert Advisor è in esecuzione. Devo fare un confronto e se Symbol() == è uguale al simbolo su cui l'ordine dovrebbe essere aperto, allora lo apriamo e se no, usciamo. Non ho trovato da nessuna parte come impostare il nome del simbolo dal terminale e fare il confronto.
Come posso confrontare il simbolo del grafico attuale con quello che mi serve?
Ho bisogno che il programma apra un ordine su AUD/USD, quindi apre l'ordine (funziona correttamente). Tuttavia, il programma cerca di aprire l'ordine su altri grafici aperti(il robot è in esecuzione su diverse coppie di valute) e restituisce un errore di prezzo per le altre coppie di valute dove l'Expert Advisor è in esecuzione. Devo fare un confronto e se Symbol() == è uguale al simbolo su cui l'ordine dovrebbe essere aperto, allora lo apriamo e se no, usciamo. Non ho trovato da nessuna parte come impostare il nome del simbolo dal terminale e fare il confronto.
C'è un esempio di come ottenere i prezzi giusti alla fine.
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. Если функция используется для получения информации о последнем тике, то лучше использовать SymbolInfoTick(). Вполне возможно, что по данному символу с...
Grazie, ma non ho bisogno dei prezzi giusti. I prezzi vanno bene. Ho bisogno che l'EA non apra un ordine se la coppia di valute alla quale l'ordine viene aperto non è la stessa del grafico aperto corrente al quale il robot è collegato. Forse possiamo implementare questo aprendo un nuovo grafico con un timeframe, aprire un ordine desiderato in esso e poi chiudere il grafico.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
In qualche modo sono riuscito a farlo - mentre mi divertivo e cambiavo tutto correttamente - non funziona niente))
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
L'ho fatto in qualche modo, e mentre mi rallegravo e cambiavo tutto, non funzionava più niente))
L'Expert Advisor, lo script, l'indicatore non si applicano, ma lavorano nella finestra corrente. E le variabili globali di diverse finestre / grafici non si sovrappongono. Pertanto, dovrebbe funzionare)
string AUDUSD; // Questa è una variabile di testo, che inizialmente è vuota, cioè uguale a ""
(Symbol() == AUDUSD) // questa stringa non ha niente a che fare con la variabile AUDUSD.
Symbol
Возвращает имя символа текущего графика.
stringSymbol();
Возвращаемое значение
Значение системной переменной _Symbol, в которой хранится имя символа текущего графика.
Ma i criteri di apertura degli ordini non dovrebbero essere gli stessi per diversi strumenti/finestre. Se sono uguali, si apriranno effettivamente in tutte le finestre.
Non ho la minima voglia di andare su Google o leggere, quindi ho aperto il file D:\1.txt
Qual è il modo migliore per farlo nell'indicatore, per avviare il timer 1s o in OnCalculate per confrontare il tempo (secondi)
<1sec, uscire
o ci sono altre opzioni di lavoro?
necessità di aggiornare HistorySelect per il mese + lavoro con gli oggetti
o in OnCalculate confrontare il tempo (secondi)
<1sec, uscita
Il problema è con il datetime: non può essere meno di un secondo.
confrontare almeno i millisecondi
cosa è meglio fare nell'indicatore, per avviare un timer 1s o in OnCalculate per confrontare il tempo (secondi)
non è importante dove farlo, l'unica cosa che OnCalculate è legato ai tick - non ci sarà nessun tick e quindi non ci sarà nessuna chiamata OnCalculate
è necessario aggiornare HistorySelect per un mese + lavorare con gli oggetti
HistorySelect è veloce, ma quando si va a spostare o creare oggetti, ci possono essere dei ritardi, se gli oggetti superano i 1000 +
e voi modificherete questi oggetti ogni secondo
(inserisci il tuo codice e le insidie appariranno ))))
un secondo è sufficiente per me e meno spesso finché non arriva il tick
per me visualizzare le operazioni sul grafico + il risultato dell'operazione su barre, e alcune informazioni semi-statiche come la tendenza globale
può prezzo guardare il cambiamento da
o il tempo della seconda opzione
Per favore, ditemelo!
Come posso confrontare il simbolo del grafico attuale con quello che mi serve?
Ho bisogno che il programma apra un ordine su AUD/USD, quindi apre l'ordine (funziona correttamente). Tuttavia, il programma cerca di aprire l'ordine su altri grafici aperti(il robot è in esecuzione su diverse coppie di valute) e restituisce un errore di prezzo per le altre coppie di valute dove l'Expert Advisor è in esecuzione. Devo fare un confronto e se Symbol() == è uguale al simbolo su cui l'ordine dovrebbe essere aperto, allora lo apriamo e se no, usciamo. Non ho trovato da nessuna parte come impostare il nome del simbolo dal terminale e fare il confronto.
Per favore, ditemelo!
Come posso confrontare il simbolo del grafico attuale con quello che mi serve?
Ho bisogno che il programma apra un ordine su AUD/USD, quindi apre l'ordine (funziona correttamente). Tuttavia, il programma cerca di aprire l'ordine su altri grafici aperti(il robot è in esecuzione su diverse coppie di valute) e restituisce un errore di prezzo per le altre coppie di valute dove l'Expert Advisor è in esecuzione. Devo fare un confronto e se Symbol() == è uguale al simbolo su cui l'ordine dovrebbe essere aperto, allora lo apriamo e se no, usciamo. Non ho trovato da nessuna parte come impostare il nome del simbolo dal terminale e fare il confronto.
C'è un esempio di come ottenere i prezzi giusti alla fine.
Grazie, ma non ho bisogno dei prezzi giusti. I prezzi vanno bene. Ho bisogno che l'EA non apra un ordine se la coppia di valute alla quale l'ordine viene aperto non è la stessa del grafico aperto corrente al quale il robot è collegato. Forse possiamo implementare questo aprendo un nuovo grafico con un timeframe, aprire un ordine desiderato in esso e poi chiudere il grafico.
No, non funziona così.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
In qualche modo sono riuscito a farlo - mentre mi rallegravo e cambiavo tutto correttamente - non funziona più niente))
No, non funziona così.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
In qualche modo sono riuscito a farlo - mentre mi divertivo e cambiavo tutto correttamente - non funziona niente))
stringa AUDUSD = "AUDUSD";
Almeno così.
No, non funziona così.
Il mio programma accede al grafico corrente, gli assegna il nome dello strumento corrente e lo sigilla in una variabile, poi confronta il valore di questa variabile con il simbolo corrente sul grafico. In realtà lo confronta con se stesso)))) Ho bisogno di convertire in qualche modo Sympol() in qualsiasi valore con cui qualsiasi altra variabile può essere confrontata. Per esempio:
AUDUSD;
(Simbolo() == AUDUSD)
L'ho fatto in qualche modo, e mentre mi rallegravo e cambiavo tutto, non funzionava più niente))
L'Expert Advisor, lo script, l'indicatore non si applicano, ma lavorano nella finestra corrente. E le variabili globali di diverse finestre / grafici non si sovrappongono. Pertanto, dovrebbe funzionare)
string AUDUSD; // Questa è una variabile di testo, che inizialmente è vuota, cioè uguale a ""
(Symbol() == AUDUSD) // questa stringa non ha niente a che fare con la variabile AUDUSD.
Ma i criteri di apertura degli ordini non dovrebbero essere gli stessi per diversi strumenti/finestre. Se sono uguali, si apriranno effettivamente in tutte le finestre.