Potete dirmi perché nel mio codice le variabili vol e ask non ottengono valori? Il valore zero è sempre visualizzato in Stampa. Lo spread si "blocca" normalmente, mostra il valore corretto.
Allego l'EA al grafico LTCUSD.
Qual è l'errore?
#include <Trade\SymbolInfo.mqh>
CSymbolInfo m_symbol;
int a=0,b=0,c=0,spread=0,i=0,j=0;
double x=0,y=0,z=0,m=0,ask=0;
inputint vyb=7;
bool bool_1=true,bool_2=true,bool_3=true;
string str_1="",str_2="",str_3="",name="",Text[101];
ulong vol=0;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---
name=_Symbol;
Print("текущий символ: ",name);
spread=m_symbol.Spread();
Print("спред по символу: ",spread);
vol=m_symbol.Volume();
Print("обьєм по символу ",name," - ",vol);
ask=m_symbol.Ask();
Print("Цена Аск равно ",ask);
Potete dirmi perché il mio codice non imposta vol e ask? Il valore zero è sempre visualizzato in Stampa. Lo spread si "blocca" normalmente, mostra il valore corretto.
Allego l'EA al grafico LTCUSD.
Qual è l'errore?
Dovresti applicare il metodo CSymbolInfo::Refresh o CSymbolInfo::RefreshRates prima di ottenerlo - a seconda di ciò che ti serve.
Forse puoi anche suggerire: come ottenere il nome di un simbolo usando il metodoCSymbolInfo Name? Quando provo a farlo in questo modo
Ottengo un valore booleano true nella variabile name.
Lo faccio - inizializzo la variabile della classe CSymbolInfo.
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//---
***
if(!m_symbol.Name(Symbol())) // sets symbol name
{
Print(__FILE__," ",__FUNCTION__,", ERROR: CSymbolInfo.Name");
return(INIT_FAILED);
}
RefreshRates();
***
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Refreshes the symbol quotes data |//+------------------------------------------------------------------+bool RefreshRates()
{
//--- refresh ratesif(!m_symbol.RefreshRates())
{
if(InpPrintLog)
Print(__FILE__," ",__FUNCTION__,", ERROR: ","RefreshRates error");
return(false);
}
//--- protection against the return value of "zero"if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
{
if(InpPrintLog)
Print(__FILE__," ",__FUNCTION__,", ERROR: ","Ask == 0.0 OR Bid == 0.0");
return(false);
}
//---return(true);
}
Se volete ottenere un nome (per esempio quando confrontate il simbolo di posizione con il simbolo corrente), dovete usare il metodo CSymbolInfo::Name().
Esempio di utilizzo:
//+------------------------------------------------------------------+//| Is position exists |//+------------------------------------------------------------------+bool IsPositionExists(void)
{
for(int i=PositionsTotal()-1; i>=0; i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==InpMagic)
return(true);
//---return(false);
}
L'aiuto mostra due forme di chiamata al metodo Name
Nome
Ottiene il nome dello strumento finanziario.
string Name() const
Valore restituito
Nome dello strumento finanziario.
Nome
Imposta il nome dello strumento finanziario per lavorare ulteriormente con esso.
Se si vuole ottenere un nome (ad esempio quando si confronta un simbolo di posizione con il simbolo corrente), è necessario utilizzare il metodo CSymbolInfo::Name().
Esempio di utilizzo:
L'aiuto mostra due forme di chiamata al metodo Name
Nome
Ottiene il nome dello strumento finanziario.
Valore restituito
Nome dello strumento finanziario.
Ho una domanda su questa forma di metodo Nome.
Come ottengo il NOME dello strumento nella variabile? Perché facendo così:
Non so come aprire un conto demo.
Sono su Android.
MetaQuotes non è un broker - quindi è possibile aprire un conto demo solo sui server MetaQuotes-Demo.
Un conto di trading reale deve essere aperto con un broker.
Ciao conoscitori!
Potete dirmi perché nel mio codice le variabili vol e ask non ottengono valori? Il valore zero è sempre visualizzato in Stampa. Lo spread si "blocca" normalmente, mostra il valore corretto.
Allego l'EA al grafico LTCUSD.
Qual è l'errore?
Ciao conoscitori!
Potete dirmi perché il mio codice non imposta vol e ask? Il valore zero è sempre visualizzato in Stampa. Lo spread si "blocca" normalmente, mostra il valore corretto.
Allego l'EA al grafico LTCUSD.
Qual è l'errore?
Dovresti applicare il metodo CSymbolInfo::Refresh o CSymbolInfo::RefreshRates prima di ottenerlo - a seconda di ciò che ti serve.
Ecco il codice di queste funzioni:
È necessario applicare il metodo CSymbolInfo::Refresh o CSymbolInfo::RefreshRates prima di ottenere - a seconda di ciò che serve
Grazie mille, caro Vladimir!
Forse puoi anche dirmi come ottenere il nome del simbolo con il metodoCSymbolInfo Name? Quando cerco di farlo
Ottengo un valore booleano true nella variabile name.
Grazie mille, caro Vladimir!
Forse puoi anche suggerire: come ottenere il nome di un simbolo usando il metodoCSymbolInfo Name? Quando provo a farlo in questo modo
Ottengo un valore booleano true nella variabile name.
Lo faccio - inizializzo la variabile della classe CSymbolInfo.
Se volete ottenere un nome (per esempio quando confrontate il simbolo di posizione con il simbolo corrente), dovete usare il metodo CSymbolInfo::Name().
Esempio di utilizzo:
L'aiuto mostra due forme di chiamata al metodo Name
Nome
Ottiene il nome dello strumento finanziario.
Valore restituito
Nome
Imposta il nome dello strumento finanziario per lavorare ulteriormente con esso.
Valore restituito
Se si vuole ottenere un nome (ad esempio quando si confronta un simbolo di posizione con il simbolo corrente), è necessario utilizzare il metodo CSymbolInfo::Name().
Esempio di utilizzo:
L'aiuto mostra due forme di chiamata al metodo Name
Nome
Ottiene il nome dello strumento finanziario.
Valore restituito
Ho una domanda su questa forma di metodo Nome.
Come ottengo il NOME dello strumento nella variabile? Perché facendo così:
Come ottenere una stringa con il nome dello strumento, usando ilmetodo CSymbolInfo::Name()?
Ho una domanda su questa particolare forma del metodo Name.
Come faccio a mettere il NOME dello strumento in una variabile? Perché facendo così:
Come posso ottenere una stringa con il nome dello strumento, usando ilmetodo CSymbolInfo::Name()?
Prima loINIZIALIZZIAMO. Poi usiamo il metodo Name().
Eseguiamo il codice sul carattere ''.
Risultato:
1 (EURUSD,H1) текущий символ: EURUSDPrima si INIZIALIZZA. Poi usiamo il metodo Name().
Eseguite il codice sul carattere ''.
Risultato:
Capito. Grazie per la vostra pazienza )).
PS: il mio compilatore sta dando la colpa al ritorno nel tuo codice. Quando l'ho rimosso, va bene.
Capito. Grazie per la vostra pazienza )).
PS: il mio compilatore sta dando la colpa al ritorno nel tuo codice. Quando l'ho rimosso, va bene.
Questo è uno script (ho dato un esempio di script), non un EA. Se avete copiato il mio codice in EA, ci sarà un errore.