L'ÉCHANGE D'IDÉES - page 15

 
leonid553 писал (а) >>

Il ne s'agit pas vraiment de stratégie. Il n'est pas difficile d'insérer un indicateur.

Mais comment faire pour que le code de l'expert fonctionne aux PRIX D'OUVERTURE de manière programmatique ?

Pour obtenir le même résultat en parcourant TOUS LES BILLETS, qu'en parcourant les PRIX OUVERTS ?

Je n'ai pas encore réussi à le faire. .....

Être lié à des sucks de temps ou de volume.... Vous pouvez manquer les tiques

Je le fais de cette façon.

en variables

int last_bar =0 ;

int start()

{

if (!IsNewBar()) return(0) ;

nous n'arrivons qu'une seule fois sur le premier tick d'une nouvelle barre. même si nous avons manqué le premier tick de cette barre.

}

bool IsNewBar()

{

si (last_bar == Bars) return(false) ;
last_bar = Bars ;
retour (vrai) ;

}

 
kharko писал (а) >>

Attrapez le code... Ouvre et modifie aux prix d'ouverture...

kharko et esmaster, merci !

Mais j'ai déjà écrit à la page précédente que des méthodes aussi simples ne servent à rien. J'ai essayé moi-même en utilisant les deux méthodes - j'ai inséré une condition aux prix d'ouverture dans void start().

Mais apparemment, ce n'est pas suffisant ! Comme précédemment, j'obtiens des résultats différents, diamétralement opposés, lorsque je procède par PRIX OUVERTS et par TOUS LES TICKERS.

Nous devons probablement tracer le travail "de cette façon et de cette façon" sur le graphique visuel du testeur, puis "sentir la différence" et modifier d'une manière ou d'une autre le travail d'autres fonctions (outre start()).

//-----------------------------------------------------------
void start()
   {
   if (!IsTradeAllowed()) return;
   level_buy_stop=0;
   level_sell_stop=0;
   StepingStop();
   StepingPendings();
   if (TotalBuy ()==0 && TotalBuyStop ()==0) SetBuyStop ();
   if (TotalSell()==0 && TotalSellStop()==0) SetSellStop();
   Comment("Level Buy Stop=",level_buy_stop*Point,
    "\n","Level Sell Stop=",level_sell_stop*Point);
   }
//-----------------------------------------------------
void StepingStop()      {... .  }
//-----------------------------------------------------
void StepingPendings()  {... .  }
//-----------------------------------------------------
void SetBuyStop()    {... ...}

void SetSellStop()   {... ...}

int TotalBuy()       {  ...  }

int TotalBuyStop()   {...    }

int TotalSell()      {...... }

int TotalSellStop()  {.... ..}

// End
 
leonid553 différent parce que le fixing est au prix d'ouverture... nous devons supprimer complètement les stops et les profits... et verrouiller aux prix d'ouverture...
 
leonid553 писал (а) >>

Bonjour à tous. Je propose d'utiliser la méthode dite "Détecteur de tendances". Je ne m'attendais pas à un si bon résultat de ma trouvaille. Je l'ai accidentellement aveuglé - je l'ai mis dedans. J'insère cette partie dans presque tous les conseillers-experts et même un conseiller-expert perdant réalise des bénéfices ! Il réduit le nombre de transactions à contre-courant de la tendance (la plupart perdantes) et augmente considérablement le paramètre de rentabilité du conseiller expert, souvent jusqu'à au moins deux ! Cela signifie qu'en dehors de la période d'optimisation, nous avons beaucoup plus de chances de réaliser un bénéfice !

Voici l'idée : nous prenons les indicateurs BearsPower et BullsPower (bulls power et bears power) et nous les comparons entre eux. Mais il suffit de les comparer - c'est une affaire douloureuse. Le faire de manière programmatique est fastidieux. C'est pour cela que je mets des MA sur eux et que je compare les valeurs MA sur la barre zéro ! Il suffit d'additionner ces valeurs = Delta. En outre, tout est simple. Si DELTA ..>0 - la tendance est à la hausse. Sinon, elle va vers le bas !

Nous devons juste ajouter à la condition d'achat if ((Delta>=0) && ... ...

Et dans la condition de vente - if ((Delta<=0) && ... ...

Dans les paramètres externes de n'importe quel conseiller expert, insérez :

Vous n'avez pas besoin de l'insérer. Mais il faut alors récupérer ces paramètres et insérer des valeurs numériques au lieu des noms de variables directement dans le code. Et voici le bloc lui-même :

Voici un exemple de fonctionnement d'un EA avec le détecteur de tendance. Nous pouvons voir qu'en cas de tendance à la hausse, les positions d'achat sont ouvertes, et vice versa.

Peut-être quelqu'un aura-t-il des suggestions pour améliorer et affiner la conception. J'aimerais savoir dans quelle mesure ce détecteur de tendances est prometteur.

J'ai créé l'indicateur en suivant la description exacte et j'ai été surpris :) j'ai obtenu un MACCD décalé :)

Dossiers :
 
Vinin писал (а) >>

вот и индикатор. _LineStat_1.mq4

На экран выводится количество баров.Выводится 3 сигмы. И если цена находится внутри одно СКО, то перерасчета не прноизводится, так как все в допустимых пределах. При пробитии, будет перерасчет.

Il y a trois valeurs numériques dans le coin supérieur gauche du graphique après N=150 (nombre de barres). Veuillez me dire ce qu'ils signifient et comment les utiliser.

 
Figar0 писал (а) >>

Mon idée, je vais m'y mettre...

L'idée est ancienne, mais pour une raison quelconque, sa mise en œuvre n'est pas très répandue. Je l'utilise moi-même, elle fonctionne assez bien avec certaines stratégies. Sortie uniquement par Take Profit. Si vous avez deviné juste à partir de la direction - obtenez le take profit initialement prévu, sinon - resserrez le TP en suivant le prix (vous pouvez utiliser différents algorithmes - boucles, élastiques, indicateurs de niveau, etc.) Dans ce cas, le take peut être négatif, mais il est souvent beaucoup plus rentable que le déclenchement d'un stop loss. Un stoploss de sécurité pour limiter les pertes énormes n'est pas interdit.

1) Je l'utilise également dans le daytrading, et je l'appelle "Trailing Profit". Cependant, je n'utilise pas le stop suiveur pour le trading actif, car c'est un moyen de minimiser le profit.

2) J'ai aussi une petite idée. Il est parfois désagréable de voir le profit diminuer et de déplacer la position ouverte vers la perte, après 1 ou 2 points de moins que le TP. C'est pourquoi j'ai commencé à pratiquer la solution suivante : lorsqu'il reste 1-2 pips avant le TP, j'envoie une demande de fermeture de l'ordre. Dans ce cas, l'ordre est soit fermé au TP, soit pas fermé du tout (car le prix a rebondi et est sorti de la zone de slippage), mais les ordres sont fermés plus souvent et cela apporte plus de profit pendant une période.

 
rid писал (а) >>

Il y a trois valeurs numériques dans le coin gauche du graphique après N=150 (nombre de barres). Veuillez me dire ce qu'ils signifient et comment les utiliser.

Le delta est égal à la différence entre la ligne médiane gauche et droite.

3*S est trois déviations standard

n est le nombre de mesures pour lesquelles le canal de régression n'a pas été recalculé.

Si le prix de la dernière barre se situe dans les 3 écarts types (+-1,5), aucun nouveau calcul n'est effectué.

J'ai dû aller dans le code (l'indicateur est trop vieux, il a été développé en 2006).

Si vous souhaitez modifier les informations produites, vous êtes le bienvenu.

 
OK ! Merci.
 
Vinin писал (а) >>

J'ai dû entrer dans le code (l'indicateur est trop vieux, il a été fabriqué en 2006).

Si vous souhaitez modifier les informations affichées, n'hésitez pas à le faire.

Il y a une demande modeste. Si ça ne vous dérange pas. Comment écrire une expression iCustom pour cet indicateur ?

Au moins pour CHAQUE ligne jaune et pour la ligne centrale ?

Je n'arrive pas à comprendre tout seul !

 
rid писал (а) >>

Il y a une humble requête. Si ce n'est pas difficile. Comment RECORDER l'expression iCustom pour cet indicateur ?

Au moins pour CHAQUE ligne jaune et pour la ligne centrale ?

Je n'arrive pas à le comprendre moi-même !

Si vous en avez besoin, je peux chercher dans les piles le bon indicateur ou en fabriquer un. Et comment travailler avec lui dans le conseiller expert - juste tous les calculs dans celui-ci (conseiller expert).