Fonction de fonds de suivi (actions) - quelqu'un en a-t-il trouvé une toute prête ? - page 5

 

Vitalya_1983 merci, j'ai touché un aveugle. =) Je vais essayer.

Bien que l'option avec pourcentage ne soit pas idéale : plus le bénéfice sera important, moins il sera fixé sur le rollback.

Et vouloir la solution dont parlait le topicstarter :

ЗЫ: вот собственно то, о чем говорил, про "на издохе движения", и как раз в такие моменты хорошо иметь тралл под рукой..

C'est à dire un cliquet sur le profit, donc l'offre à xrust est maintenue.
 
ToKa_TuXa >> :

xrust - J'ai une suggestion/demande à vous faire - pouvez-vous apporter le code de votre version de l'equity trawl comme un EA autonome.

Ce serait un outil très utile pour les traders manuels.

Je cherche un tel outil depuis longtemps mais je n'ai rien trouvé de convenable.

Ce serait génial...

 

Je vais...

 

Сделаю...

Merci d'avance =)

 
xrust >> :

>> Je vais...

Attendre...

 

xrust - s'il vous plaît, donnez-moi un indice sur la chronologie.

Peut-être que quelqu'un a une solution et est prêt, par pure bonté d'âme, à la partager ?

 
ToKa_TuXa писал(а) >>

xrust - s'il vous plaît, donnez-moi un indice sur la chronologie.

Peut-être que quelqu'un a une solution et a la gentillesse de la partager ?

//+------------------------------------------------------------------+
//|                                           EqutyTrawlerXR_V00.mq4 |
//|                                 Copyright © 2009, XrustSolution. |
//|                                        http://www.xrust.ucoz.net |
//+------------------------------------------------------------------+
#property copyright "#Copyright © 2009, XrustSolution.#"
#property link      "#http://www.xrust.ucoz.net#"
extern double       EqutyPersent      =   1;
extern double       RepeatTimeinSec   =   1;
//+------------------------------------------------------------------+
void start(){double step=1;
  if( RepeatTimeinSec==0){ RepeatTimeinSec=0.1;}
  while(!IsStopped()&&IsExpertEnabled()){
    Sleep(1000* RepeatTimeinSec);
    if(AccountEquity()>AccountBalance()){
      if(AccountProfit()>AccountEquity()/100* EqutyPersent* step){ step++;}
      if( step>1){
        if(AccountProfit()<=AccountEquity()/100* EqutyPersent*( step-1)){
          CloseAll();
        }
      }
    }
  }
return;}
//+------------------------------------------------------------------+
// Закрывает все ордера на данном инструменте                        |
//+------------------------------------------------------------------+
void CloseAll(){
for(int n=OrdersTotal()+1; n>=0; n--){
  if(OrderSelect( n, SELECT_BY_POS, MODE_TRADES)){ 
    if(OrderType()<2){ 
      del(OrderTicket());
    }  
  }    
}  
return;    
}
//+------------------------------------------------------------------+
//Удаляет рыночный ордер с указанным ей тикетом                      |
//+------------------------------------------------------------------+
void del(int ticket){int err;
for(int i=0; i<1; i++){
   GetLastError();//обнуляем ошику
   OrderSelect( ticket, SELECT_BY_TICKET, MODE_TRADES);
   string symbol = OrderSymbol();
   if(OrderType()==OP_BUY){RefreshRates();
     double prise = MarketInfo( symbol,MODE_BID);
     if(!OrderClose( ticket,OrderLots(), prise,3,Green)){ err = GetLastError();}}
   if(OrderType()==OP_SELL){RefreshRates();
     prise = MarketInfo( symbol,MODE_ASK);
     if(!OrderClose( ticket,OrderLots(), prise,3,Green)){ err = GetLastError();}}
if( err == 0){PlaySound("expert.wav");break;} 
if( err != 0){PlaySound("timeout.wav");Print("Error for Close Funtion =", err);} 
while(!IsTradeAllowed()){Sleep(5000);}// если рынок занят то подождем 5 сек 
if ( err==146) while (IsTradeContextBusy()) Sleep(1000*11);
} 
}
 
Merci, Rust, je vais me renseigner.
 
conduisez-le bien - vérifiez-le
 

Merci, nous allons faire des essais...

Juste quelques suggestions :

1. Ajouter l'indication : profit maximal/profit négatif ;

2. Si vous voulez ajouter une option de chalutage avec un niveau spécifié en $, vous pouvez définir non pas le %, mais la distance entre le profit maximum et le stop en argent.

Laissez-moi essayer d'expliquer les inconvénients de l'approche en pourcentage : vous avez 20 positions avec un petit lot - les profits totaux s'élèvent à 300 $ pendant 24 heures. Si nous fixons, par exemple, un niveau de 30 % (en fait, n'importe quel niveau), en cas de repli, nous obtiendrons 200 $ - 100 $ au passage. Si nous avions un niveau fixe, même 50, nous aurions 50$ de plus.

Quelqu'un dira peut-être : on n'arriverait pas à 300 avec un niveau fixe, mais c'est vrai avec un petit nombre d'instruments également orientés. Dans le cas de cette stratégie, le profit croît de manière uniforme, sans gros drawdowns, et un changement sérieux du caractère de l'ensemble indique un renversement. Il faut donc en sortir, sans attendre que le retournement (qui est généralement rapide) mange un % du passé.

Pardonnez les nombreux charabias, avec l'espoir de "l'avoir" ; )