Scrivere un articolo su "Come scrivere una TOR per un robot di trading" - pagina 6

 
Aleksey Vyazmikin:

È qui che vengono fuori molti dettagli e si fanno errori. Ecco perché è imperativo che l'EA sia testato su quotazioni reali.

Dovete solo tenerne conto e accordarvi su un lasso di tempo ragionevole.


Il compito tecnico è una cosa la cui esecuzione può essere controllata obiettivamente da un terzo. Altrimenti è un compito per un saggio scolastico "sull'estate".


Sulla bontà

 
Maxim Kuznetsov:


Un compito tecnico è qualcosa che può essere verificato oggettivamente da una terza parte. Altrimenti, è un compito scolastico "sull'estate".

Una A per il saggio, grande immaginazione.

Ma, qualcosa hai saltato l'argomento - sto dicendo che il test deve essere basato su dati reali e il cliente dovrebbe essere consapevole di questo, e il contraente dovrebbe tenerne conto nelle scadenze dichiarate.

 
Aleksey Vyazmikin:

5 per il saggio - grande immaginazione!

Ma, hai saltato il soggetto - sto dicendo che i test sono obbligatori su dati reali e il cliente dovrebbe esserne consapevole, e l'appaltatore dovrebbe tenerne conto nelle scadenze dichiarate.

Supponiamo che tu abbia scritto un EA (codice e per la maggior parte anche debuggato). La prossima cosa oggettiva - per controllare il gufo sull'account reale per il cliente, hai bisogno di un po' di tempo e dello stesso account reale.

Come fate, tutti insieme, ad assicurarvi che il compito venga svolto?

 
Maxim Kuznetsov:

Supponiamo che tu abbia scritto un EA (codice e per la maggior parte anche debug). Poi segue una cosa oggettiva - per controllare il gufo su un conto reale il cliente, voi, l'arbitro avete bisogno di un po' di tempo e dello stesso conto reale.

Come controllerete se il compito è stato eseguito?

Se non sei sicuro della correttezza del concorso, puoi usare i log di servizio del terminale e controllare la performance dell'ordine e la logica dell'EA.

Qual è il problema? Sì, in realtà ho incontrato un EA funzionante nel tester che non funzionava correttamente su un conto reale, sì l'EA sosteneva che avrebbe dovuto esserlo, l'arbitro ha taciuto finché non ho tirato fuori un pezzo di codice e ci ho ficcato il naso. Ho sprecato molto del mio tempo e dei miei nervi per l'incompetenza dell'appaltatore, quindi non vedo alcun problema se l'appaltatore aspetta il suo compenso.

O forse non capisco qualcosa, per favore elaborate i vostri argomenti per una discussione sostanziale.

 
Maxim Kuznetsov:

A cosa serve tutto questo?

Il TOR è scritto dall'esecutore (o da un consulente terzo appositamente formato). E include la metodologia di verifica.
Qualsiasi requisito non necessario per il cliente, non è obbligato a essere a conoscenza di tutta la programmazione.

Il cliente dovrebbe dire (per iscritto, non in video o su Skype):

- Io uso questi indicatori e script

- Mi attengo alle seguenti regole

- Hanno scambiato su demo più o meno ufficiale per una settimana, mese o anno, questo è quanto. E in un altro periodo come questo. Il tutto opzionalmente salvato copiando su un account centesimo.

- è necessario automatizzare

Lo sviluppatore prepara e concorda il TT (in una forma comprensibile per entrambe le parti), scrive un gufo, e se tutto nel tester più o meno converge con il periodo menzionato, allora l'Expert Advisor è fatto.

Varianti - dovremmo controllarlo sul demo/centro-reale/ecc, è già oltre i limiti del freelance

Non mi occupo di freelance per molte ragioni, ma scrivere il TOR costa e spesso molto. E, per come la vedo io, l'assegno medio nel freelance è di 50 dollari. B cosa, da questa già misera somma ancora da grattare per pagare l'appaltatore per scrivere TOR? O scriverà gratis?

 

Ho aggiunto un po' di più all'articolo - ho aggiunto la sezione Cosa dovrebbe essere nei Termini di riferimento e ho scritto Dove trovare i Termini di riferimento se non puoi scriverlo da solo

