Problema con MT4 che apre una transazione e poi la richiude subito dopo - pagina 2

 

dovreste controllarlo in modalità test, per trovarlo ripetere o no

 

Un EA può fingere di usare numeri magici (e anche usarli la maggior parte delle volte) ma a causa di un errore di codifica (che è la norma nella scena degli spaghetti-codice-duplicazione [copia-incolla] mql4) a volte non usa la sua magia ma invece usa qualche codice intrinsecamente sbagliato come per esempio:

for(...){
   OrderSelect(...);
   if (OrderSymbol() == Symbol()){
      OrderClose(...);
   }
}

che è sepolto e dimenticato tra tonnellate di blocchi di codice simili duplicati (e copiati) e per qualche ragione eseguito solo a volte durante la luna piena (c'è un altro blocco di codice identico di 500 linee (con altre 4 occorrenze dello stesso ciclo) per la luna nuova e altri due blocchi simili per le altre volte in alcuni degli altri rami dell'unico grande mostro-if/else dell'inferno, ma questi sono già stati "sistemati").


Lì hai il tuo errore e lì i tuoi soldi sono spariti: Qualche sconosciuto aspirante duplicatore di codice di 15 anni (o dovrei dire C0d3r) con ZERO indizi ha stampato (sic!) qualche k3wl (il suo primissimo e completamente non testato) EA (perché si è annoiato con il php) e lo ha postato su qualche forum (o ha lasciato che suo cugino di 21 anni lo vendesse per soldi) e ti ha causato una perdita di diverse migliaia di dollari. Chiedimi privatamente dove dovresti mandare il 20% dei soldi risparmiati per i prossimi 3 mesi durante i quali NON userai questo tipo di EAs.


Questo thread dovrebbe essere chiuso esattamente a questo punto e poi appuntato in cima al forum con lettere rosse in grassetto fino alla fine dei tempi.

 
Santa madre di ..... una limonata in più e nessuno chiederebbe aiuto su questo forum... lol.
 
ubzen:
Santa madre di ..... un'altra limonata e nessuno chiederebbe aiuto su questo forum... lol.

La mia sfuriata era duplice.

La parte tra le righe era diretta principalmente contro coloro che scrivono e vendono questo tipo di EA ma dubito che possano anche capirlo. L'altra parte che è scritta in semplice inglese sta solo riassumendo l'evento e la situazione delle vittime e OP è una vittima (vittima di false affermazioni ma anche vittima della sua stessa ingenuità). Il danno non può più essere riparato, i soldi non ci sono più. Si può solo imparare e si deve imparare. E infine l'ultima frase del mio post (3 mesi, 20%) aveva lo scopo di amplificare il dolore percepito per massimizzare l'effetto di apprendimento.


Questo suona duro ma è l'amara verità.


La ragione dell'errore è in uno dei suoi EA che sta chiudendo gli ordini di altri EA, anche se finge di usare un numero magico, non riesce ad usare effettivamente questo numero a volte. E questo accade perché i dilettanti scrivono e vendono EA disfunzionali a persone innocenti. L'unica soluzione a questo problema è di NON usare EAs che non sono stati controllati a fondo, questo include automaticamente tutti gli EAs commerciali per i quali non è disponibile il codice sorgente. Non c'è modo di evitare di imparare la codifica o di assumere un codificatore competente e di rivedere e testare accuratamente il codice di qualsiasi EA di terze parti e di non utilizzare alcun EA closed source.

 
Sono pienamente d'accordo con te e il mio post precedente rifletteva un sentimento simile. Ho insegnato che è stato un po' duro - ma è la verità. Fornire un EA senza supporto è un crimine. Sì - l'ho detto (forse ora i moderatori avrebbero davvero bloccato il post in rosso). Penso che l'OP abbia fatto dei buoni soldi b4 i bugs.... altrimenti Ouch!
 

P

> Sto iniziando a pensare che MT4 possa avere problemi quando gestisce diversi EA allo stesso tempo

Normalmente non è un problema, ho impilato molti più EA di questo per istanza e molte istanze per VPS

> Sospetto che forse gli indicatori si stiano incasinando, generando segnali di trading e poi di chiusura

Questa potrebbe essere un'idea, specialmente se si tratta di un EA di trading in "ore tranquille" e il broker è passato di recente a STP/ECN...?

Le risultanti enormi variazioni di spread e/o gapping sui timeframe più brevi possono sconvolgere i segnali di entrata/uscita di vario tipo

FWIW

-BB-

 

È un bug, di qualche tipo. La definizione di bug è che il software si comporta in un modo che preferireste non facesse.

Potrebbe essere il programma dell'applicazione o il linguaggio di programmazione in cui è stata scritta l'applicazione.

In ogni caso, senza accesso al codice sorgente, o a un test-case riproducibile, tutto il resto è supposizione.

 

Metti ogni EAs nel proprio conto demo separato e inoltre apri un trade aperto manualmente con stop e takeprofit lontani e ordini limit e stop inseriti manualmente nella stessa coppia/coppia di valute in ogni conto e poi lasciali semplicemente funzionare tutti per qualche giorno/settimana. Se uno di questi EA decide improvvisamente di chiudere il tuo trade aperto manualmente, spostare il suo stop o cancellare uno degli ordini di entrata, allora hai senza dubbio identificato l'EA colpevole. Prova a fargli causa per riavere i tuoi soldi perché un EA NON DEVE sabotare nessun'altra attività di trading in nessuna circostanza.

Questa è la legge n. 1 della robotica di trading: "Un robot non può danneggiare le operazioni di un essere umano" (questo naturalmente include le operazioni degli altri EA)

 

Interessante. Prova a mettere su una sorta di prova su come un EA dovrebbe o non dovrebbe funzionare.

Poi fate il grande salto, fate causa e poi convincete il tribunale su come un EA dovrebbe o non dovrebbe funzionare.

Naturalmente, dovete iniziare spiegando alla corte in cosa consiste un EA. A quel punto, le spese del vostro avvocato potrebbero essere più alte di qualsiasi potenziale credito che il tribunale potrebbe concedervi, sempre che ciò accada. Altrimenti, le vostre perdite saranno semplicemente aggravate.

PS: Ho avuto un'altra lettura, qualcuno ha de-compilato il sorgente, quindi questo rende più facile argomentare il caso in tribunale. Ma allora è legale de-compilare e quindi rubare il codice?

 

Decompilare il codice e rubarlo sono due cose diverse. Decompilare è solo tradurlo in un linguaggio leggibile. Un tribunale dovrebbe permettere che un documento scritto in una lingua straniera sia tradotto in una lingua che il giudice possa leggere. Nessuno lo considererebbe un "furto".

O il codice macchina è una specie di linguaggio sacro che in nessun caso può essere tradotto o letto dai comuni mortali? Nemmeno dai giudici? Solo dai programmatori inaugurati e dalle loro macchine?


E anche se così non fosse, le stesse cose sul comportamento dell'EA potrebbero essere provate anche disassemblando il codice byte o il codice macchina stesso. (disassemblare significa solo stamparlo in un modo ben formattato e scrivere una piccola spiegazione accanto ad ogni istruzione della macchina) o semplicemente dimostrando il comportamento in un test ripetibile.