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

 
dixi:

MetaEditor ha smesso di funzionare dopo aver reinstallato il terminale. Funziona solo se non si cambia nulla nel codice dell'indicatore. Se si cambia qualcosa, anche il colore della linea, si genera un errore:

Il sistema operativo è Windows 7. Chissà, forse qualcuno si è trovato di fronte a un simile inconveniente. Puoi dirmi cosa fare?


In primo luogo, andate nelle proprietà del terminale e nella scheda "Compatibilità" spuntate "Esegui come amministratore". In secondo luogo, fate lo stesso con il file che lancia l'editor di codice. Il file è MetaEditor.exe. In terzo luogo, personalizzare il sistema operativo. L'ultimo punto è abbastanza veloce se sai esattamente di cosa hai bisogno.
 
demlin:

Saluti a tutti!

Per favore, aiutatemi con questo problema: non riesco a far ridisegnare l'indicatore con la comparsa di una nuova barra (intervallo D). П

Devo riavviarlo manualmente.


La linea 44 non è assolutamente necessaria. La chiamata di funzione per il ricalcolo delle candele non calcolate restituirà tutte. Inoltre, nel codice della funzione iniziale, la chiamata alla stessa funzione (linea 64) dovrebbe, in teoria, restituire zero. Fate attenzione a questo. È arrivato un nuovo giorno (una nuova candela). non è chiaro cosa stia succedendo - l'indicatore è stato interrotto ieri e riavviato oggi, o sta testando nel tester? Il riavvio innescherà la funzione di inizializzazione, poi partirà l'avvio. Niente viene ridisegnato all'inizio, poiché abbiamo già chiamato le barre non contate all'avvio. Se nel tester, può essere ridisegnato.

 
FxPro2:
Ciao a tutti! Mi sono imbattuto in un vecchio esperto che lavora con l'indicatore asctrend. Vorrei verificare come si comporta questo indicatore in tempo reale, ma non posso sempre seguire i punti e il mio trading non è completo. Ho controllato il tester, c'è un segnale in ogni punto, ma l'ho messo su una demo e ho notato la cosa che la demo salta i segnali, mentre il log non ha scritto nulla all'esperto, scavando nel codice e non ho capito quale sia il problema :( forse qualcuno mette il naso in quello che può essere il problema?

Il problema è che non capisci il codice che stai usando. Il problema è che hai in mano una mitragliatrice e per qualche motivo non sempre spara. Non sarebbe meglio mettere le mani su un dispositivo di cui si capisce tutto? А?
 
drknn:

In primo luogo, andate nelle proprietà del terminale e nella scheda Compatibilità spuntate la casella "Esegui come amministratore". In secondo luogo, fate lo stesso con il file che lancia l'editor di codice. Il file è MetaEditor.exe. In terzo luogo, personalizzare il sistema operativo. L'ultimo punto è abbastanza facile da risolvere, se sai cosa vuoi.
Grazie! Capito!!! :)))
 
Dimka-novitsek:

se (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)<0.5*Point)

È solo che la variante senza NormalizeDouble non è così affidabile rispetto a zero. Qui funziona.


Non si tratta di ND. Point è la dimensione di un punto; moltiplichiamo per zero cinque, sarà 0,00005 per esempio; non vedo alcuna ragione per confrontare questo numero con OrderClosePrice()-OrderTakeProfit(). TP non garantisce esattamente lo stesso prezzo di chiusura. Inoltre le condizioni di controllo saranno diverse per Bais e Sé.