Что нужно для заказа торгового робота

I robot di trading sono programmi che eseguono gli algoritmi incorporati in essi. Gli algoritmi sono un insieme di azioni che devono essere eseguite al verificarsi di un evento. Ad esempio, il compito più comune nel trading algoritmico è la definizione dell'evento "Nuova barra" , alla comparsa del quale il robot verifica la presenza di segnali di trading ed esegue su di essi le azioni necessarie.

Ma prima di scrivere o ordinare un trading robot, è necessario disporre di un sistema di trading con regole chiare per determinare i momenti favorevoli per effettuare transazioni. Lo sviluppo di qualsiasi sistema di trading, anche il più complesso, inizia sempre con le cose di base, ovvero con lo sviluppo di segnali di trading per l'acquisto e la vendita. Successivamente, puoi aggiungere varie opzioni di follow-up e chiusura.

Non è necessario passare anni dietro il monitor del terminale di trading per sviluppare la tua strategia di trading. Ora ci sono centinaia di idee comprovate pubblicate su Internet e nei libri che puoi provare. E anche se non sei completamente sicuro delle tue capacità di programmazione, questo non è un ostacolo. Il servizio Freelance ti aiuterà a trovare lo sviluppatore giusto e a pagare in modo sicuro il lavoro svolto.

Ma prima di tuffarti nell'affascinante elemento del trading algoritmico, ti consigliamo di leggere articoli utili sull'argomento:

Perché è importante avere un buon Termini di riferimento?

Quando si ordina o si sviluppa un Expert Advisor, è necessario formulare i requisiti tecnici per esso: quali compiti dovrebbe risolvere, in quali condizioni verrà utilizzato, cosa accadrà in situazioni di emergenza, che tipo di controllo ha bisogno. I robot di trading sono programmi e devono funzionare chiaramente secondo la logica sottostante. Ma prima di programmare l'algoritmo delle azioni necessario, deve anche essere descritto chiaramente.

La descrizione della strategia di trading deve essere rilasciata sotto forma di Termini di Riferimento. E meglio e più chiaro sarà, meno incomprensioni saranno tra te, come cliente, e il programmatore, come esecutore del tuo Ordine.

La cosa più importante nei Termini di Riferimento è la presenza di Regole di Trading formali non ambigue. Anche se non hai intenzione di ordinare un esperto a lato, ma vuoi scriverlo tu stesso, inizia sviluppando queste regole per te stesso. Crea un Termini di riferimento e assicurati di includere elementi sul test/ottimizzazione dell'Expert Advisor. Aggiungi anche ipotesi per testare la qualità della tua strategia di trading: quali criteri utilizzerai per selezionare i parametri ottimali, perché ritieni importanti questi criteri.

Includere tutti i passaggi per la creazione di un robot di trading nei Termini di riferimento: questo aiuterà a comprendere l'essenza dell'algoritmo non solo per l'esecutore, ma anche per te dopo settimane, mesi o anni. Ricorda, il trading algoritmico non è un hobby, ma lo stesso monotono percorso di ricerca, durante il quale è necessario documentare le fasi percorse. Per me, più che per un programmatore che scriverà un robot per te.

Sviluppa le capacità di un burocrate a cui piace sistemare le cose. Avrai sicuramente bisogno di questo. Sì, e i programmatori adorano gli ordini chiari.

Cosa dovrebbe essere nei termini di riferimento

idea commerciale

Per una rapida introduzione all'essenza di una strategia di trading, dedica il primo paragrafo del tuo Ordine Tecnico all'idea/ipotesi che contiene. Ad esempio: "Se il prezzo si avvicina al livello di resistenza due volte e torna indietro ogni volta, la terza volta, di norma, lo supera". Qui puoi allegare un grafico con linee di resistenza/supporto tracciate, indicatori sovrapposti e firme che illustrano la situazione. Per descrivere l'idea, non è necessario fornire numeri o algoritmi di calcolo specifici - in questa fase, non è necessario spiegare come determiniamo:

  • livello di resistenza,
  • ripartizione del livello,
  • il concetto di "generalmente".

Un piccolo livello di astrazione nella fase iniziale ti consentirà di concentrarti sull'idea stessa e non sui dettagli tecnici. Questo metodo ti consente di generare successivamente molte più varietà della tua strategia di trading: sostituirai semplicemente un blocco di strategia con un altro, un indicatore con un altro, aggiungi o sostituirai filtri. Allo stesso tempo, l'idea stessa non cambierà, cambieranno solo i nomi e i valori dei parametri di input del tuo robot di trading.

Inoltre, è necessario fornire una descrizione di tutti i termini utilizzati nella descrizione dell'idea. Se la tendenza è importante per la strategia, fornire una descrizione chiara di come verrà determinata - sulla base di quale indicatore, come verranno determinate la direzione e la forza della tendenza. Le caratteristiche numeriche di queste definizioni formeranno la base dei parametri di input dell'Expert Advisor, e sono loro che ottimizzerai poi nel tester di strategia. Quindi nomina la prima sezione dei tuoi Termini di riferimento - Idea commerciale.

Termini

Per descrivere i termini, consigliamo di creare una sezione separata dei Termini di riferimento - Termini. In esso viene scritto un paragrafo separato per ogni termine, i termini stessi sono scritti in grassetto per evidenziare il concetto chiave della tua strategia di trading. Se necessario, aggiungi un'illustrazione alla descrizione del termine, in cui devi mostrare il più necessario per la comprensione.

Segnali di trading

Successivamente, sei pronto per compilare la terza sezione più importante - Segnali di trading - che descrive in quali condizioni, condizioni di mercato e letture degli indicatori si verifica un acquisto. Per descrivere ogni condizione necessaria per generare un segnale di acquisto, è necessario individuare un parametro numerico, da cui dipende l'aspetto di un segnale. Ad esempio, per una media mobile , questo sarebbe il tipo e il periodo di livellamento. Questi importanti parametri vengono inseriti nei parametri di input del futuro Expert Advisor. Descrivi separatamente le condizioni per la vendita, anche se sono semplicemente opposte alle condizioni per l'acquisto - a volte emergono sottigliezze che il programmatore può capire in modo diverso da te. Ad esempio, per un acquisto, è impostata la condizione "Indicatore> 0": cosa scrivere per una vendita? "Punteggio<0" o "Punteggio<=0"?

Anche l'idea di trading più semplice inizia molto rapidamente ad acquisire condizioni e filtri aggiuntivi che confermano la presenza di un segnale di trading o viceversa: vietano un accordo. Pertanto, è importante creare schermate esplicative per ogni situazione di mercato, che mostrino visivamente gli indicatori e le impostazioni necessarie. Ciò ti consentirà di affrontare rapidamente la situazione in cui il tuo consulente ha perso un segnale di trading apparentemente ovvio o ha improvvisamente fatto un accordo nel momento sbagliato.

Screenshot e diagrammi di flusso

Ci sono molti programmi gratuiti e pratici su Internet per la creazione di schermate e diagrammi di flusso. Una piccola selezione di suggerimenti per lavorare con loro è fornita nell'articolo Come redigere un Termini di riferimento quando si ordina un indicatore . Lì troverai anche suggerimenti per ordinare un indicatore che mostra con le frecce sul grafico i momenti in cui compaiono i segnali di acquisto e vendita. Tale indicatore, che funziona separatamente dal consulente, semplifica il controllo e il controllo del funzionamento del robot di trading sia online che durante i test visivi.

Durata di segnali/ordini/posizioni

La seconda parte importante della strategia di trading è uscire da una posizione aperta e cancellare gli ordini in sospeso. Inoltre, i segnali di trading stessi possono essere cancellati anche dal tempo o dal verificarsi di alcuni eventi. È inoltre necessario descrivere chiaramente, come per i segnali di Trading, a quali condizioni verrà chiuso l'acquisto/vendita, l'ordine effettuato verrà annullato, quando il segnale stesso verrà annullato.

Mantenimento posizioni aperte e ordini pendenti

Se la tua strategia di trading richiede l'impostazione dei livelli StopLoss e TakeProfit, fornisci un algoritmo di calcolo. Se è necessario alzare/spostare in modo flessibile questi livelli, è anche necessario descrivere le condizioni per tali operazioni. I livelli SL/TP possono essere modificati sia all'apertura di una nuova barra che ad ogni tick. È necessario indicare esplicitamente questo momento nei Termini di Riferimento e comprendere la differenza nelle modalità di test delle strategie di trading. Ti consigliamo di leggere l'articolo Testare le strategie di trading sui tick reali .

Dove posso ottenere i Termini di riferimento se non riesci a comporli da solo

Un capitolato mal redatto o la sua effettiva assenza il più delle volte indica che le regole del sistema commerciale non sono formulate, semplicemente non esistono. Quello che in questo caso il Cliente chiama trading system, infatti, di regola, è solo un'idea. È impossibile iniziare a lavorare in tali condizioni, perché molto presto nel processo di programmazione dell'algoritmo emergeranno sfumature non spiegate o semplicemente l'assenza di un algoritmo in determinate situazioni di mercato. In questo caso, il programmatore inizia effettivamente a trovare opzioni al posto del Cliente.

Di conseguenza, l'Appaltatore può, a proprio rischio e pericolo, completare il lavoro e rilasciare un robot commerciale al Cliente. Ma in questo caso, oltre a perdere tempo a discutere di ogni nuova questione in un TOR poco chiaro, c'è anche la possibilità che il lavoro entri in Arbitrato. Perché quando accetta e controlla tale lavoro, il Cliente scopre improvvisamente che le transazioni non vengono eseguite come si aspettava, ma non poteva descrivere. E ovviamente, in questo caso, incolperà l'Appaltatore per aver violato alcuni punti delle Condizioni di Riferimento e aver programmato in modo errato il robot. L'arbitrato in tali casi comprende rapidamente la differenza di competenza di entrambe le parti e prende la sua decisione sulla base del mandato allegato all'ordine. Secondo il Regolamento della Libera Professione, non viene presa in considerazione alcuna corrispondenza da parte prima e durante l'esecuzione dell'Ordine:

Quando si considera l'oggetto della controversia nell'arbitrato, solo i termini di riferimento fungono da base per prendere una decisione.

Nella vita è possibile anche questa opzione: hai regole di trading rigide, ma per qualche motivo non puoi redigere tu stesso i Termini di Riferimento. Ad esempio, non sono sicuri di come descrivere correttamente determinate cose o hanno bisogno dell'aiuto di uno specialista in matematica, reti neurali, apprendimento automatico, programmazione e così via. In questo caso è possibile ordinare la creazione dei Termini di Riferimento anche in Libera Professione, per questo sono adatte le categorie "Consulenza di programmazione" o "Altro".

Scegli una di queste due categorie, chiamala "Creazione di un TOR per l'ordinazione di un robot commerciale" e indica il costo iniziale dell'opera, come immagini. Uno sviluppatore esperto di sistemi di trading ti aiuterà a formulare correttamente le Regole della tua strategia in modo che siano comprensibili a un altro programmatore. Allo stesso tempo, dovresti essere in grado di lavorare con grafici, indicatori e oggetti grafici per mostrare le impostazioni dei tuoi segnali di trading usando schermate.

Il programmatore comprenderà il tuo sistema di trading e ti aiuterà a scrivere una descrizione dell'algoritmo di trading, se possibile. Se non riesci a formulare alcuni concetti da solo (ad esempio, "impulso" o "rimbalzo dal livello"), può darti idee già pronte in base alla sua esperienza. Di norma, qualsiasi situazione del mercato può essere descritta logicamente (e quindi programmaticamente) con una certa libertà di interpretazione. E questa variazione può sempre essere espressa da un determinato parametro, che poi ottimizzerai nel tuo Expert Advisor.

Non ci sono schemi ideali, poiché il mercato, da un lato, non si ripete, e dall'altro, situazioni simili si trovano sempre nella storia. Il risultato del tuo lavoro congiunto dovrebbe essere un Termini di riferimento pronto per ordinare un robot commerciale in base alla tua strategia.

Quali termini usare

... è meglio descrivere termini che non sono sicuri per capirsi

Nel TK stesso, evidenzia i termini in grassetto: lascia che l'esecutore presti attenzione a loro e fai una domanda se qualcosa non è chiaro

