[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 982

 
Aleksander:

déclarer une variable

au départ - lorsqu'un signal est reçu, augmentez-le de 1, lorsque N signaux sont reçus, ouvrez une transaction,

Remettre le compteur à zéro...

J'ai écrit autant que j'ai pu, mais je ne sais pas comment concevoir l'addition de signaux...
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);
  }
//+------------------------------------------------------------------+
 

Bonjour !

Veuillez m'aider à répondre à cette question. J'ai créé un conseiller expert. Je veux savoir si je peux travailler avec la courbe de rendement qu'il produit. La question est de savoir quelle courbe peut être considérée comme la "courbe" minimale :). J'ai donné ma courbe. 1999 -2010.

P.S. La question n'est pas oiseuse. Quand je le placerai sur un compte réel, la courbe baissera temporairement.

 
001:

Bonjour !

Veuillez m'aider à répondre à cette question. J'ai créé un conseiller expert. Je veux savoir si je peux travailler avec la courbe de rendement qu'il produit. La question est de savoir quelle courbe peut être considérée comme la "courbe" minimale :). J'ai donné ma courbe. 1999 -2010.

P.S. La question n'est pas oiseuse. Quand je le placerai sur un compte réel, la courbe baissera temporairement.

Tout dépend du code de l'EA lui-même. Peut-être qu'il est complètement nu - juste un jouet pour le testeur. Quel test de bar vous avez ici. L'EA dispose-t-il d'un contrôle explicite de l'ouverture des barres ?
 
artmedia70:
Tout dépend du code de l'EA lui-même. Peut-être qu'il est complètement nu - juste un jouet pour le testeur. Et l'examen du barreau ? L'EA a-t-il un contrôle explicite de l'ouverture des barres ?


Oui, bien sûr.

statique int PrevTime=0 ;
int start()
{

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

}

Expliquez les deux premières phrases, s'il vous plaît.

 

Je ne comprends pas le manuel,

Est-ce que "break" arrête toute la boucle et le conseiller expert attend un nouveau tick ?

Peut-on l'utiliser en "if-else", par exemple si c'est "break" ?

 
gheka:

Je ne comprends pas le manuel,

Est-ce que "break" arrête toute la boucle et le conseiller expert attend un nouveau tick ?

Peut-on l'utiliser en "if-else", par exemple si c'est "break" ?

break met fin à l'ensemble de la boucle et poursuit l'exécution de votre code à partir de la ligne suivante après la parenthèse de fermeture du bloc d'instructions de la boucle.

en if-else vous pouvez l'utiliser. Comment vérifier autrement les critères d'abandon d'une boucle ? ???

 
La fonction OrderModify() crée une entrée distincte dans l'historique des transactions. Je l'utilise lorsque j'écris un EA pour implémenter le Trailing Stop. C'est-à-dire que si la condition du Trailing Stop est remplie et que le StopLoss se déplace, et cela peut se produire chaque jour, alors le même nombre de lignes apparaîtra dans l'historique. Y a-t-il un moyen d'éviter cela ? Le Trailing Stop intégré à MetaTrader fonctionne normalement.
 
dzam:
La fonction OrderModify() crée un enregistrement distinct dans l'historique des transactions. Je l'utilise lors de l'écriture d'un conseiller expert pour la mise en œuvre du Trailing Stop. C'est-à-dire que si la condition du Trailing Stop est remplie et que le StopLoss se déplace, et cela peut se produire chaque jour, alors le même nombre de lignes apparaîtra dans l'historique. Y a-t-il un moyen d'éviter cela ? Le Trailing Stop intégré à MetaTrader fonctionne normalement.

N'est-il pas plus facile de mettre en œuvre un chalut en utilisant le prix, la valeur du stop, la distance du stop par rapport au prix et le pas du chalut ?

Ou est-il plus intéressant de marcher jusqu'à l'entrée depuis le banc en passant par le Zimbabwe ?

 
artmedia70:

Ne serait-il pas plus simple d'utiliser le prix, la valeur de l'arrêt, la distance de l'arrêt par rapport au prix et le pas de chalutage pour mettre en œuvre le chalutage ?

Ou bien, est-il plus intéressant de marcher jusqu'à l'entrée depuis le banc en passant par le Zimbabwe ?

OK, on entre par l'entrée principale. Attention, une dernière question :

Voici un extrait de code de l'exemple de mise en œuvre de 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);
                    }
                }                     

}

Ce morceau de code utilise OrderModify() pour modifier un ordre en fonction des conditions du TrailingStop. La fonction OrderModify() crée un enregistrement distinct dans l'historique des transactions. C'est-à-dire que si les conditions du Trailing Stop sont remplies et que le Stop Loss se déplace, et cela peut se produire chaque seconde, le même nombre de lignes apparaîtra dans l'historique. Y a-t-il un moyen d'éviter cela ? Le Trailing Stop intégré à MetaTrader fonctionne normalement.

 
dzam:

OK, passons par la porte d'entrée. Attention, une dernière question :

Voici un morceau de code tiré de l'exemple d'implémentation de TrailingStop

}

Ce morceau de code utilise OrderModify() pour modifier un ordre en fonction des conditions du TrailingStop. La fonction OrderModify() crée un enregistrement distinct dans l'historique des transactions. C'est-à-dire que si les conditions du Trailing Stop sont remplies et que le Stop Loss se déplace, et cela peut se produire chaque seconde, le même nombre de lignes apparaîtra dans l'historique. Y a-t-il un moyen d'éviter cela ? Le Trailing Stop intégré à MetaTrader fonctionne correctement.


Il n'y a aucun moyen de l'éviter. Chaque transaction, comme toute modification de position, crée sa propre entrée de journal.
Raison: