[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 547

 

Alp:

Mi scuso per la domanda stupida, ma comunque.

Non riesco a capirlo. Supponiamo che io compri (cioè, faccia un'operazione di acquisto) per $1.000.000 o qualsiasi altra quantità di EURUSD, in modo che il grafico salti notevolmente.

E la domanda è: dove andrà dopo un tale accordo - su o giù (un solo salto dal mio accordo)? Credo che salirà. Sto pensando correttamente?

Dimka-novitsek:

Sì, la vedo così. Perché diciamo che hai comprato l'eur, e ce n'è meno sul mercato, perché una parte rimane nel tuo armadietto. Ciò significa che il prezzo di mercato per loro salirà!

Allora diventa ancora più poco chiaro. Diciamo che compro EUR per 1 000 000 (1k) dollari (il broker moltiplica questo per 100 e come risultato l'affare è per 100k) il grafico salta 100 punti in su e immediatamente li vendo e sono sul lato positivo per 10 000 dollari bene ci commissione broker e spread come risultato 6000$ netti in tasca. (Beh, è chiaro che dopo la vendita, scenderà di nuovo di 100 punti.) Questo è senza senso!!!! Forse alla fine cadrà sul fondo? Altrimenti i giocatori molto grandi farebbero miliardi, non facendo essenzialmente nulla.

 
Roman.:

Ragazzi, potete consigliarmi su questa domanda?

Ecco uno script per trovare la dimensione massima del gioco a zig-zag da crenfx - vedi qui:

Lo lancio sul grafico dello strumento su M5 - funziona bene con il timeframe di default

è la profondità massima della storia per il simbolo nell'ufficio Alpari quando lo si carica con F2 - l'ho controllato, cioè sembra il contenuto della scheda "Esperti" del terminale client - sembra essere vero:

Quando si usa lo stesso progetto di script nel mio EA sullo stesso intervallo di tempo sullo stesso periodo grafico M5 non conta correttamente, cioè

calcola numeri molto diversi (più piccoli che nello script) o 0. Quale può essere l'errore o può essere qualche tipo di incoerenza della storia? Grazie.

Cioè, inizio nel tester con owl dopo il tempo stimato per trovare un failsafe, in teoria tutto è normale e i numeri alla fine dello script e di owl dovrebbero essere gli stessi... Quale potrebbe essere l'errore?


Controllare il numero di barre nel tester. All'inizio dovrebbe essere 1000, se è presente ovviamente
 
Vinin:

Controllare il numero di barre nel tester. All'inizio dovrebbe essere 1000, se è presente, naturalmente.

Come si può controllare?
 
Print("Bars=", Bars);
 
Vinin:
Stampa("Bars=", Bars);

Capito, grazie. Lo controllerò.
 
Signori, potreste darmi un esempio della funzione che sposta una posizione aperta a pareggio (lavoro su tick), il mio Expert Advisor ha un trawl, l'inizio di questo trawl è solo dopo la funzione di rollover to buy. Vorrei usare questa funzione nel mio articolo come esempio e verificare i miei risultati.
 

Per favore, ditemi perché in questo pezzo di codice la variabile esterna Lots111 continua ad aumentare il suo valore, lo moltiplica per un numero sconosciuto e diventa 4354354664450000000000000000.

La variabile Lots111 non è usata da nessun'altra parte oltre a questo frammento di codice. Lots111 è uguale a 0,01, mentre la variabile dcou è uguale a 2-3. Per essere più preciso, ho notato che aumenta ad ogni nuova barra; non riesco a capire perché. Come è possibile che una variabile esterna che non è usata da nessun'altra parte mantenga il suo valore e aumenti su ogni barra, molto probabilmente moltiplicato per 2.

double fGetLots(int a_cmd_0) {
   int dcou;
   dcou = AccountBalance()/2000;
   Lots111 = Lots111*dcou;
   int i11;
   int orders;
   
   for(i11=0;i11<OrdersTotal();i11++)
     {
     if(OrderSelect(i11,SELECT_BY_POS,MODE_TRADES) == true)
       {
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
         orders++;
         }
       }
     }
   static double Lots2;
   
   if(orders == 0)
     {
     Lots2 = Lots111;
     }
   Comment(Lots111,"\n",Lots2,"\n",orders,"\n",dcou);
   double l_lots_4;
   int l_datetime_12;
   switch (gi_256) {
   case 0:
      l_lots_4 = Lots2;
      break;
   case 1:
      l_lots_4 = NormalizeDouble(Lots2 * MathPow(MultiLotsFactor, gi_360), gd_240);
      break;
   case 2:
      l_datetime_12 = 0;
      l_lots_4 = Lots2;
      for (int l_pos_20 = OrdersHistoryTotal() - 1; l_pos_20 >= 0; l_pos_20--) {
         if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
               if (l_datetime_12 < OrderCloseTime()) {
                  l_datetime_12 = OrderCloseTime();
                  if (OrderProfit() < 0.0) l_lots_4 = NormalizeDouble(OrderLots() * MultiLotsFactor, gd_240);
                  else l_lots_4 = Lots2;
               }
            }
         } else return (-3);
      }
   }
   if (AccountFreeMarginCheck(Symbol(), a_cmd_0, l_lots_4) <= 0.0) return (-1);
   if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
   return (l_lots_4);
}
 
sss2019:

Per favore, ditemi perché in questo pezzo di codice la variabile esterna Lots111 continua ad aumentare il suo valore, lo moltiplica per un numero sconosciuto e diventa 4354354664450000000000000000.

La variabile Lots111 non è usata da nessun'altra parte oltre a questo frammento di codice. Ho Lots111 uguale a 0,01 e dcou variabile uguale a 2-3.

Prova a inizializzare le variabili a volte. A volte aiuta. Soprattutto quando sono usati di default. Cioè, il valore non è esattamente definito, e vengono moltiplicati, divisi per loro. Puoi anche guadagnare la divisione per zero nello stesso modo
 
Vinin:
Prova a inizializzare le variabili qualche volta. A volte aiuta. Soprattutto quando sono usati di default. Cioè, il valore non è esattamente definito, e vengono moltiplicati, divisi per loro. Puoi anche guadagnare la divisione per zero nello stesso modo


Puoi spiegare questo in modo più dettagliato? Oh beh, penso di aver capito, ho impostato tutte le variabili ai loro valori originali, ma il problema persiste.
 
sss2019:

Questo è fare, si prega di spiegare in modo più dettagliato. Penso di aver capito, ho impostato tutte le variabili ai loro valori originali ma il problema persiste.

Hai strappato del codice da qualche EA (avendolo già hackerato), ma non è importante (almeno hai cercato di capirlo). Ma avresti dovuto creare il tuo sulla sua base, che avresti navigato facilmente. E poi non avresti avuto alcun problema. Lavora con la testa.
Motivazione: