Errori, bug, domande - pagina 144

 
pronych:

È sempre stato difficile gestire gli ordini pendenti. anche su mt4. forse provare ad allontanarsi da questo? per esempio, fare degli ordini pendenti virtuali (basta memorizzarli in variabili e aprirli sul mercato quando il prezzo ha attraversato). Il tempo è importante ora...

Non ho tempo... ho appena eseguito il debug del codice.

almeno avere il tempo di fare qualche test e messa a punto

 
Valmars:
Questi singoli errori non influenzeranno il destino della tua EA nel campionato. Ma se in assenza di denaro farà ripetuti tentativi di aprire una posizione generando gigabyte nel suo registro, come è successo nei precedenti campionati, sarà squalificato.
No, quando l'ordine in sospeso viene cancellato, ovviamente, un altro non verrà piazzato se non ci sono soldi
 
Ho un problema nel determinare i livelli di stop per gli ordini pendenti. Quando il mercato è calmo e vogliamo piazzare un ordine stop ad un livello ammissibile, la funzione SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funziona perfettamentee gli ordini vengono piazzati e tutti sono felici, me compreso. Tuttavia, se il mercato si muove fortemente all'inizio delle sessioni di trading, questa funzione smette di funzionare, gli ordini non vengono piazzati e il terminale inizia a generare errori sugli stop non validi.

Non vorrei che il mio EA fosse escluso dalla competizione a causa di questo tipo di dipendenza dalle caratteristiche raccomandate. Ma allora come faccio a sapere il corretto livello di stop consentito per un dato simbolo al momento?

P.S. Non vorrei usare la selezione con aumento incrementale in caso di errore, e il numero di errori in questo caso aumenterà.
 
Vladix:
Ho un problema nel determinare i livelli di stop per gli ordini pendenti. Quando il mercato è calmo e vogliamo piazzare un ordine stop ad un livello ammissibile, la funzione SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funziona perfettamentee gli ordini vengono piazzati e tutti sono felici, me compreso. Tuttavia, se il mercato inizia a vibrare fortemente all'inizio di una sessione di trading, questa funzione smette di funzionare, gli ordini non vengono piazzati e il terminale inizia a generare errori sugli stop non validi.

Non vorrei che il mio EA fosse escluso dalla competizione a causa di questo tipo di dipendenza dalle caratteristiche raccomandate. Ma allora come faccio a sapere il corretto livello di stop consentito per un dato simbolo al momento?

P.S. Mi dispiacerebbe molto usare una selezione con aumento incrementale in caso di errore, e il numero di errori in questo caso aumenterebbe.

Per gli ordini pendenti, l'errore di stop non valido si verifica anche quando il prezzo aperto è più vicino a quello corrente.

Cioè devi controllare non solo gli stop, ma anche il prezzo di apertura.


 

Credo che ci sia un errore nella funzione HistoryDealsTotal(), se viene avviata dopo HistorySelectByPosition() .

Visualizza ripetutamente il numero di operazioni pari a 0, e questo nonostante abbia una posizione aperta (variante multicurrency).

Ecco il codice:


void GetDealQuantity(stringa smbl)
{
lungo pos_id;
int totale, quantità=0;
ulong ticket=0; newticket;
PositionSelect(smbl);
pos_id=PositionGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistoryDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(ticket!=newticket) { quantità++; ticket=newticket; }
}
if(smbl==simbolo1) quantity1=quantity;
if(smbl==simbolo2) quantity2=quantity;
Stampa(__FUNCTION__," quantità=",quantità);
}

Lo stampa nel diario:

2010.01.04 00:20:05 GetDealQuantity select=true total=0
2010.01.04 00:20:05 GetDealQuantity quantità=0
2010.01.04 00:20:05 EURJPY volume=0,1 quantità=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity quantità=1
2010.01.04 00:20:05 AUDUSD volume=0,1 quantità=1

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 

Cercate di inserire il codice correttamente nei vostri post. Prova a rifare il tuo esempio in questo modo:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void GetDealQuantity(string smbl)
  {
   long pos_id;
   int total,quantity=0;
   ulong ticket=0,newticket;
   if(PositionSelect(smbl))
     {
      pos_id=PositionGetInteger(POSITION_IDENTIFIER);
      bool select=HistorySelectByPosition(pos_id);
      if(select)
        {
         total=HistoryDealsTotal();
         Print(__FUNCTION__," select=",select," total=",total,"posID=",pos_id);
         for(int i=total-1;i>=0;i--)
           {
            newticket=HistoryOrderGetTicket(i);
            if(ticket!=newticket) { quantity++; ticket=newticket; }
           }
         if(smbl==symbol1) quantity1=quantity;
         if(smbl==symbol2) quantity2=quantity;
         Print(__FUNCTION__," quantity=",quantity);
        }
      else
        {
        Print("Не удалось выполнить HistorySelectByPosition() для pos_id=",pos_id);
        }

     }
   else
     {
      Print("Позиции не выбрана по символу ",smbl);
     }
  }
//+------------------------------------------------------------------+
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
C'è uno script di esempio da qualche parte che scrive l'ultima citazione negli appunti o qualcosa di simile?
 
jmp:
C'è uno script di esempio da qualche parte per scrivere l'ultima citazione negli appunti o qualcosa di simile?

Appunti di Windows?

Devo guardare in msdn per vedere in quale dll si trovano le funzioni richieste...

 
Voglio andare in fondo a questa storia. Correggetemi se mi sbaglio. Quando studiavo la documentazione degli indicatori (frattali, credo) ricordavo molto chiaramente e ricordo ancora che in caso di due estremi adiacenti (consecutivi o separati da poche barre) dello stesso livello quello chiave è l'ultimo (il più recente a destra). Tuttavia, l'indicatore Zig-zag così come la proprietà di magnetizzazione degli oggetti del grafico (apparentemente basata su quello zig-zag) sono fissati al primo estremo di due candele vicino ad un livello, anche se non posso ancora dare una conclusione definitiva poiché il comportamento cambia da caso a caso, a mio parere. Per quanto riguarda lo Zig-zag - questo si costruisce solo sulla prima candela. È giusto, compagni? Dovrebbe essere così? O ci sono diversi "standard" senza regole chiare e ognuno è libero di scegliere se l'estremo è giudicato dalla candela più a sinistra o più a destra?
 
Ci sono milioni di zigzag. Usate quello che ritenete giusto.