if(OrderType() == OP_SELL)
       {
        if( NormalizeDouble(OrderTakeProfit()-OrderClosePrice(),Digits) >= 0
          && OrderTakeProfit() != 0)    

Questo design è più affidabile.

 
drknn:

Il problema è che non capite il codice che state usando. Il problema è che avete preso una mitragliatrice e per qualche motivo non sempre spara. Non sarebbe meglio mettere le mani su un dispositivo di cui si capisce tutto? А?
Forse. Ma i tuoi due ultimi post non sono altro che moralizzatori, e faresti meglio a indirizzarli verso l'idea giusta. Se non avete un tale desiderio, perché scrivere cose inutili? Non ho costretto nessuno ad aiutarmi, se non c'è il desiderio, non mi offendo, il lavoro è difficile, lo capisco perfettamente.
 
drknn:
Voi ragazzi con i codici lunghi! Voglio ribadire che il codice di qualcun altro è prima di tutto un crittogramma, che deve ancora essere decifrato! E questo è un sacco di lavoro! Pensate che qualche programmatore voglia scavare in chilometri di elenchi? Lasciate che dia il mio codice a uno di voi solo per tremila righe e chiedete di eliminare un piccolo malinteso di questo codice. Pensi di voler solo entrare nel mio cervello? Ne dubito ancora. Quindi ho una richiesta da farvi: quando fate una domanda chiave, descrivete il problema il più brevemente possibile e allo stesso tempo rendete la descrizione sufficiente per capirne l'essenza. Altrimenti il tuo grido è un grido nel vuoto. Il codice può essere allegato al post. Tutto questo è necessario e sufficiente.

Sono completamente d'accordo con te.


FxPro2:

drknn:

La fregatura è che non capisci il codice che stai usando. La fregatura è che hai preso una mitragliatrice e per qualche motivo non spara sempre. Non sarebbe meglio mettere le mani su un dispositivo di cui si capisce tutto? А?
Forse. Sono solo i tuoi ultimi due post che non sono andati da nessuna parte, solo moralizzando, o meglio, indicando l'idea giusta. Se non avete questo desiderio, perché scrivere cose inutili? Non ho costretto nessuno ad aiutarmi, se non c'è il desiderio, non mi offendo, il lavoro è difficile, lo capisco perfettamente.

Ma davvero non capisci il codice che hai dato prima, vero?

 

Ciao a tutti!!! Aiuto plz, solo imparare a scrivere, peredomnoy ottenuto questo problema, non posso scrivere il codice per aumentare la dimensione del lotto da un certo passo dato nel prametrov, rivisto un mucchio di consiglieri ed è stato in grado di risolvere, ho ottenuto per aumentare il lotto, solo a seconda del margine. Si prega di consigliare dove cercare, e la mia testa è già rotta. Ho già la testa incasinata, grazie!

 
SeALALex:

Ciao a tutti!!! Aiuto plz, solo imparare a scrivere, peredomnoy ottenuto questo problema, non posso scrivere il codice per aumentare la dimensione del lotto da un certo passo dato nel prametrov, rivisto un mucchio di consiglieri ed è stato in grado di risolvere, ho ottenuto per aumentare il lotto, solo a seconda del margine. Si prega di consigliare dove cercare, e la mia testa è già rotta. Ho già la testa incasinata, grazie!

Mostra il tuo codice con la condizione, dopo la quale è necessario aumentare il lotto di un certo passo, impostato in parametri, e come hai cercato di implementare questo.
 
Болк открытия на бай
if(Buy==true) 
  {Buy=false;

   ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
   if(ticket>0)
    { 
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
      {Print("BUY order opened : ",OrderOpenPrice());
       Alert("Buy Order for ",Symbol());
       SendMail("Buy Order "+Symbol()+" "+Ask,SL);     
       }
     }
     else Print("Error opening BUY order : ",GetLastError()); 
     return(0); 
   }

Умножение лота в зависимости от маржи нашел в советнике, 
код вставил работает вот только в советнике он увеличивает на определенный шаг, у меня просто в %-ом соотношении

double LotSize() 
  
   {
   double lots_0;
   if (MicroLots == FALSE) {
      lots_0 = NormalizeDouble(AccountFreeMargin() * RiskPercent / 1000.0, 1);
      if (lots_0 < 0.1) lots_0 = Lots;
      if (lots_0 >= 1.0) lots_0 = NormalizeDouble(lots_0, 1);
      if (lots_0 >= 100.0) lots_0 = 100;
   } else {
      lots_0 = NormalizeDouble(AccountFreeMargin() * RiskPercent / 1000.0, 2);
      if (lots_0 < 0.01) lots_0 = Lots;
      if (lots_0 >= 1.0) lots_0 = NormalizeDouble(lots_0, 2);
      if (lots_0 >= 100.0) lots_0 = 100;
   }
   return (lots_0);
}
È così
Motivazione: