Domande da un "manichino" - pagina 222

 
TVA_11: Non è nel terminale (finestra del navigatore). Tutto sembra standard lì, lo stesso di prima della compilazione.

Consulenti

consigliere

esempi

di più...

Terminale => Ctrl+N (Navigatore) => Apri una delle cartelle (Indicatori, Expert Advisors o Scripts) => Cerca il nome del programma richiesto.
 
TVA_11: https://www.mql5.com/ru/code/103 questo Expert Advisor. Per prima cosa, ho creato quello che ho in Expert Advisors. Poi ho inserito lì il testo del programma.

Hai eseguito l'Expert Advisor originale nel tester?

TVA_11 : Non una sola transazione in nessuna variante. Cosa c'è che non va?

Cosa dicono i file di log?

 

Sembra che quell'Expert Advisor non faccia trading per niente.

Messo da altri, dove commercia da due barre qualsiasi a dove va, e ha funzionato.

Ora sto cercando di capire come fare trading correttamente.

Ogni Expert Advisor ha il suo approccio).

20_200 esperto_v4.2_AntS.mq5

Sto cercando di capire come funziona e se commercia correttamente.

 
TVA_11:

...

Cosa non è un esperto, si ottiene il proprio approccio ).

...

Esperti in Code Base solo come esempio di implementazione. Non sempre di alta qualità e con tutte le funzioni, naturalmente. Per qualsiasi cosa in più, devi farlo da solo o ordinarlo.
 

Non capisco il significato della possibilità, in MetaEditor, di aprire nuove finestre di codice(menu contestuale => Nuova finestra). Se cambiate una delle finestre, la stessa cosa cambierà nell'altra.

Nella Guida è scritto solo questo:

  • Nuova finestra - apre una copia della scheda corrente in una nuova. A quel punto il numero di serie della copia sarà aggiunto al nome della scheda;

A cosa servono le nuove finestre?

 

Ciao, qualcuno può spiegare la win api. Creata una finestra di dialogo, funzione CreateDialog(). Perché la funzione finestra non viene eseguita atomicamente, anche quando si usa la sezione critica?

INT_PTR CALLBACK DialogProc(HWND hWnd,
                            UINT uMsg,
                            WPARAM wParam,
                            LPARAM lParam)
{
        lock.LockObject();              // Далее нужно атомарное выполнение.
        MessageBoxA(NULL, "", "", MB_OK);               // При запуске программы, вылетает пачка сообщений (одновременно).
        lock.UnlockObject();    // Переводим в свободное состояние (критическая секция).

    return FALSE;
}
 

Negli indicatori MC standard, abbiamo aggiunto !IsStoped() in for.

for(int i=pos;i<rates_total && !IsStopped();i++)

Puoi dirmi perché si fa, a cosa serve?

 
paladin800:

Se il ciclo è lungo (o perpetuo) come può essere interrotto senza terminare il processo terminale? Quando l'utente ha dato il comando - per rimuovere lo script dal grafico, la funzione restituirà true (false prima di questo evento). Di conseguenza, le condizioni per le iterazioni successive non saranno soddisfatte.

Ордерa, позиции и сделки в MetaTrader 5
Ордерa, позиции и сделки в MetaTrader 5
  • 2011.01.05
  • MetaQuotes Software Corp.
  • www.mql5.com
Надежный торговый робот не может быть создан без понимания механизмов работы торговой системы MetaTrader 5. Клиентский терминал получает от торгового сервера информацию о позициях, ордерах и сделках. Чтобы правильно обработать эти данные средствами MQL5 необходимо хорошо представлять как происходит взаимодействие mql5-программы и среды исполнения терминала.
 
220Volt:

Se il ciclo è lungo (o perpetuo) come può essere interrotto senza terminare il processo terminale? Quando l'utente ha dato il comando - per rimuovere lo script dal grafico, la funzione restituirà true (false prima di questo evento). Di conseguenza, le condizioni per le iterazioni successive non saranno soddisfatte.

Ok, ora ha senso per me. L'ho appena confrontato con MQL4 e non ho potuto cogliere la differenza.

Buon anno!

 

Per favore aiutatemi, mandatemi un esempio di come lavorare conORDER_TIME_SPECIFIED, non riesco a fare il tempo di scadenza di un ordine correttamente.

Ecco un frammento di codice

int need_year_AUDUSD=mqldt.year;
int need_mon_AUDUSD=mqldt.mon;
int need_day_AUDUSD=mqldt.day;
int need_hour_AUDUSD=mqldt.hour;
int need_min_AUDUSD=mqldt.min+15;
int need_sec_AUDUSD=mqldt.sec;
string need_year2_AUDUSD=IntegerToString(need_year_AUDUSD,0,' ');
string need_mon2_AUDUSD=IntegerToString(need_mon_AUDUSD,0,' ');
string need_day2_AUDUSD=IntegerToString(need_day_AUDUSD,0,' ');
string need_hour2_AUDUSD=IntegerToString(need_hour_AUDUSD,0,' ');
string need_min2_AUDUSD=IntegerToString(need_min_AUDUSD,0,' ');
string need_sec2_AUDUSD=IntegerToString(need_sec_AUDUSD,0,' ');
string date_AUDUSD=(need_year2_AUDUSD+".0"+need_mon2_AUDUSD+".0"+need_day2_AUDUSD+" "+need_hour2_AUDUSD+":"+need_min2_AUDUSD+":"+need_sec2_AUDUSD);
datetime b_AUDUSD=StringToTime(date_AUDUSD);


trade.BuyStop(0.1,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D,qwerty,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D-SL,SymbolInfoDouble(qwerty,SYMBOL_ASK)+D+TP,ORDER_TIME_SPECIFIED,b_AUDUSD);

è tutto molto storto, lo so, ma non riuscivo a trovare un esempio in un certo momento, ho dovuto farlo io, ora sta diventando fastidioso e macchinoso

Motivazione: