[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 57

 
Karabas >> :

Ciao, potresti dirmi se è possibile cambiare il colore dell'indicatore? Supponiamo che la finestra principale abbia due medie mobili con periodi diversi in colori diversi. >> Grazie


Cliccando con il tasto destro del mouse su una delle MA (media mobile) si aprirà una finestra, clicca su "proprietà della media mobile" e lì vedrai dove cambiare il colore

 
xruss >> :

Cls_B e Cls_S permettono di chiudere una posizione e non possono contraddire Opn_B Opn_S. Qui bisogna scrivere nel codice una serie temporale che segni la barra dove l'ordine di acquisto o vendita è stato aperto e dove dovrebbe essere chiuso in modo che non vengano aperte altre posizioni durante questo periodo((

Non intendo sostituire le condizioni di apertura che avete già, ma aggiungerne di nuove. Da quanto ho capito, vuoi proibire all'EA di aprire una posizione su un segnale di apertura, se non c'è un segnale di chiusura sullo stesso segnale. Quindi aggiungere:

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

E se lo fate a modo vostro - come calcolate la barra alla quale una posizione dovrebbe chiudersi in qualche momento? :)

 

Ciao

//+------------------------------------------------------------------+
int start()
  {
//----
 double Macd_0=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,0,0);
 double Macd_1=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,0,1);
 double signal_0=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,1,0);
 double signal_1=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,1,1);
    
    if(( Macd_0 < Macd_1 && Macd_1 > 0) && ( signal_0 < signal_1 && signal_1 > 0))
     if( CheckOrders(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(( Macd_0 > Macd_1 && Macd_1 < 0) && ( signal_0 > signal_1 && signal_1 < 0))
     if( CheckOrders(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//----
   return(0);
  }
//+------------------------------------------------------------------+

Questa è la prima opzione.

//+------------------------------------------------------------------+
int start()
  {
//----
 double Macd_0=iMACD(NULL,0, pFast, pSlow, pSignal,1,0,0);
 double Macd_1=iMACD(NULL,0, pFast, pSlow, pSignal,1,0,1);
 double signal_0=iMACD(NULL,0, pFast, pSlow, pSignal,1,1,0);
 double signal_1=iMACD(NULL,0, pFast, pSlow, pSignal,1,1,1);
    
    if(( Macd_0 < Macd_1 && Macd_1 > 0) && ( signal_0 < Macd_0 && signal_1 < Macd_1 && signal_1 > 0))
     if( CheckOrders(OP_SELL)) //продажа
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(( Macd_0 > Macd_1 && Macd_1 < 0) && ( signal_0 > Macd_0&& signal_1 > Macd_1&& signal_1 < 0))
     if( CheckOrders(OP_BUY)) //покупка
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//----
   return(0);
  }
//+------------------------------------------------------------------+

Questa è la seconda variante.

Expert Advisor basato su macd, il trading è semplice (tutto è basato su 0 e 1 barra, il prezzo è aperto).

Nel primo caso i valori macd aumentano (per comprare), per vendere diminuiscono. Anche la linea del segnale si basa su queste condizioni.

Nel secondo caso ho cercato di realizzare l'attraversamento della linea macd veloce e lenta. Ma alcuni dubbi sono rimasti.............Se è corretto.........

 
Everlost >> :

Non intendo sostituire le condizioni di apertura che avete già, ma aggiungerne di nuove. Da quanto ho capito, vuoi proibire all'EA di aprire una posizione su un segnale di apertura, se non c'è un segnale di chiusura sullo stesso segnale. Quindi aggiungeteli:

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

E se lo fate a modo vostro - come calcolate la barra alla quale la posizione dovrebbe chiudersi ad un certo punto? :)

come faccio ad aprire una posizione)?

perché si apre quando Opn_B=vero Cls_B=falso e Cls_B non può essere vero in quel momento.


diciamo che abbiamo una MA` che ha attraversato le quotazioni del prezzo (formato Opn_S), aperto una posizione verso il basso e SL- spostato a Breakeven. e poi il prezzo è scivolato SL a Breakeven e...

nel mio caso, si apre una posizione al ribasso(((( prima che si formi un nuovo segnale di MA` che attraversa il prezzo (Cls_S)



 
xruss >> :

ma come si aprirà la mia posizione:)

perché si apre quando Opn_B=vero Cls_B=falso e Cls_B non può essere vero in quel momento.

Ok, create un'altra variabile, per esempio, int Last_Position=-1. Inserisci qui il tipo di ordine non appena la posizione viene aperta. E aggiungere condizioni:

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

 
Everlost >> :

OK, create un'altra variabile, per esempio, int Last_Position=-1. Inserite qui il tipo di ordine non appena la posizione viene aperta. E aggiungere condizioni:

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

Questo è più o meno come l'ho fatto io, ma sono rimasto un po' deluso dal risultato(

A volte il trend rallenta, va in una posizione piatta (si corregge) e poi continua a muoversi di nuovo con una nuova forza e dà il giusto segnale Opn_S che sarà bloccato in questo modo. Come limitare il trading con un ordine nella zona dal segnale Opn_S a Cls_S e da Opn_B a Cls_B?

 
xruss >> :

Ho fatto così, ma non sono contento del risultato((

A volte il trend si indebolisce, va in un flat (fa una correzione) e poi continua a muoversi con una nuova forza e dà il giusto segnale Opn_S, che sarà quindi bloccato. Come limitare il trade con un ordine nella zona dal segnale Opn_S a Cls_S e da Opn_B a Cls_B?

È molto semplice - quando il segnale Cls_S o Cls_B viene ricevuto, si dovrebbe dimenticare la posizione aperta per ultima (resettare il valore della variabile Last_Position a -1).

if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;

 
Potete consigliarmi come aggiungere una condizione all'Expert Advisor, in modo che sappia che il commercio precedente era in perdita?
 
Dimoncheg >> :
Puoi dire come scrivere la condizione nel tuo EA, in modo che sappia che il trade precedente era in perdita?

se (OrderProfit() < 0) {

...

}

 
Cari esperti, per favore non ignorate la mia domanda.

C'è un indicatore che conta la volatilità, per esempio quotidianamente. Ma non quello che dà un numero indefinito come 0,34. Ma dovrebbe calcolare il numero di candele al giorno e dividerlo per un determinato periodo (numero di giorni) in modo che l'indicatore conosca il valore medio. Esempio: apertura 100, chiusura 200; il secondo giorno - apertura 200, chiusura 250. Volatilità media per questi 2 giorni = ((200-100)+(250-200))/2 giorni=(100+50)/2=75
Dove scaricare se disponibile.
Motivazione: