Poche persone possono resistere al sogno del "lancio dei dadi a vista e poi è fatta". La dura realtà e la pratica a lungo termine dimostrano che non ha mai funzionato, non ha mai funzionato ed è improbabile che funzioni. Ci stiamo muovendo esattamente nella direzione opposta - concentrandoci sui programmatori e fornendo loro strumenti di sviluppo completi.
E' possibile nella nuova versione di Meta Trader 4
nel tester delle strategie nella pagina "Log"
attraverso il menu che appare dopo aver cliccato con il tasto destro del mouse
insieme alla voce "Auto-scrolling" aggiungere le voci
"Disable output of tester messages".
"Disabilita l'uscita del registro".
Quindi i log mostreranno solo i risultati dell'Expert Advisor e nessun messaggio:
2007.09.04 22:49:44 Expert: loaded successfully
2007.09.04 22:55:37 2006.01.02 07:00 Expert: EURUSD,M1: open #1 buy 0.50 EURUSD at 1.1832 sl: 1.1732 tp: 1.1882 ok
2007.09.04 22:55:38 2006.01.03 06:03 Tester: take profit #1 at 1.1882 (1.1883 / 1.1886)
e messaggi simili.
Quando un Expert Advisor invia molti ordini in un periodo di test
è quasi impossibile trovare i messaggi dell'Expert Advisor stesso
e questo rende il debugging molto difficile.
Non è conveniente cercare qualcosa nei registri sul disco.
Grazie in anticipo.
2) Capacità di guardare l'intera forma dello spazio di due variabili durante l'ottimizzazione
e non solo il risultato migliore, quando tutti gli altri valori sono fissati.
3) Capacità di eseguire una WFA automatica.
4) Capacità di testare e ottimizzare gli EA multi-valuta (portafoglio).
Molto ingenuo.
Poche persone possono resistere al sogno di un tipo di "ora tiro i dadi e basta". La dura realtà e la lunga pratica dimostrano che non ha funzionato, non funziona ed è improbabile che funzioni così. Ci stiamo muovendo esattamente nella direzione opposta - concentrandoci sui programmatori e fornendo loro strumenti di sviluppo completi.
Questa è una strana risposta. "Politica", come del resto molte altre risposte. Non sto parlando di una "chimera", ma di un'interfaccia vera e propria. E non voglio perdere tempo in discussioni su cosa, chi ce l'ha e come esattamente "funziona", per così dire. Invece, vi propongo di mantenere e sviluppare una programmazione complessa, e di aggiungere un designer visivo intuitivo per un'altra parte della piattaforma CA. Se lo rendete funzionalmente identico alla programmazione (anche se non immediatamente), e ancora meglio, avete la possibilità di combinare questi due metodi, allora che differenza fa come l'utente formerà la strategia - tramite codice, "dadi", o sommariamente?
Apparentemente, mi direte che "non abbiamo le risorse per fare tutte queste sciocchezze". Passeremo il resto della nostra vita a cantare la stessa melodia". È così?
Apparentemente, a questo mi direte: "Non abbiamo le risorse per fare tutte queste sciocchezze. Passeremo il resto della nostra vita a cantare la stessa melodia". È così?
Ma lavoreremo con il costruttore/visore - cercheremo di fare semplici scheletri di base (non programmi completi) automaticamente.
CreatIntVariable("Variable_Name");
Renat, ti suggerirei di pensare al prototipo di funzione iCustom nelle versioni future. Ora devi scrivere la lista dei parametri esplicitamente nel codice, e in questo modo non puoi chiamare un indicatore arbitrario per nome, per esempio, dato da un utente, perché il numero di argomenti di qualsiasi indicatore è sconosciuto in anticipo. Limita fortemente l'uso di iCustom. Inoltre, ci sono due parametri di chiamata (int mode, int shift) alla fine della lista degli argomenti di iCustom, cioè i parametri indicatori "rompono" i parametri di iCustom stesso nel prototipo.
Posso proporre un tale prototipo:
double iCustom( string symbol, int timeframe, string name, int mode, int shift, object[] indicatorParams)
Cioè tutti i parametri obbligatori di iCustom stesso sono all'inizio, e l'ultimo argomento della funzione è un array degli argomenti indicatori di un nuovo tipo di oggetto arbitrario (in effetti, sono int, bool, double, datetime e altri tipi MQL integrati) con un numero variabile nell'array. Anche se l'idea in sé non è realistica - circa 5 anni fa un uomo mi disse che i programmatori sono una classe estinta di persone, che è uno strato inutile tra i professionisti e i computer. Con il passare del tempo la prognosi diventa vera al contrario - il numero e la complessità delle soluzioni IT non fanno che aumentare.
E sarebbe bello avere funzioni per enumerare i loro argomenti per gli indicatori: IndicatorArgsCount(), ArgsItemName[i] restituirà il nome del parametro, ecc.
E soprattutto - è un debugger in MQL 5.
A chv - è ancora possibile usare parametri predefiniti in iCustom - vedi https://docs.mql4.com/ru/indicators/iCustom.
In linea di principio MQL4 rappresenta tutto ora, ma ancora di più è possibile. Ecco la mia lista:
1.) È possibile determinare se un ordine StopLoss o TakeProfit si è appena chiuso. Questo può essere fatto ora, ma è abbastanza complicato:
3 funzioni
int OrderJustClosedCount() - restituisce il numero di ordini chiusi agli stop
int OrderJustClosed(int pos) - numero del biglietto
void OrderJustClosedClear() - cancella il buffer - immediatamente dopo che OrderJustClosedCount ritorna 0 - se l'elaborazione ha richiesto troppo tempo.
2.) Per alcuni oggetti (ad esempio un canale di regressione lineare), non è possibile leggere alcuni valori dopo il disegno (ad esempio il prezzo alla fine del canale).
3.) Aggiungere altri MathArcTan2 - almeno MathArcTan2 - naturalmente molto è già stato implementato in MQL4, ma comunque - perché non integrarli?
E riguardo al debugger - credo che tu ci stia già lavorando ;-)
1.) La possibilità di determinare se gli ordini StopLoss o TakeProfit si sono appena chiusi. Questo può essere fatto ora, ma è piuttosto complicato.
In generale, dovremmo solo introdurre il concetto di "evento", e tutte queste situazioni possono essere gestite.
Per esempio, l'evento "ordine attivato", "SL attivato", o "ordine cancellato per scadenza".
A chv - la possibilità di usare parametri predefiniti in iCustom esiste ancora - vedi https://docs.mql4.com/ru/indicators/iCustom
Sai, ho già letto il prototipo della funzione iCustom ;). I "parametri predefiniti" non mi permettono di fare ciò di cui ho bisogno. Ecco il compito più semplice - l'Expert Advisor prende come argomento in una stringa il nome di un indicatore arbitrario e, per esempio, un elenco separato da virgole dei valori dei suoi parametri in un file di testo. L'Expert Advisor deve chiamare l'indicatore per nome con i valori degli argomenti specificati e ricevere i suoi valori e stamparli nel giornale, diciamo che la descrizione iCustom contiene una frase:
... - Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
Ora non possiamo farlo per un indicatore arbitrario - scrivere ciò che non conosciamo. Nella fase di compilazione dell'Expert Advisor, il numero e il tipo di argomenti dell'indicatore è sconosciuto. È determinato solo al momento dell'esecuzione. Nei linguaggi di programmazione, questo è chiamato "late binding". Al momento non esiste in MQL.
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
1) Fare un costruttore di strategie intuitivo, drag-and-drop come Gordago (o meglio ancora, costruttori di strategie più complesse). Questo attirerà sicuramente i nuovi utenti che vogliono fare trading più o meno sistematico, ma non vogliono passare molto tempo a studiare e curiosare in MQL. L'attività del trader è pensare al mercato e provare le opzioni, non a dove si è insinuato un bug nel codice del programma.
2) Spunta l'anamnesi per i test. Prima o poi dovrete comunque fare "per tutti" a causa della concorrenza e dei cambiamenti in atto, e le persone competenti e di "lunga data" sanno comunque come affrontare i test in MT4.
Fate queste cose e MT sarà il numero 1 per molto tempo senza dubbio. E se non lo fai tu, lo faranno altri (e lo fanno già). Ma voi avete già un prodotto sufficientemente di qualità e adatto per la sovrastruttura di queste cose necessarie.
Con la speranza di capire.