Ciclo operatore 'per' domande - pagina 8

 
WhooDoo22:

L'errore dello snapshot di cui sopra è il problema attuale che deve essere affrontato. Che consiglio mi date per risolvere questo problema?

Grazie.

Ho coperto la ragione di ciò in un post precedente (ultimo post a pagina 4) . . . ignorando che ti suggerisco di formulare un ciclo (for o while, sono lo stesso) che passerà in rassegna TUTTI gli ordini aperti e troverà quelli corretti da modificare e chiudere . . . ma in realtà quello che dovresti fare è dimenticare mql4 per qualche mese e imparare prima le basi . . .
 

Simon,

Quali basi in particolare credi sia meglio studiare?


Inoltre, sto analizzando questo attualmente:

Orai è 2, l'OrderSelect() cerca di selezionare l'ordine alla posizione 2 ma non ci riesce... ci sono solo 2 ordini aperti, nelle posizioni 0 e 1, quindi OrderSelect() restituisce false, cosa fa OrderSymbol()? non c'è nessun ordine valido selezionato. . ma anche se restituisce true per qualche strana ragione, la OrderSelect() ha già restituito false,false e true = false . .. il ciclo while è finito ei è impostato a 2

Ora lavorate attraverso il resto del codice tenendo presente chei ha un valore di 2. . .


Ilmodo in cui il post è stato scritto è un po' difficile da leggere , ma ho trovato questa sezione di cui sopra interessante.


Se il valore attuale di 'i' è ora due (2) allora la funzione OrderSelect() tiene 2 come numero di posizione dell'ordine. Ovviamente non c'è nessun ordine nella posizione d'ordine 2 assumendo che l'ordine sia già stato chiuso, quindi viene prodotto un errore "biglietto non valido".

Attualmente sto lavorando su questo.

Sto pensando di azzerare il valore 2 attualmente contenuto nella funzione OrderSelect() e di aggiungere una condizione prima dell'esecuzione delle linee di codice sotto il corpo del ciclo 'while'.

Grazie.

 
WhooDoo22:

Simon,

Quali basi in particolare credi sia meglio studiare?

Tutti... . ricerca con Google troverai molte risorse, non fare affidamento solo su una fonte per qualsiasi argomento, trovane SEMPRE più di una in modo da poter testare la tua comprensione . . . dovresti coprire almeno le seguenti e molto di più:

  • binario
  • esadecimale
  • algebra booleana di base
  • cos'è un algoritmo
  • diagrammi di flusso
  • variabili e tipi di variabili
  • condizioni
  • cicli
  • array e ordinamento degli array
  • nozioni di base sulla gestione delle stringhe

Questo presuppone che le tue abilità matematiche siano buone, altrimenti devi ripassare l'algebra.

 
WhooDoo22:

Se il valore attuale di 'i' è ora due (2) allora la funzione OrderSelect() mantiene 2 come numero di posizione dell'ordine. Ovviamente non c'è nessun ordine nella posizione d'ordine 2 assumendo che l'ordine sia già stato chiuso quindi viene prodotto un errore "biglietto non valido".

Attualmente sto lavorando su questo.

Sto pensando di azzerare il valore 2 attualmente contenuto nella funzione OrderSelect() e di aggiungere una condizione prima dell'esecuzione delle linee di codice sotto il corpo del ciclo 'while'.

Grazie.

Risolvi la causa principale del problema, non cercare di affrontare i sintomi... il tuo ciclo doveva trovare l'ordine USDJPY, ma cosa dovrebbe fare se non ce n'è uno? Cosa dovrebbe fare se ce n'è più di uno?

Il
tuo codice deve gestire non solo ciò che pensi debba accadere ma anche ciò che può accadere...
 

Simon,

