Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 483

 
culler:

Aiutatemi a risolvere un problema per determinare il momento di intersezione di due linee MA.

Non riesco a capire come descriverlo.

Ci sono MAfast e MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

se(MAfast>MAslow) funziona solo se MAfast è in basso, quando lo incrocia, cattura il momento dell'incrocio, ma poi MAfast è in alto e l'ordine va BUY ))))

Ce l'ho nel mio codice. Quindi come determinare esattamente il momento di attraversamento e confrontarlo con l'ACQUISTO dal basso verso l'alto o viceversa.

Nel mio codice è semplicemente più o meno. Da qui gli errori.

se ((x1 - y1)*(x2 - y2) < 0)
{
// abbiamo l'intersezione
}
 
culler:

Aiutatemi a risolvere un problema per determinare il momento di intersezione di due linee MA.

Non riesco a capire come descriverlo.

Ci sono MAfast e MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

se(MAfast>MAslow) funziona solo se MAfast è in basso, quando lo incrocia, cattura il momento dell'incrocio, ma poi MAfast è in alto e l'ordine va BUY ))))

Ho nel mio codice come determinare il momento di attraversamento e confrontare la sua direzione da giù a su o viceversa.

Nel mio codice è semplicemente più o meno. Da qui gli errori.

C'è molto da vedere e da farequi.
 
artmedia70:
se ((x1 - y1)*(x2 - y2) < 0)
{
// abbiamo l'intersezione
}


TarasBY:
C'è un sacco di roba interessante che ti aspetta qui.

Grazie. Grazie.
 
culler:

Aiutatemi a risolvere un problema per determinare il momento di intersezione di due linee MA.

Non riesco a capire come descriverlo.

Ci sono MAfast e MAslow

double MAfast=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

double MAslow=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

se(MAfast>MAslow) funziona solo se MAfast è in basso, quando lo incrocia, cattura il momento dell'incrocio, ma poi MAfast è in alto e l'ordine va BUY ))))

Ho nel mio codice come determinare il momento di attraversamento e confrontare la sua direzione da giù a su o viceversa.

Nel mio codice è semplicemente più o meno. Da qui gli errori.


Un thread molto utile, e sulla tua domanda!
 
La documentazione dice:

bool WindowIsVisible( int indice)
Restituisce TRUE se la sottofinestra del grafico è visibile, altrimenti restituisce FALSE. La sottofinestra del grafico può essere nascosta a causa delle proprietà di visibilità dell'indicatore posto in essa.
Parametri:
indice - Indice della sottofinestra del grafico.
Esempio:
 int maywin=WindowFind("MyMACD"); if(maywin>-1 && WindowIsVisible(maywin)==true) Print("MyMACD window visible"); else Print("MyMACD window not found or not visible")
;
Per favore, spiegate cosa significa: "Una sottofinestra del grafico può essere nascosta a causa delle proprietà di visibilità dell'indicatore posto in essa"? Cos'è questa proprietà dell'indicatore????
 

Stopplay non restituisce un int?

Il compilatore dà un avvertimento "possibile perdita di dati a causa della conversione di tipo" a questo codice:

   int slevel = MarketInfo(Symbol(), MODE_STOPLEVEL);
да и на 
   int digits = MarketInfo( Symbol(), MODE_DIGITS);
тоже
 

È necessario un aiuto, una parte della posizione non si chiude quando si testa l'EA

void Zacritie_poz_sell ()
{
 
 int    i, k=OrdersTotal();
 string sy=Symbol();
 
for (i=0; i<k; i++) 
{
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
 {
  if ( OrderSymbol() == sy)
   {
    if (OrderType()==OP_SELL)
     {
       if ( OrderMagicNumber()==Magic)
       {
        double TP = OrderTakeProfit();
        double Prise = OrderOpenPrice();
        double Close_poz = NormalizeDouble( Prise-(Prise-TP)/2,Digits);
        double Lots1 = NormalizeDouble (Lots/4,Digits);
        double TP1 = OrderTakeProfit()+1*Point;
        double SL = OrderOpenPrice()-20*Point;
         if ( Bid == Close_poz && OrderStopLoss() != SL && TP == TP1 && Lots != Lots1)
         {
          
           OrderClose(OrderTicket(),Lots1, Bid, 40*Point, Yellow);

           break;
           Sleep (1000*5);
           RefreshRates();
         
          
         }
         
       }
     }
  
    }
   }
 }
}
 
miha91:

È necessario un aiuto, una parte della posizione non si chiude quando si testa l'EA


for (i=k-1; i>=0; i--)
 
evillive:

Stopplay non restituisce un int?

Il compilatore genera l'avviso "possibile perdita di dati a causa della conversione di tipo" su codice come questo:

Conversione esplicita del tipo:

int slevel = (int)MarketInfo(Symbol(), MODE_STOPLEVEL);
Vedi... La funzione è di tipo double, ma l'identificatore di richiesta può definire il tipo di ritorno int. Ecco perché è una bestemmia.
 

Sto ottimizzando un EA, c'è molto overshoot, circa 10^17 gradi, ci sono più parametri, ma non possono più essere ottimizzati. Perché ci sono queste restrizioni?

Più una domanda sull'algoritmo genetico. Sembra che smetta di funzionare correttamente su dati così grandi, il profitto finale salta abbastanza drammaticamente, spesso verso il basso. Cioè, ora ha trovato impostazioni redditizie, ma non in altre occasioni. Gli sviluppatori lo aggiusteranno?

Motivazione: