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
Grazie.
'SYMBOL_VOLUME_LIMIT' - identificatore non dichiarato.............
'SymbolInfoDouble' - nessuno dei sovraccarichi può essere applicato alla chiamata di funzione.............
Sono solo io?
'SYMBOL_VOLUME_LIMIT' - identificatore non dichiarato.............
'SymbolInfoDouble' - nessuno dei sovraccarichi può essere applicato alla chiamata di funzione.............
Sono solo io?
Puoi farlo?
Ancora una domanda sulla funzione SeriesInfoInteger().
Quando ho creato l'argomento"AccountInfo... Informazioni", ho appreso che ci sono funzioni che utilizzano i dati "memorizzati nella cache del software" e funzioni che hanno sempre "accesso diretto ai dati reali".
A quale categoria di funzioni appartiene la funzione SeriesInfoInteger()?
Il codice seguente viene utilizzato nella funzione CheckVolumeValue :
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step);
return(false);
}
Ma è più corretto:
int ratio = (int)MathRound((volume-min_volume)/volume_step);
if (MathAbs(ratio*volume_step+min_volume-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step+min_volume);
return(false);
}
Perché il passo minimo di variazione del volume deve essere contato dal valore minimo.
E forse il frammento di codice
//--- вычислим значение маржи
bool check=OrderCalcMargin(type,Symbol(),lots,last_tick.ask,margin);
dovrebbe essere sostituito con:
//--- вычислим значение маржи
double price = (type == ORDER_TYPE_BUY || type == ORDER_TYPE_BUY_LIMIT || type == ORDER_TYPE_BUY_STOP || type == ORDER_TYPE_BUY_STOP_LIMIT) ? last_tick.ask : last_tick.bid;
bool check=OrderCalcMargin(type,Symbol(),lots,price,margin);
A causa delle modifiche apportate in MQL5, ora il volume complessivo massimo consentito per un simbolo può essere ottenuto come segue:
Non utilizzate la vecchia variante! Era così:
L'articolo è stato corretto e il nuovo codice dell'esperto Check_Order_And_Volume_Limits.mq5 è stato allegato.Caro Admin
Ho provato a utilizzare questa funzione ma restituisce 0 in tutti i casi.
La mia build MT5 è 2280
double orders_volume_on_symbol=PendingsVolume(symbol);dà errore, nessuna funzione di questo tipo
E dopo aver modificato la funzione per non includere gli ordini pendenti, dà 0
Il motivo è che max_volume è 0 e open_volume è 0;
Perché il volume massimo è 0 se non ci sono posizioni aperte?
Versione 2715