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

 
Aleksander:

dichiarare una variabile

all'inizio - quando si riceve un segnale, aumentare di 1, quando si ricevono N segnali, aprire un trade,

azzerare il contatore...

Ho scritto più che posso, ma non è chiaro come progettare l'aggiunta del segnale...
extern double     PropuskSignala             =  0;  //сколько сигналов инлдикатора пропускать
//-------------------
double PropuskSignalaB,PropuskSignalaS;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
//получаем сигнал: (SignalBuy==true;)
PropuskSignalaB++;  //вот здесь как записать? Чтобы прибавлялись
//получаем сигнал: (SignalSell==true;)
PropuskSignalaS++;  //вот здесь как записать? Чтобы прибавлялись

if(SignalBuyif(PropuskSignalaB>=PropuskSignala || PropuskSignalaS>=PropuskSignala){
//открываем ордер Buy
}
if(SignalSellif(PropuskSignalaS>=PropuskSignala || PropuskSignalaB>=PropuskSignala){
//открываем ордер Sell
}
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

Buon pomeriggio!

Per favore, aiutatemi con questa domanda. Ho creato un Expert Advisor. Voglio sapere se posso lavorare con la curva di rendimento che produce. La domanda è quale curva può essere considerata la "curva" minima :). Ho dato la mia curva. 1999 -2010.

P.S. La domanda non è oziosa. Quando lo metto su un conto reale, la curva si abbassa temporaneamente.

 
001:

Buon pomeriggio!

Per favore, aiutatemi con questa domanda. Ho creato un Expert Advisor. Voglio sapere se posso lavorare con la curva di rendimento che produce. La domanda è quale curva può essere considerata la "curva" minima :). Ho dato la mia curva. 1999 -2010.

P.S. La domanda non è oziosa. Quando lo metto su un conto reale, la curva si abbassa temporaneamente.

Tutto dipende dal codice dell'EA stesso. Forse è completamente spoglio - solo un giocattolo per il tester. Che test da bar avete qui. L'EA ha un controllo esplicito dell'apertura della barra?
 
artmedia70:
Tutto dipende dal codice dell'EA stesso. Forse è completamente spoglio - solo un giocattolo per il tester. E l'esame di stato? L'EA ha il controllo esplicito dell'apertura delle barre?


Sì, certo che è così.

int statico PrevTime=0;
int start()
{

se (Time[0]<=PrevTime) return(0);
{
PrevTime=Time[0];

}

Spiega le prime due frasi, per favore.

 

Non capisco il libro di testo,

"break" ferma l'intero ciclo e l'Expert Advisor aspetta un nuovo tick?

e può essere usato in "if-else", diciamo se è "break"?

 
gheka:

Non capisco il libro di testo,

"break" ferma l'intero ciclo e l'Expert Advisor aspetta un nuovo tick?

e può essere usato in "if-else", diciamo se è "break"?

break termina l'intero ciclo e continua l'esecuzione del vostro codice dalla linea successiva alla parentesi di chiusura del blocco di istruzioni del ciclo.

in if-else si può usare. In quale altro modo si potrebbero controllare i criteri di interruzione di un ciclo?

 
La funzione OrderModify() crea una voce separata nella storia del trading. Lo uso quando scrivo un EA per implementare il Trailing Stop. Cioè, se la condizione di Trailing Stop è soddisfatta e StopLoss si muove, e può accadere ogni giorno, allora lo stesso numero di linee apparirà nella storia. C'è un modo per evitare questo? Il Trailing Stop integrato in MetaTrader funziona normalmente.
 
dzam:
La funzione OrderModify() crea un record separato nella storia del trading. Lo uso quando scrivo un Expert Advisor per implementare il Trailing Stop. Cioè, se la condizione di Trailing Stop è soddisfatta e StopLoss si muove, e può accadere ogni giorno, allora lo stesso numero di linee apparirà nella storia. C'è un modo per evitare questo? Il Trailing Stop integrato in MetaTrader funziona normalmente.

Non è più facile implementare un trawl usando il prezzo, il valore dello stop, la distanza dello stop dal prezzo e il passo del trawl?

O è più interessante raggiungere a piedi l'ingresso dalla panchina attraverso lo Zimbabwe?

 
artmedia70:

Non sarebbe più semplice usare il prezzo, il valore di stop, la distanza di stop dal prezzo e il passo di trawl per implementare il trawl?

Oppure, è più interessante raggiungere l'ingresso dalla panchina attraverso lo Zimbabwe?

Ok, entriamo dall'ingresso principale. Attenzione, un'altra domanda:

Ecco un frammento di codice dall'esempio di implementazione di TrailingStop

/---- проверяем, не надо ли передвинуть Стоп Лосс:
        //---- если размер трейлингстопа не слишком маленький,
        if ( TrailingStop > MarketInfo( Symbol(), MODE_STOPLEVEL ) )
        {
            //---- если прибыль позиции больше TrailingStop пунктов,
            if ( NormalizeDouble( Bid - _BuyOpenPrice, Digits ) > 
                  NormalizeDouble( TrailingStop*Point, Digits ) )
            {
                //---- если новый уровень стоплосса выше, чем сейчас у позиции
                //---- (или если у позиции нет Стоп Лосса),
                if ( NormalizeDouble( Bid - TrailingStop*Point, 
                    Digits ) > _BuyStopLoss
                      || _BuyStopLoss <= 0.0 )
                {
                    //---- модифицируем ордер
                    if ( !OrderModify( _BuyTicket, _BuyOpenPrice, 
                          NormalizeDouble( Bid - TrailingStop*Point, 
                                           Digits ), 
                          _BuyTakeProfit, 0 ) )
                    {
                        Alert( "OrderModify Error #", 
                              GetLastError() );
                        return(-1);
                    }
                }                     

}

Questo pezzo di codice usa OrderModify() per modificare un ordine secondo le condizioni di TrailingStop. La funzione OrderModify() crea un record separato nella storia del trading. Cioè, se le condizioni di Trailing Stop sono soddisfatte e lo Stop Loss si muove, e questo può accadere ogni secondo, lo stesso numero di linee apparirà nella storia. C'è un modo per evitare questo? Il Trailing Stop integrato in MetaTrader funziona normalmente.

 
dzam:

Ok, entriamo dalla porta principale. Attenzione, un'altra domanda:

Ecco un frammento di codice dall'implementazione di esempio di TrailingStop

}

Questo pezzo di codice usa OrderModify() per modificare un ordine secondo le condizioni di TrailingStop. La funzione OrderModify() crea un record separato nella storia del trading. Cioè, se le condizioni di Trailing Stop sono soddisfatte e lo Stop Loss si muove, e questo può accadere ogni secondo, lo stesso numero di linee apparirà nella storia. C'è un modo per evitare questo? Il Trailing Stop integrato in MetaTrader funziona correttamente.


Non c'è modo di evitarlo. Ogni trade, come ogni modifica di posizione, crea la propria voce di registro