Non puoi inviare ad altre fonti (siti web/libri, ecc.) Tutto dovrebbe essere descritto qui e ora, no "ti spiego dopo su Skype"

Cosa scrivere in una descrizione del lavoro in Freelance

... è necessaria solo una formulazione generale: tendenza, contro-commercio. per sfondare i livelli (in breve come vengono definiti i livelli), ci sono indicatori/Price Action/uso di tick

Idea generale di una strategia di trading

... commerciamo secondo il trend, definiamo il trend in questo modo, entriamo in rollback, definiamo un rollback in questo modo, non commerciamo la sera e la mattina

Descrizione della configurazione per l'attesa di un segnale

...è necessario formare un appartamento con un successivo breakout / oppure attendere la fine della sessione europea e ricevere segnali solo nella direzione del suo movimento

Descrizione del segnale

... Parametri tecnici della descrizione - trend / pullback / breakdown - tutto è rigorosamente formalizzato

È meglio eseguire prima il debug dei segnali Compra e Vendi separatamente

Sarebbe meglio se il consulente mettesse etichette / oggetti segnale sul grafico

È meglio se gli indicatori di segnale sono realizzati separatamente

Durata del segnale

... per quanto tempo è valido il segnale - in barre / ore / fino alla fine della sessione / giorno

Inserimento ordini e apertura di posizioni

... ci sono delle funzionalità, ad esempio, non impostiamo SL / TP subito,

o quanti tentativi facciamo per entrare nel mercato,

o impostando un diverso oredermagic/commento d'ordine a seconda del tempo/impostazione/modello

qualcos'altro

Mantenimento di una posizione/ordine commerciale

... c'è un trailing stop o no

quando si accende TS

spostiamo gli ordini in sospeso dietro/contro il prezzo

traccia l'attuale profitto/perdita su una posizione aperta

qualcos'altro

Cancellazione di un ordine e chiusura di una posizione

... cancella gli ordini per ora/numero di barre/fine periodo/comparsa di segnale opposto/perdita di setup

...chiudere la posizione per ora/numero di barre/fine periodo/utile accumulato/comparsa del segnale opposto/setup

qualcos'altro

Calcolo del lotto per effettuare un ordine

.... dal saldo

fisso

dal profitto accumulato

sulla base dei risultati degli ultimi N scambi

da rischio (distanza SL)

qualcos'altro

Gestione degli errori di trading e dello stato ambientale

... registri dettagliati durante l'invio di ordini commerciali

elaborazione di riavvio del terminale/connessione/server

feedback tramite messenger/e-mail

La differenza tra il trading all'apertura del bar e all'interno del bar

... i segnali possono scomparire e apparire durante la vita della barra

Strategie tick/scalping

...è necessario avere una buona idea di cosa sia, meno TakeProfit/StopLoss in punti, più critica è la strategia per spread/commissioni/ritardi di rete/qualità della cronologia disponibile/velocità del robot stesso.

Qualsiasi deterioramento delle condizioni può uccidere la strategia

Griglie, martingala, media e il lato negativo di questi miglioramenti

... Cosa sono, perché sono popolari e quanto possono aiutare a estendere temporaneamente la strategia. Il rischio aumenta, anche se può allungare la vita di una cattiva strategia

Cosa cercare quando si sceglie un appaltatore

... domande sostanziali

Non pretende di impressionare

Dà scadenze chiare

Indica posti poco chiari nel TOR immediatamente e non dopo 2 mesi di discussione

Un buon programmatore apprezza il suo e il tuo tempo: ecco perché ama un TOR coerente e ben sviluppato

Quello che un programmatore non può fare per te

Trasforma una strategia perdente in un robot redditizio

Ottimizza e identifica eventuali punti deboli

Scrivi un programma senza errori: lo saranno ancora. Trovarli e descriverli in modo comprensibile è il tuo compito.


 
Rashid Umarov:

...

Screenshot e diagrammi di flusso

Ci sono molti programmi gratuiti e pratici su internet per creare screenshot e diagrammi di flusso. ...

I diagrammi di flusso sono la parte più inutile, lunga e praticamente irrealizzabile dei ToR.

