
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Chiunque apprezzi la mia soluzione, mi scriva di persona. Lo perfezionerò e lo darò via.
Buona fortuna a tutti.
Un ciclo di simboli, il controllo dell'apertura di una nuova barra quando arriva una quotazione e così via possono essere facilmente aggiunti alla mia soluzione. E cosa c'entra l'OOP?
Avete scelto un esempio sbagliato. Pensate a qualcos'altro a vostro piacimento.
E tu lo fai. Dato che i personaggi possono cambiare - dopo tutto, è vero quando si leggono i personaggi.
Fallo. Dato che i personaggi possono cambiare - perché quando si leggono i personaggi è vero.
Beh, e se lo facessi? Che cosa dice allora? Vi dirò un segreto: per me, questo tipo di compito è un gioco da ragazzi. Pensi davvero che non possa farlo? Questo è semplicemente ingenuo...
Beh, e se lo facessi? Che cosa dice allora? Vi dirò un segreto: per me, questo tipo di compito è un gioco da ragazzi. Pensi davvero che non possa farlo? Questo è semplicemente ingenuo...
Beh, fatelo già.
Artyom non ha risposto alla domanda, ma la domanda è questa: scrivere in stile procedurale, in modo che funzioni correttamente
Senza dubbio. Hedge per salvare il confronto delle operazioni di stringa, beh, se il cliente è un maniaco e farà trading su tutti i simboli contemporaneamente.
Ma sembra che non ci sia nessun altro posto dove salvare le operazioni e la memoria - tutto è minimo
void OnTimer(){
Alert(Fn_new_bar("EURUSD", PERIOD_D1)); }
//+------------------------------------------------------------------+
uint Sp_Adler32(string line){
ulong s1 = 1;
ulong s2 = 0;
uint buflength=StringLen(line);
uchar char_array[];
ArrayResize(char_array, buflength,0);
StringToCharArray(line, char_array, 0, -1, CP_ACP);
for (uint n=0; n<buflength; n++){
s1 = (s1 + char_array[n]) % 65521;
s2 = (s2 + s1) % 65521;}
return ((s2 << 16) + s1);}
//+------------------------------------------------------------------+
bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf){
static datetime st_time[];
static uint st_id[];
//---- set
datetime new_time = iTime(symb, tf, 0); if(new_time==0) return(false);
uint new_id = Sp_Adler32(StringConcatenate(symb,EnumToString(tf)));
datetime old_time = 0;
uint old_id = 0;
//---- find
int size = ArraySize(st_time);
for(int i=0; i<size; i++){
if(st_id[i]!=new_id) continue;
old_id = st_id [i];
old_time = st_time[i];
break;}
//----add new element
if(old_time==0){
ArrayResize(st_time, size+1); st_time[size]=new_time;
ArrayResize(st_id, size+1); st_id [size]=new_id; }
//----
return(old_time>0 && old_time<new_time);}
Mi scuso per il leggero ritardo.
Ecco la prima versione della funzione. Potete raffinarlo e svilupparlo ulteriormente. Se notate un errore, per favore date i vostri commenti.
Il punto non è nell'OOP ma nel fatto che il tuo codice è lineare, anche se probabilmente non lo imparerai mai...
Nessun problema. Hedge per salvare il confronto delle operazioni sulle stringhe, beh, se il cliente è un maniaco e scambierà su tutti i caratteri contemporaneamente.
Ma sembra che non ci sia nessun altro posto dove salvare le operazioni e la memoria - tutto è minimo.
Forum sul trading, sistemi di trading automatico e test di strategia
Mt4 Fine del supporto.
Artyom Trishkin, 2017.09.10 23:21
Avevo un obiettivo per il risultato finale del suo codice in stile procedurale per lavorare in un tale ciclo:
Chiamato male per abitudine -bool Fn_new_bar(string symb, ENUM_TIMEFRAMES tf) è la funzione giusta.
Bene, fallo ora.
OK. La tua soluzione funziona solo sulle zecche. Il mio è su un timer. Pensate che il mio metodo di cronometraggio con le apparizioni delle barre abbia un inconveniente. Ok. Che sia così. Aggiungerò un controllo per l'arrivo di una citazione prima di impostare una nuova bandiera a barre. Aggiungerò un altro parametro alla funzione - un simbolo. L'utente sceglierà il simbolo con cui vuole ricevere l'evento della nuova barra e lo invierà alla funzione. La funzione controllerà il tempo dell'ultima citazione di questo simbolo. Poi confronteremo l'ora dell'apparizione formale della barra e l'ora della quotazione e imposteremo il flag dell'evento.
Ho appena iniziato a studiare questo argomento, ma non vedo alcuna difficoltà.
Non si tratta di OOP, si tratta che il tuo codice sia lineare, anche se non si può mai sapere...