Saluti ai colleghi programmatori. Ho bisogno del vostro aiuto. L'Expert Advisor apre una sola operazione il primo giorno di trading di un mese. Può essere il primo o il secondo o il terzo o anche il quarto giorno. La mia condizione è come questa: if(Day == 1 || Day == 2 || Day == 3 || Day == 4 ){trade is opened} Voglio chiedere se c'è qualche funzione in MQL5 che "dica all'EA che oggi è il primo giorno di trading del mese"?
Saluti ai colleghi programmatori. Ho bisogno del vostro aiuto. Il mio Expert Advisor apre un solo ordine il primo giorno di trading di un mese, e può essere il primo o il secondo, il terzo o anche il quarto giorno. La mia condizione è come questa: if(Day == 1 || Day == 2 || Day == 3 || Day == 4 ){trade is opened} Voglio chiedere se c'è qualche funzione in MQL5 che "dica all'EA che oggi è il primo giorno di trading del mese"?
Non riesci a trovare il primo giorno di trading o non riesci a controllare la data del giorno corrente con il primo giorno di trading del mese?
In questo modo si può conoscere con più precisione la data di apertura del mese nel TF corrente(PERIOD_CURRENT può naturalmente essere cambiato in qualsiasi giorno, per esempio).
Saluti ai colleghi programmatori. Ho bisogno del vostro aiuto. Il mio Expert Advisor apre una sola operazione il primo giorno di trading di un mese, ma può essere il primo o il secondo, il terzo o anche il quarto giorno. La mia condizione è come questa: if(Day == 1 || Day == 2 || Day == 3 || Day == 4 ){trade is opened} Voglio chiedere se c'è qualche funzione in MQL5 che "dica al mio EA che oggi è il primo giorno di trading del mese"?
Trova dove si parla dell'apertura di una nuova barra e sostituisci il periodo PERIOD_MN1 lì
L'apertura di una nuova barra sarà il primo giorno di trading del mese.
Perché gli autori usano i due punti per scrivere? Il codice qui sotto è semplicemente pieno di punti. Anche se lo stesso::Sleep(5); può essere scritto senza due punti?
void CProgram::GetSymbols(void)
{
m_progress_bar.LabelText("Get symbols...");
m_progress_bar.Update(1,2);
::Sleep(5);
//--- Освободить массив символов
::ArrayFree(m_symbols);
//--- Массив элементов строкstring elements[];
//--- Фильтр названий символовif(m_symb_filter.IsPressed())
{
string text=m_symb_filter.GetValue();
if(text!="")
{
ushort sep=::StringGetCharacter(",",0);
::StringSplit(text,sep,elements);
//---int elements_total=::ArraySize(elements);
for(int e=0; e<elements_total; e++)
{
//--- Чистка по краям
::StringTrimLeft(elements[e]);
::StringTrimRight(elements[e]);
}
}
}
//--- Собираем массив форекс-символовint symbols_total=::SymbolsTotal(true);
for(int i=0; i<symbols_total; i++)
{
//--- Получим имя символаstring symbol_name=::SymbolName(i,false);
//--- Скроем его в окне Обзор рынка
::SymbolSelect(symbol_name,false);
//--- Если не форекс-символ, перейти к следующемуif(::SymbolInfoInteger(symbol_name,SYMBOL_TRADE_CALC_MODE)!=SYMBOL_CALC_MODE_FOREX)
if(m_symb_filter.IsPressed())
{
bool check=false;
int elements_total=::ArraySize(elements);
for(int e=0; e<elements_total; e++)
{
//--- Ищем совпадение в названии символаif(::StringFind(symbol_name,elements[e])>-1)
{
check=true;
break;
}
}
//--- Перейти к следующему, если не пропускает фильтрif(!check)
continue;
}
//--- Сохраним символ в массивint array_size=::ArraySize(m_symbols);
::ArrayResize(m_symbols,array_size+1);
m_symbols[array_size]=symbol_name;
}
//--- Если массив пустой, установим текущий символ по умолчаниюint array_size=::ArraySize(m_symbols);
if(array_size<1)
{
::ArrayResize(m_symbols,array_size+1);
m_symbols[array_size]=::Symbol();
}
//--- Покажем в окне Обзор рынкаint selected_symbols_total=::ArraySize(m_symbols);
for(int i=0; i<selected_symbols_total; i++)
::SymbolSelect(m_symbols[i],true);
}
Perché gli autori usano i due punti per scrivere? Il codice qui sotto è semplicemente pieno di punti. Ma possiamo scrivere lo stesso::Sleep(5); senza i due punti?
Risoluzione del contesto operativo ( :: )
Ogni funzione in mql5-program ha il suo contesto di esecuzione. Per esempio, la funzione di sistema Print() viene eseguita nel contesto globale. Le funzioni importate sono chiamate nel contesto dell'importazione corrispondente. Le funzioni-metodi delle classi hanno il contesto della classe corrispondente. La sintassi dell'operazione di risoluzione del contesto:
[nome_contesto]::nome_funzione(parametri)
Se non c'è un nome di contesto, è un riferimento esplicito all'uso di un contesto globale. Se non c'è un'operazione di risoluzione del contesto, la funzione viene cercata nel contesto più vicino. Se la funzione non è nel contesto locale, viene cercata nel contesto globale.
tipo Nome_classe::nome_funzione(descrizione_parametri) { // corpo della funzione }
Se un programma usa o potrebbe usare in futuro diverse funzioni con lo stesso nome da diversi contesti di esecuzione, potrebbe verificarsi un'ambiguità. L'ordine in cui le funzioni sono chiamate senza specificare esplicitamente il contesto:
Metodi di classe. Se la funzione con il nome dato non è specificata nella classe, la si cerca nel livello successivo.
Funzioni MQL5. Se non c'è una tale funzione nella lingua, siamo al livello successivo.
Funzioni globali definite dall'utente. Se non c'è una tale funzione, state guardando il livello successivo.
Funzioni importate. Se la funzione non si trova tra quelle importate, il compilatore genera un errore.
Per eliminare l'ambiguità di una chiamata di funzione, specificate esplicitamente l'ambito usando l'operazione di risoluzione del contesto.
-1. В частном случае одномерного массива из 50 элементов обращение к первому элементу будет выглядеть как array[0], к последнему элементу - array[49]. Вызов функции с аргументами x1, x2,..., xn Каждый аргумент может представлять собой константу, переменную или выражение соответствующего типа. Передаваемые аргументы разделяются запятыми и должны...
Saluti ai colleghi programmatori. Ho bisogno del vostro aiuto. L'Expert Advisor apre una sola operazione il primo giorno di trading di un mese. Può essere il primo o il secondo o il terzo o anche il quarto giorno. La mia condizione è come questa: if(Day == 1 || Day == 2 || Day == 3 || Day == 4 ){trade is opened} Voglio chiedere se c'è qualche funzione in MQL5 che "dica all'EA che oggi è il primo giorno di trading del mese"?
Saluti ai colleghi programmatori. Ho bisogno del vostro aiuto. Il mio Expert Advisor apre un solo ordine il primo giorno di trading di un mese, e può essere il primo o il secondo, il terzo o anche il quarto giorno. La mia condizione è come questa: if(Day == 1 || Day == 2 || Day == 3 || Day == 4 ){trade is opened} Voglio chiedere se c'è qualche funzione in MQL5 che "dica all'EA che oggi è il primo giorno di trading del mese"?
Non riesci a trovare il primo giorno di trading o non riesci a controllare la data del giorno corrente con il primo giorno di trading del mese?
In questo modo si può conoscere con più precisione la data di apertura del mese nel TF corrente(PERIOD_CURRENT può naturalmente essere cambiato in qualsiasi giorno, per esempio).
Ma è meglio controllare ogni funzioneiTime,Bars.
Saluti ai colleghi programmatori. Ho bisogno del vostro aiuto. Il mio Expert Advisor apre una sola operazione il primo giorno di trading di un mese, ma può essere il primo o il secondo, il terzo o anche il quarto giorno. La mia condizione è come questa: if(Day == 1 || Day == 2 || Day == 3 || Day == 4 ){trade is opened} Voglio chiedere se c'è qualche funzione in MQL5 che "dica al mio EA che oggi è il primo giorno di trading del mese"?
Trova dove si parla dell'apertura di una nuova barra e sostituisci il periodo PERIOD_MN1 lì
L'apertura di una nuova barra sarà il primo giorno di trading del mese.
Non può identificare il primo giorno di trading o non può controllare la data del giorno corrente con il primo giorno di trading del mese?
Non posso determinare il primo giorno di trading del mese. Grazie per le vostre raccomandazioni che sperimenterò)
Trova dove si parla dell'apertura di una nuova barra e sostituisce il periodo PERIOD_MN1
L'apertura del nuovo bar sarà il primo giorno di trading del mese.
Grazie. Sperimenterò anche in questa direzione)
Perché gli autori usano i due punti per scrivere? Il codice qui sotto è semplicemente pieno di punti. Anche se lo stesso::Sleep(5); può essere scritto senza due punti?
Perché gli autori usano i due punti per scrivere? Il codice qui sotto è semplicemente pieno di punti. Ma possiamo scrivere lo stesso::Sleep(5); senza i due punti?
Risoluzione del contesto operativo ( :: )
Ogni funzione in mql5-program ha il suo contesto di esecuzione. Per esempio, la funzione di sistema Print() viene eseguita nel contesto globale. Le funzioni importate sono chiamate nel contesto dell'importazione corrispondente. Le funzioni-metodi delle classi hanno il contesto della classe corrispondente. La sintassi dell'operazione di risoluzione del contesto:
[nome_contesto]::nome_funzione(parametri)
Se non c'è un nome di contesto, è un riferimento esplicito all'uso di un contesto globale. Se non c'è un'operazione di risoluzione del contesto, la funzione viene cercata nel contesto più vicino. Se la funzione non è nel contesto locale, viene cercata nel contesto globale.
Inoltre, l'operazione di risoluzione del contesto è usata per determinare la funzione membro di una classe.
tipo Nome_classe::nome_funzione(descrizione_parametri)
{
// corpo della funzione
}
Se un programma usa o potrebbe usare in futuro diverse funzioni con lo stesso nome da diversi contesti di esecuzione, potrebbe verificarsi un'ambiguità. L'ordine in cui le funzioni sono chiamate senza specificare esplicitamente il contesto:
Per eliminare l'ambiguità di una chiamata di funzione, specificate esplicitamente l'ambito usando l'operazione di risoluzione del contesto.
Operazione di risoluzione del contesto ( ::: )
Immagino che l'autore stia accelerando l'elaborazione del codice. Ben fatto.
La storia del trading è disegnata sul grafico, come posso disabilitare questo disegno?
La storia del trading è disegnata sul grafico, come posso disabilitare questo disegno?
Servizio - Impostazioni - Trading - "Mostra le transazioni sul grafico in tempo reale".