Meno codice, più azione... scrivere un EA - pagina 7

 
Maxim Kuznetsov:

per quale componente Ishimock volete un wrap? e soprattutto perché e che tipo di...
solo chiacchiere? si può, perché no...

PS/ Hai visto la Exxel? Nella vista DataFrame gli Ishimocks avranno lo stesso aspetto... Proprio come tutti gli altri... I commercianti lavorano con le tabelle in realtà. Un grafico è solo una rappresentazione parziale (vista) di una tabella riassuntiva. Quindi questi dati dovrebbero essere trattati come tabelle.
Dal punto di vista del trader, cos'è un oggetto del programma? Non è niente. Non ci sono queste cose nella sua vita pratica.

Quindi lo stai facendo per i programmatori, anche principianti, o per chiunque?

 
Vladimir Simakov:

L'ho scritto con il controllo dell'apertura di questi stessi ordini.

Non capisco. Hai pubblicato una versione incompleta?

 
Vladimir Simakov:

Per il pensiero generale, esempio di una classe wrapper per Ichimoku, ma in mql4.

perché rendere le cose semplici così complicate? mt4 rende facile l'uso degli indicatori scrivendo una singola linea

Lo scrivevo così:

#define  ind1(int bar_) ind1(inp_param1, int... , int bar_) 
double ind1(int param1, int... , int bar)

{
тут можно предобработку описать, если необходимо
return(iCustom(,,,,,, bar))
}

OnTick()
{
 if(ind1(1) > ind1(2)) BUY();
}

Con questo approccio, OnTick() prende 15-20 righe di codice, dove è possibile vedere tutta la logica e modificarla rapidamente per le modifiche - le condizioni sono riscritte o gli indicatori sono aggiunti

imho, OOP avete fatto un compito complicato da uno semplice, è necessario controllare la commutazione TF, se gli oggetti sono creati tramite puntatori, la manipolazione inutile ad ogni chiamata, aumenta il consumo di memoria.... Perché?

 
Vladimir Simakov:

Lo fate per i programmatori, anche principianti, o per chiunque?

Lo faccio specificamente per i principianti.

E per chi ha citato il codice? Ripete completamente l'indicatore standard, e non permette niente di nuovo; è una vecchia canzone con un nuovo tocco. Con nuove entità, un'altra classe e un altro include.

Perché è stato fatto il COD? Non può essere applicato a S20 per esempio... fisicamente non può essere applicato a un ohlc arbitrario. E quale classe può essere derivata da essa, dove crescere da lì?

 
fxsaber:

Non capisco. Hai pubblicato una versione incompleta?

Quindi non avete il controllo di aprire/chiudere un ordine, con me va tutto bene. Almeno funziona su Forex Club. Ho scritto che oggi ho allegato CloseBy alla libreria, c'è ancora un feedback da migliorare. Per esempio, lo stesso biglietto cambia o no? Forex Club non lo fa, ma altri? Cioè, dobbiamo implementare il controllo di questo, per cambiare i campi di classe richiesti, ecc. Ma quando tutto questo è finalizzato e debuggato, è un vero piacere scrivere.

 
Vladimir Simakov:

Quindi sei tu che non hai il controllo di aprire/chiudere un ordine, con me va benissimo. Almeno su Forex Club funziona. Vi ho detto che CloseBy è stato attaccato alla biblioteca su uno scratch oggi, c'è ancora un feedback da completare e da completare. Per esempio, lo stesso biglietto cambia o no? Forex Club non lo fa, ma altri? Cioè, dobbiamo implementare il controllo di questo, per cambiare i campi di classe richiesti, ecc. Ma quando tutto questo è finalizzato e debuggato, è un vero piacere scriverlo.

Ripeto ancora una volta, il tuo codice non funziona, il secondo codice funziona.

 
Maxim Kuznetsov:

Lo faccio specificamente per i principianti.

Ma per chi ha citato il codice? Ripete completamente l'indicatore standard, e non permette niente di nuovo; è una vecchia canzone con un nuovo tocco. Con nuove entità, una classe in più e una in più inlude.

Perché è stato fatto il COD? Non può essere applicato a S20 per esempio... fisicamente non può essere applicato a un ohlc arbitrario. E quale classe può essere derivata da essa, dove crescere da lì?

È puramente per comodità.

Nel segmento dei dati:

CIchimoku ind1(EURUSD,PERIOD_M5,5,10,15);

CIchimoku ind1(GBPUSD,0,10,25,30,2);

Come risultato abbiamo due indicatori, il primo sul timeframe m5, ma il secondo sarà sempre spostato di +2 timeframe dal timeframe del grafico corrente.

 
fxsaber:

Ancora una volta, il tuo codice non funziona, il secondo codice funziona.

 
Vladimir Simakov:
expert Test (EURUSD,M1) loaded successfully
'35286172': market buy 0.20 EURUSD
'35286172': accepted market buy 0.20 EURUSD
'35286172': market buy 0.20 EURUSD placed for execution
'35286172': order #2214667209 buy 0.20 / 0.20 EURUSD at market done in 172.415 ms
'35286172': market sell 0.10 EURUSD
'35286172': deal #2211904952 buy 0.20 EURUSD at 1.12941 done (based on order #2214667209)
'35286172': accepted market sell 0.10 EURUSD
'35286172': market sell 0.10 EURUSD placed for execution
'35286172': order #2214667210 sell 0.10 / 0.10 EURUSD at market done in 171.843 ms
'35286172': deal #2211904953 sell 0.10 EURUSD at 1.12936 done (based on order #2214667210)
expert Test (EURUSD,M1) removed

Non funziona.


E questo è il secondo codice

script Test4 (EURUSD,M1) loaded successfully
'35286172': market sell 1.00 EURUSD
'35286172': accepted market sell 1.00 EURUSD
'35286172': market sell 1.00 EURUSD placed for execution
'35286172': order #2214667234 sell 1.00 / 1.00 EURUSD at market done in 174.294 ms
'35286172': deal #2211904975 sell 1.00 EURUSD at 1.12936 done (based on order #2214667234)
'35286172': market buy 1.00 EURUSD
'35286172': accepted market buy 1.00 EURUSD
'35286172': market buy 1.00 EURUSD placed for execution
'35286172': order #2214667235 buy 1.00 / 1.00 EURUSD at market done in 175.016 ms
'35286172': deal #2211904976 buy 1.00 EURUSD at 1.12941 done (based on order #2214667235)
'35286172': close position #2214667235 buy 1.00 EURUSD by position #2214667234 sell 1.00 EURUSD
'35286172': accepted close position #2214667235 buy 1.00 EURUSD by position #2214667234
'35286172': deal #2211904977 sell 1.00 EURUSD at 1.12936 done (based on order #2214667236)
'35286172': close position #2214667235 buy 1.00 EURUSD by position #2214667234 done in 67.893 ms
script Test4 (EURUSD,M1) removed
Funziona.
 
Vladimir Simakov:

Questo è puramente per comodità.

Nel segmento dei dati:

CIchimoku ind1(EURUSD,PERIOD_M5,5,10,15);

CIchimoku ind1(GBPUSD,0,10,25,30,2);

Come risultato, abbiamo due indicatori, il primo sul timeframe m5, mentre il secondo sarà sempre spostato di +2 timeframe dal timeframe del grafico corrente.

Ma va bene che prima di accedere agli indicatori di diversi timeframes, bisogna battere su un tamburello e fare qualche danza?

Chi lo farà... beh, a quanto pare l'utente - che impari lo zen e il potere del non-cinese contemporaneamente :-)

La piattaforma rappresenta comode interfacce di indicatori e la loro decomposizione in buffer. Allora, perché ripetere qualcosa che è già stato fatto ed è stato ben fatto? Per dimostrare che hai familiarità con la parola "classe" qualcosa in effetti...