Problema con la convalida di EA sul mercato - pagina 11

 
Vadim Zotov:

Non ci dispiace. Lasciatelo controllare. Lasciategli solo dire cosa ha fatto per causare l'errore. Ma nel modo in cui è ora - ci hanno mostrato il codice di errore e questo è tutto: non possiamo ri-simulare perché le condizioni dell'esperimento non sono fissate. Questo rende molto difficile trovare gli errori.

Cioè, se ti viene detto cosa stanno facendo lì, tu semplicemente aggirerai deliberatamente le loro condizioni, e non lavorerai sul resto, così vuoi?

 
Artyom Trishkin:

Quindi, se ti viene detto cosa stanno facendo lì, tu semplicemente aggirerai deliberatamente le loro condizioni e non lavorerai sul resto, così vuoi?

Una sorta di sospetto eccessivo. L'obiettivo è aiutare la persona a trovare l'errore o solo prenderla in giro facendola lavorare?

Fategli controllare tutte le condizioni possibili. Ma che dica cosa ha causato l'errore. Questo permetterà alla persona di non indovinare in base ai fondi di caffè, ma di modellare la situazione, trovare l'errore e correggerlo.
 
Ivan Titov:

Perché il valore MinLot include una variazione di volume a gradini? Non è il suo posto. Un semplice esempio: incolleremo in questa funzione il valore 0,285 con min lot 0,01, incremento 0,01 e max lot 100,0 (valori standard nella maggior parte dei broker). Nell'output otteniamo lo stesso valore senza modifiche. Questo è l'errore 131, perché 0,285 non è un multiplo di 0,01 (passo di volume).

Notate anche che dopo la linea:

if (ret > MaxLots) ret = MaxLots;

non c'è un controllo della correttezza del volume. Dopotutto, MaxLots è calcolato, ma il suo valore può avere una cifra significativa sia nel 5° che nell'8° carattere, che non entrerà nel passo del volume.

P. S. Usa il pulsante SRC per inserire il tuo codice.

 
Artyom Trishkin:

Quindi, se ti viene detto cosa stanno facendo lì, aggirerai deliberatamente i loro termini e condizioni e non lavorerai sul resto, così vuoi?

Artem, questo è davvero eccessivo. L'obiettivo è scrivere un prodotto di qualità, non prendersela con il codice. Penso che abbiate mai scritto un programma per qualcuno e vi siete imbattuti nel fatto che il cliente ha fatto crashare il programma con alcune azioni non volute. In questo caso un messaggio di errore non è sufficiente, poiché bisogna capire come è stato ottenuto questo risultato. E questa è esattamente la sequenza di azioni.

Per esempio, non è sufficiente specificare l'errore nel Service Desk. Dovete aggiungere i passi che causano la riproduzione di questo errore. Così, si ottiene un evidente squilibrio: quando si parla di un prodotto di un'azienda, questa deve fornire informazioni sulla riproduzione, mentre quando si parla di un prodotto di mercato, tutti i programmatori devono indovinare da soli cosa ha causato l'errore.

 
Ihor Herasko:

Artem, questo è davvero eccessivo. L'obiettivo è scrivere un prodotto di qualità, non prendersela con il codice. Penso che abbiate mai scritto un programma per qualcuno e vi siete imbattuti nel fatto che il cliente ha fatto crashare il programma con alcune azioni non volute. In questo caso un messaggio di errore non è sufficiente, poiché bisogna capire come è stato ottenuto questo risultato. E questa è esattamente la sequenza di azioni.

Per esempio, non è sufficiente specificare l'errore nel Service Desk. Dovete aggiungere i passi che causano la riproduzione di questo errore. Così otteniamo un evidente squilibrio: quando si parla del prodotto di un'azienda, questa deve fornire informazioni sulla riproduzione, mentre quando si parla di un prodotto del Mercato, tutti i programmatori devono indovinare da soli cosa ha causato l'errore.

Sono d'accordo, mi sono un po' eccitato - ci sono cospirazioni ovunque

 
Ihor Herasko:

Perché il valore MinLot include una variazione di volume a gradini? Non è il suo posto. Un semplice esempio: incolleremo in questa funzione il valore 0,285 con min lot 0,01, incremento 0,01 e max lot 100,0 (valori standard nella maggior parte dei broker). Nell'output otteniamo lo stesso valore senza modifiche. Questo è l'errore 131, perché 0,285 non è un multiplo di 0,01 (passo di volume).

Notate anche che dopo la linea:

non c'è un controllo della correttezza del volume. Dopotutto, MaxLots è calcolato, ma il suo valore può avere una cifra significativa sia nel 5° che nell'8° carattere, che non entrerà nel passo del volume.

P. S. Si prega di incollare il codice attraverso il pulsante SRC.


Grazie per i vostri commenti.

 
Ihor Herasko:

Artem, questo è davvero eccessivo. L'obiettivo è scrivere un prodotto di qualità, non prendersela con il codice. Penso che abbiate mai scritto un programma per qualcuno e vi siete imbattuti nel fatto che il cliente ha fatto crashare il programma con alcune azioni non volute. In questo caso un messaggio di errore non è sufficiente, poiché bisogna capire come è stato ottenuto questo risultato. E questa è esattamente la sequenza di azioni.

Per esempio, non è sufficiente specificare l'errore nel Service Desk. Dovete aggiungere i passi che causano la riproduzione di questo errore. Così, si ottiene un evidente squilibrio: quando si parla di un prodotto di un'azienda, questa deve fornire informazioni sulla riproduzione, mentre quando si parla di un prodotto di mercato, tutti i programmatori devono indovinare da soli cosa causa un errore.


Ma l'uomo parla di affari.

Scrivere come il prodotto è stato testato, con quali parametri e in quale periodo è un affare minuto.

E ci vorrà molto meno tempo per risolvere questo bug.

 
Vladimir Gribachev:

Ma l'uomo sta facendo un punto.

Scrivere come il prodotto è stato testato, con quali parametri e per quanto tempo è una questione minuta.

E ci vorrà molto meno tempo per risolvere questo bug.

Grazie per il sostegno, colleghi!

Finora avevo l'impressione che la mia voce fosse uno squittio nel deserto. Tutti i tentativi di trovare la verità in questa vicenda sono caduti in un silenzio assordante.

Spero che alla fine saremo ascoltati e che i moderatori non terranno più segreti i termini dei loro esperimenti sui nostri sviluppi.

 

Peace by Squeak - al moderatore una sirena)

Non capisco l'esigenza di aprire trade a qualsiasi simbolo e timeframe con valori iniziali arbitrari. Per esempio, come aprire un'operazione su EURUSD con 0,06 lotti e un deposito iniziale di 30 dollari? È passato un mese da quando ho cercato di pubblicare il prodotto.

 
Ivan Titov:

Peace by Squeak - al moderatore una sirena)

Non capisco l'esigenza di aprire trade a qualsiasi simbolo e timeframe con valori iniziali arbitrari. Per esempio, come aprire un'operazione su EURUSD con 0,06 lotti e un deposito iniziale di 30 dollari? È passato quasi un mese da quando ho cercato di pubblicare il prodotto.

Nessuno vi obbliga ad aprirlo con un tale lotto.

Fa un controllo sul lotto massimo consentito, e ad un dato valore superiore al consentito, il lotto sarà ricalcolato al massimo possibile.

Motivazione: