Un bug nella funzione OrderSend() ? - pagina 2

 
hoz:


Giusto a giudicare dal registro. Ma se lo fai girare nel tester con le stesse impostazioni, allora le pause non sono impostate correttamente periodicamente, cosa che ho già detto... Questo è quello che ho scritto. Ho letto il registro, tutto è bello e chiaro... Guardando lo screenshot... (Quando guardo il grafico,noto che l'entrata di acquisto è un po' più bassa dell'entrata di acquisto... Questo è contrario alla condizione.

Ma è anche strano che non l'ho notato su M5, MA è stato notato che alcune voci sono state perse.

Se guardiamo il disegno, vedremo che il timone è in piano, mentre alle inversioni non possiamo prenderlo!
 
borilunad:

Victor, devi studiare gli indicatori e i metodi per utilizzarli nel tuo EA. Perché mi sembra che tu voglia qualcosa che non sai come eseguire.

Li ho studiati, vero? Voglio semplicemente che il prezzo sia impostato più basso (più alto) del grafico disegnato al prezzo di apertura o di chiusura o non importa. Non c'è differenza, perché se prendete una barra con indice 1, è già stata formata e il suo valore non cambia più... Se l'indicatore non viene ridisegnato, non importa come viene disegnato (anche se capisco come viene calcolato, perché ci ho fatto attenzione ed è semplice). Dopotutto, il suo valore sulle barre precedenti è già presente, e si può ottenere, cosa che ho fatto.

borilunad:

E un'altra cosa, non dovreste essere così "attaccati" a condizioni molto rigide, perché il prezzo non si comporterà certamente come volete voi nella metà dei casi. Perciò dovete analizzare le opzioni di ciò che farete nei casi peggiori.

Boris, che in un mercato reale ci possono essere diverse opzioni e le condizioni non saranno sempre soddisfatte... SÌ! Lo capisco. Ma se le condizioni non sono soddisfatte nel tester, non è affatto strano. Nel tester non ci sono riquote, non ci sono errori legati all'impegno del flusso commerciale, ecc. Logicamente tutti gli ordini dovrebbero essere perfettamente eseguiti.

Nel tester, se tutti gli ordini funzionano perfettamente, allora posso già pensare come si comporta idealmente la strategia. E poi prendere decisioni appropriate in base alle statistiche.

Ma se anche nello Strategy Tester non possiamo eseguire la strategia, e questa mente palesemente ad ogni passo, allora cosa? Scappare da questa piattaforma e non guardarsi indietro? Cercare altri modi?

Voglio davvero scrivere un bot sensato, ho le mie strategie, che sono piene dei miei approcci e osservazioni. Qualcosa è già stato scritto, qualcosa è stato testato nella vita reale, qualcosa è stato eseguito nel tester, e tutto funziona. Il più delle volte ho scritto degli EA sulla base delle bacchette, ma le voci non erano basate sulle bacchette.

Ho deciso di usare le letture delle mie bacchette come input, e sono rinato. Non riesco a ottenere nessuna voce stabile, sono saltate, inserite a prezzi sbagliati da qualche parte. Non credo che sarebbe appropriato dire che non dovrei fidarmi degli indici, perché il computer ha una certa serie di valori, e devono funzionare correttamente.

Ho già giustificato tutto e, a proposito, ho inviato la domanda a sysop. Finora non ho sentito una risposta comprensibile...

borilunad:

Francamente, non capisco ancora perché sia così importante per voi entrare in questo bar e non nell'altro. A mio parere, la cosa principale è identificare e utilizzare la tendenza che è iniziata nel tempo, e non un certo punto di ingresso. Prova a confrontare diversi Mashkey e poi impara ad usarli come filtri di entrate indesiderate e non come segnali di entrata, che spesso falliscono, e altri indicatori non sono migliori!

Boris, se la vedi in questo modo, non ha molta importanza dove entri :) Si può entrare da qualche parte e trainare per le voci e nemmeno spontaneamente. La mia risposta è semplice! Ci sono certe condizioni. Se qualcosa non si è avverato sulla candela attuale, allora lasciate che gli altri facciano trading... io aspetterò... Non sto inseguendo la tendenza, la sto seguendo. Non ho nemmeno intenzione di scrivere un altro graal per un certo pezzo di storia.

Se pensiamo che le entrate secondo la strategia non saranno sempre osservate anche sul TF H1, che dire dei TF inferiori? Dopo tutto l'H1 non è un minuto, e nemmeno un 5 minuti. In TF H1 l'Expert Advisor ha un sacco di tempo per "pensare", soprattutto nel tester ... Quindi non è questo il punto.

 
borilunad:
Tieni presente che è solo in piano che Mashka si attacca alle barre, e non puoi prenderlo sugli spread!

Non importa :) La mia voce sarà diversa. Questo è solo un piccolo trucco che devo padroneggiare. Più avanti diventerà più complicato.
 
hoz:

Non importa :) La mia entrata sarà diversa. È solo un piccolo trucco da padroneggiare. Più avanti, diventerà più complicato.
E la cosa più importante è che tu abbia persistenza, la verità è che probabilmente ti manca la pazienza e la flessibilità, ma col tempo otterrai ciò che vuoi! Buona fortuna!
 
forse testare i prezzi di apertura, specialmente sulle ore...
 
YOUNGA:
forse testare sui prezzi di apertura, specialmente sui tick...
Certo, meglio sulle zecche! L'immagine sarà più plausibile.
 
borilunad:
E soprattutto, avete la persistenza, la verità è, forse, non abbastanza pazienza e flessibilità, ma con il tempo raggiungerete ciò che vi siete prefissati! Buona fortuna!


Grazie! A proposito, l'ho sentito dire recentemente da un conoscente... un broker :) Ha detto che ero molto testardo e troppo sicuro di me. Non ho altre opzioni, devo solo finire quello che ho iniziato, altrimenti non succederà nulla.

YOUNGA:
potete testare i prezzi di apertura, specialmente sugli orari...


Sembra che alcuni pip extra siano "mangiati via" da qualche parte o qualcosa del genere. Aumentando l'indentazione a 15, tutto ha cominciato ad essere impostato dove non era impostato. Con meno rientri non ovunque...

Ecco cosa penso. Devo pensare a un modo per far apparire i breakpoint quando si testa un Expert Advisor, se si verificano alcune condizioni.. L'ho già fatto quando un ordine viene inviato o si verifica un errore, cioè non viene inviato da qualche parte, ma quale condizione impostare per "catturare" il momento in cui l'ordine non viene aperto, dove pensavo fosse, ... questo è già interessante. Certo, possiamo farlo per tempo, ma non è l'opzione migliore.

 

static datetime lastBarTime = 0; // Ultimo tempo di calcolo

Rimuovete questa linea dall'inizio e aggiungete la dichiarazione corrispondente alla sezione globale.

Dopo di che potete ripetere la serie di interruttori TF, preferibilmente nella stessa sequenza di prima.

Sì, aggiungete anche in init: lastBarTime = 0;

 
bool OpenSell()
{
   int ticket = -1;
   double OOP = fastMa - SellHear * pt;               // Получаем значение цны открытия
   
   if ((Bid - ND(OOP)) >= g_stopLevel)                // Проверка цену открытия на стоплевел
   {
       if (ND(OOP) < Bid)           // Проверка что цена открытия ниже Bid, т.к. у нас вход отложенником
       {
           Print("Bid = ", Bid);
           Print("Ask = ", Ask);
           Print("fastMa = ", fastMa);
           Print("Цена покупки = ", fastMa + buyHear * pt);
           Print("i_thresholdFromMa * pt = ", i_thresholdFromMa * pt);
           ticket = OrderSend(Symbol(), OP_SELLSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0);
       }
   }
   if (ticket < 0)  <------ это как понимать? если ордер не установлен, то вернуть true, в функции bool OpenBuy() почему-то наиборот, где правильно????
   {
       return (true);
   }
   else
    
   Alert (GetLastError());
}
int GetStateMa(double fastMa, double slowMa)
{
   if (fastMa > slowMa)                          // Если условия выполнены, то..
       return (MA_DIRECT_TO_UP); <--здесь вверх  // ..машки направлены вниз <-- а здесь
   
   if (fastMa < slowMa)                          // Если условия выполнены, то..
       return (MA_DIRECT_TO_DOWN);  <---         // машки направлены вверх  <---
   if (fastMa = slowMa)
       return (MA_DIRECT_TO_NONE);              // Машки не имеют выраженного направления
}
и вообще весь код какой-то "Олбанский"
 
pako:
L'albanese non è vietato:)