Per capire questo - si può fare un piccolo e molto semplice esperimento - agli sviluppatori di servizi freelance dovrebbe essere dato un compito: "Fare un diagramma di flusso per disegnare un indicatore MA" - e poi valutare secondo due criteri: 1) correttezza e 2) comprensibilità.

 
Andrey F. Zelinsky:

Il diagramma di flusso è la parte più inutile e praticamente irrealizzabile di ToR.

Per capire questo - si può fare un piccolo e molto semplice esperimento - agli sviluppatori di servizi freelance dovrebbe essere dato un compito: "Fare un diagramma di flusso per disegnare un indicatore MA" - e poi valutare secondo due criteri: 1) correttezza e 2) leggibilità.

Qui non stiamo parlando di un diagramma di flusso dell'algoritmo di calcolo, ma di un diagramma di flusso della sequenza di azioni e relazioni tra diversi blocchi del programma - processo decisionale, gestione delle posizioni, filtri, ecc.

 
Aleksey Vyazmikin:

Questo non è un diagramma a blocchi di un algoritmo di calcolo, ma piuttosto un diagramma di flusso della sequenza di azioni e relazioni tra i diversi blocchi del programma - processo decisionale, gestione della posizione, filtri, e così via.

Potete immaginare il livello di un cliente che, comprendendo almeno perfettamente gli eventi del terminale cliente, sarà in grado di descrivere abilmente "le sequenze di azioni e le interrelazioni dei diversi blocchi del programma - decisione, gestione della posizione, filtri, e così via"?

E poi controllare il tutto dal punto di vista dell'implementazione del programma - altrimenti perché fare un diagramma di flusso?

Un tale cliente non sarà in grado di vedere il nome dello sviluppatore non solo prima dell'accordo, ma anche dopo che è stato fatto (se mai accadrà con un tale cliente entry level) -- "chi moltiplica la conoscenza moltiplica il dolore" (Ecclesiaste 1:17-18)


p.s. Di nuovo. Verificare la mia tesi sull'inutilità pratica di fare un diagramma di flusso (qualsiasi) è molto semplice.

È sufficiente impostare un compito per gli sviluppatori di servizi freelance - scrivere un diagramma di flusso per l'indicatore MA.

Tesi № 2 - non più del 5-10% farà il lavoro.


p.s.2 Domanda 1 - nel corso di informatica (a scuola o all'università) chi (in che percentuale) ha pensato che fare un diagramma di flusso fosse utile?

Domanda 2 -- chi (in che percentuale) ha fatto un diagramma di flusso più complicato di, per esempio, "cerca l'elemento massimo in un array N-dimensionale" durante il suo lavoro pratico.

 
Andrey F. Zelinsky:

Potete immaginare il livello del cliente che, come minimo, capisce perfettamente gli eventi del terminale del cliente, sarà in grado di descrivere "le sequenze di azioni e le relazioni dei diversi blocchi del programma - processo decisionale, gestione delle posizioni, filtri, e così via" in modo qualificato?

E poi controllare il tutto dal punto di vista dell'implementazione del programma - altrimenti perché fare un diagramma di flusso?

Un tale cliente non sarà in grado di vedere il nome dello sviluppatore non solo prima dell'accordo, ma anche dopo che è stato fatto (se mai accadrà con questo livello di cliente) -- "chi moltiplica la conoscenza moltiplica il dolore" (Ecclesiaste 1:17-18)

Un diagramma a blocchi è utile, almeno per testare la vostra logica. Sì, faccio flowcharting come concetto o quando sto sviluppando un algoritmo complicato, il più delle volte su carta.

Un EA non è un prodotto finito, sarà sempre soggetto a revisione, finché il cliente è interessato alla sua idea, quindi questo cliente doveva occuparsi delle possibili revisioni, e per questo il codice deve avere una certa struttura. Una volta l'ho capito dopo aver ordinato probabilmente 5 EA freelance. L'alto livello di idiozia è quando la logica di prendere decisioni di trading è impacchettata nelle funzioni di trading - non c'è da meravigliarsi che un tale EA non sia soggetto a revisione, ma debba essere rielaborato, specialmente se lo sviluppatore è un'altra persona.