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

 
Stells:

Buon pomeriggio.

Per favore aiutatemi ad estrarre i valori di Up_Line e Down_Line dell'indicatore ExTrendv2 (allegato) nell'Expert Advisor.

Sto provando il seguente modo:

Per Up_Line iCustom(NULL, 0, "ExTrendv2", 0, 0,1)

per Down_Line iCustom(NULL, 0, "ExTrendv2", 0, 1,1)

fallisce.


Un EA con un tale indicatore non blocca il terminale?
 

Non sembra riagganciarsi nel tester.

Solo che non riesco ancora ad estrarre i valori, non ha alcun senso.

 
Ciao, sto cercando di testare l'Expert Advisor su un simbolo e 4 timeframe allo stesso tempo - ho un piccolo problema - errore 129 - prezzo sbagliato sia all'apertura che alla chiusura, il thread di trading sembra essere separato prima di inviare l'orer e while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000;
Print("Trade thread is busy. Ripeti il controllo tra "+DoubleToStr((Interval/1000),0)+" sec");
Sleep(Interval);} RefreshRates(); Qualcuno sa cosa sia questa roba e come gestirla?
 
Stells:

Non sembra riagganciarsi nel tester.

Solo che non riesco ancora ad estrarre i valori, non ha alcun senso.


Prova così, non ci sono parametri.

Up_Line iCustom(  NULL, 0, "ExTrendv2", 0,1);
Down_Line iCustom(NULL, 0, "ExTrendv2", 1,1);

Anche se l'indicatore ricalcola tutto ad ogni tick.

 
Dimoncheg:
Ciao a tutti, sto cercando di testare l'Expert Advisor su un simbolo e 4 timeframe allo stesso tempo - ho un piccolo problema - errore 129 - prezzo sbagliato sia all'apertura che alla chiusura, il thread di trading sembra essere separato prima di inviare oer e dopo la chiusura while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000;
Print("The trade thread is busy. Ripeti il controllo tra "+DoubleToStr((Interval/1000),0)+" sec");
Sleep(Interval);} RefreshRates(); Qualcuno sa cosa sia questa roba e come gestirla?
ERRARE_INVALIDO_PREZZO 129 Prezzo errato


Normalizzare il prezzo in cifre prima di inviare la richiesta al server

 
Vinin:


Prova in questo modo, non ci sono parametri

Anche se l'indicatore fa un ricalcolo completo ad ogni tick.

Mi sono pentito di averlo messo in classifica. Il terminale è andato in pensiero profondo, e dopo 15 minuti l'ho ucciso
 
artmedia70:
ERRARE_INVALIDO_PREZZO 129 Prezzo errato


Normalizzare i prezzi in cifre prima di inviare la richiesta al server



I prezzi sono ovviamente normalizzati da NormalizeDouble(Ask,Digits) e NormalizeDouble(Bid,Digits), per l'invio degli ordini ho provato anche la funzione di Igor Kim, che è qui - si verifica lo stesso errore, perché la funzione non lo elabora, cerca solo di inviare l'ordine cinque volte e basta. L'errore non si verifica ad ogni comando di invio di un ordine, la maggior parte degli ordini sono ancora aperti. Ho la sensazione che questo problema abbia qualcosa a che fare con il flusso di trading poiché in un certo caso l'errore si verifica quando l'EA vuole inviare diversi ordini simultaneamente in diversi timeframe di un simbolo e uno di solito viene inviato, mentre gli altri non hanno successo con questo errore.
 
Dimoncheg:

I prezzi sono ovviamente normalizzati da NormalizeDouble(Ask,Digits) e NormalizeDouble(Bid,Digits), per l'invio degli ordini ho provato anche la funzione di Igor Kim, che è qui - si verifica lo stesso errore, perché la funzione non lo elabora, cerca solo di inviare l'ordine cinque volte e basta. L'errore non si verifica ad ogni comando di invio di un ordine, la maggior parte degli ordini sono ancora aperti. Ho la sensazione che questo problema abbia qualcosa a che fare con il flusso di trading poiché in un certo caso l'errore si verifica quando l'EA vuole inviare diversi ordini simultaneamente in diversi timeframe di un simbolo ma un ordine viene solitamente inviato ma gli altri falliscono.

Immediatamente prima di usare Ask e Bid, eseguire RefreshRates()
 
//-------------------------------------------------------------------+
extern int    TotalOrders    = 1;
//-------------------------------------------------------------------+
// Global variables
int Cnt = 0;              // counter variable, used in for() loops
    // only perform analysis and open new order if we have not reached our TotalOpenOrders max
    if(TotalOpenOrders() < TotalOrders)
    {
//+------------------------------------------------------------------+
//|-----------------------//  Orders Count  //-----------------------|
//+------------------------------------------------------------------+
// This function returns the total amount of orders the expert advisor has open  
int TotalOpenOrders()
{
  Cnt=OrdersTotal();
  int TotalOpenOrders = 0;
  if(Cnt==0)
  {
    return(0);
  }
    else
    {
    for(;Cnt>=0;Cnt--)
    {
      RefreshRates();
      OrderSelect(Cnt,SELECT_BY_POS);
      if(OrderMagicNumber()==Magic)
      {
      TotalOpenOrders++;
      }
    }
  }
  return(TotalOpenOrders);
}
 
artmedia70:
Mi sono pentito di averlo messo in classifica. Il terminale è andato in pensiero profondo, dopo circa 15 minuti l'ho ucciso

Non si guarda il codice prima di mettere qualcosa.