Dedicherò parte del mio tempo allo studio di queste basi ma ;) Il volume II DEVE essere completato. Ho anche trovato un uso più efficace delle medie mobili per i blocchi di codice MF. Sono molto orgoglioso di me stesso per aver considerato e sviluppato un uso più redditizio per queste medie mobili. Invece di progettare i miei segnali di uscita/entrata basati sulle medie mobili, ho deciso di considerare questi segnali da eseguire all'interno di questi periodi di media mobile e utilizzare le medie mobili appropriate per le uscite all'interno dei periodi di media mobile. Fondamentalmente medie mobili all'interno di medie mobili. Anche il Volume II si adatterà meglio perché non aprirà sempre ordini da 0,5 lotti ogni volta Solo quando cinque medie mobili sono in grado di adattarsi correttamente all'interno di due medie mobili (un pezzo di mercato). Esempio: la media mobile uno e la media mobile due cento creano una sezione in cui giocare se si crea abbastanza supporto/resistenza. Mi fa molto piacere averci pensato prima di oggi :)

Grazie.

 

Simon,

ma cosa dovrebbe fare se non c'è?

Ecco perché desidero aggiungere una condizione sotto il ciclo 'while' che sarà controllata prima dell'esecuzione della funzione OrderClose().

cosa dovrebbe fare se ce n'è più di uno ?

Non ho considerato questo ma lo sto considerando ora.

Iltuo codice deve gestire non solo ciò che pensi debba accadere ma anche ciò che può accadere.

Sì, sono pienamente d'accordo.

Grazie.

 
WhooDoo22:

Simon,

Dedicherò parte del mio tempo allo studio di queste basi ma ;) Il volume II DEVE essere completato. Ho anche trovato un uso più efficace delle medie mobili per i blocchi di codice MF. Sono molto orgoglioso di me stesso per aver considerato e sviluppato un uso più redditizio per queste medie mobili. Invece di progettare i miei segnali di uscita/entrata basati sulle medie mobili, ho deciso di considerare questi segnali da eseguire all'interno di questi periodi di media mobile e utilizzare le medie mobili appropriate per le uscite all'interno dei periodi di media mobile. Fondamentalmente medie mobili all'interno di medie mobili. Anche il Volume II si adatterà meglio perché non aprirà sempre ordini da 0,5 lotti ogni volta Solo quando cinque medie mobili sono in grado di adattarsi correttamente all'interno di due medie mobili (un pezzo di mercato). Esempio: la media mobile uno e la media mobile due cento creano una sezione in cui giocare se si crea abbastanza supporto/resistenza. Mi fa molto piacere averci pensato prima di oggi :)

Grazie.

Non credo che si possa completare un EA funzionante senza capire le basi . . e stai perdendo tempo prezioso cercando di farlo. C'è solo un modo più veloce per fare qualcosa, farlo correttamente la prima volta.
 

Simon,

Non credo che tu possa completare un EA funzionante senza capire le basi

Capisco alcune basi ma non tutte. Credi davvero che comprendere tutte le basi del codice sia l'unico percorso verso il completamento di un expert advisor?

Personalmente, credo fortemente di aver bisogno solo di un dizionario MetaEditor in concerto con MetaEditor per completare la codifica di un consulente esperto.

C'è solo un modo più veloce per fare qualcosa, farlo correttamente la prima volta.

Sì, certo. Sono d'accordo.

Grazie, grazie

 
WhooDoo22:

Simon,

Non credo che tu possa completare un EA funzionante senza capire le basi

Capisco alcune basi ma non tutte. Credi davvero che comprendere tutte le basi del codice sia l'unico percorso verso il completamento di un expert advisor?

Personalmente, credo fortemente di aver bisogno solo di un dizionario MetaEditor in concerto con MetaEditor per completare la codifica di un expert advisor.

Penso che il codice che avete prodotto finora dimostri ampiamente il mio punto di vista. Non si può usare OrdersTotal() come parte di un ciclo se non si sa che la prima posizione nel pool è 0, questo è solo un esempio, ci sono molte, molte altre situazioni in cui è necessario conoscere le basi; cicli, operatori bitwise, ecc, ecc
 

Simon,

Ho scritto che avrei destinato una parte del mio tempo a studiare le basi della codifica e questo è ciò che farò. Il volume II deve essere completato. Inizierò a studiare le basi che rafforzeranno prima le mie debolezze, poi ritoccherò le basi più familiari per assicurare una comprensione accettabile della maggior parte delle basi di codifica.

Grazie.