Fermeture de postes. Signal lumineux de marche. - page 7

 
Affichez un test sur les prix d'ouverture. Pour ma part, j'ai ceci (depuis le début de cette année) : je réfléchis à la manière de réduire les pullbacks. Mon conseiller expert est en démo, j'ai gagné 50% du dépôt en une semaine (sans MM). Peut-être pouvons-nous échanger nos expériences.
 

L'expert travaille sur toutes les tiques. Pas du tout sur les prix d'ouverture. Dans le téléchargement - test du 8 février

Dossiers :
1111_1.zip  72 kb
 
Par exemple, mes ticks dans le testeur montrent une image comme la vôtre, mais lorsque je teste par barres, c'est un peu différent, beaucoup plus proche de la réalité (je l'ai comparé avec la démo). Il ne s'agit que de mon expérience (je suis essentiellement un débutant) et de mes observations. Peut-être que j'ai fondamentalement tort, je ne le nie pas. Je ne sais pas si c'est une coïncidence ou non, mais voici ma photo du compte de démonstration : IMHO, très similaire à la vôtre :)
 

Je n'ai pas eu le temps d'enregistrer une boîte de réception. Et je n'ai pas de boîte de réception pour travailler les week-ends. Je ne comprends pas bien. Les tests doivent être effectués dans ce mode, qui est utilisé dans le code du conseiller expert. Si l'algorithme implique de travailler avec tous les ticks, il est incorrect de tester "par les prix d'ouverture". Vous ne faites que vous tromper vous-même.

Vous devez comprendre pourquoi les résultats sont différents selon les modes. En même temps, "aux prix d'ouverture" est un résultat pire. En général, c'est le contraire qui est vrai.

De plus, si le conseiller expert travaille "aux prix d'ouverture", le résultat du test doit coïncider avec le résultat de "tous les ticks". Ils coïncident presque.

 

Tout est dans le générateur de tics du testeur. Les conditions y sont idéales. Par exemple, condition d'entrée : a = 1,5001. Dans le testeur, ce sera 100% vrai, mais dans la réalité, ce ne sera peut-être pas le cas. Le prix peut passer de 1.4999 à 1.5003 par 1 tick. L'état est raté, le commerce n'a pas été ouvert. Si je me trompe, corrigez-moi, je vous en serai reconnaissant.

Voici mon test de tique:

Dépôt initial 700.00



Bénéfice net 6157.73

Abaissement maximal 74.80 (1.50%)

Prix d'ouverture:

Dépôt initial 700.00



Bénéfice net 1304.47

Abaissement maximal 514.82 (29.40%)
----

J'ai prévu dans mon Expert Advisor la commutation entre ticks/bars. Bien entendu, en activant le contrôle de l'ouverture des barres, les tests en ticks et en barres coïncident. L'image est la même que celle dessinée ci-dessus par les prix d'ouverture.

 
Lukyanov:

C'est le générateur de tics du testeur. Le prix peut passer de 1.4999 à 1.5003 par tick. La condition a été manquée, le commerce ne s'est pas ouvert.

Oui, c'est possible. Néanmoins. Je pense qu'il est inacceptable de tester un Expert Advisor qui fonctionne avec tous les ticks aux prix d'ouverture. Et nous obtiendrons des données peu fiables sur de grandes périodes. Au contraire, si cet expert travaille aux prix ouverts, alors le test "à tous les ticks" est possible et nécessaire......

Et il y a un paramètre pour le slippage - extern int Slippage=... ;

 
Le glissement est une chose, mais la condition : ouvrir si a = 1.5000 en est une autre...
 

Bonjour à tous ! Cette question peut sembler naïve, mais c'est ce qui m'a valu des ennuis...

J'ai un indicateur que je veux utiliser dans mon conseiller expert. Voici le tableau. Voici le code.

#property copyright "Copyright © 2006 , David W Honeywell , 12/12/2006"
#property link      "HellOnWheels.Trans@gmail.com"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

#property indicator_maximum 100.0
#property indicator_minimum   0.0

#property indicator_level1 70
#property indicator_level2 50
#property indicator_level3 20

extern int IndicatorTime =  0;
extern int RSI_Periods   = 14;
extern int Applied_Price =  0;
extern int LineWidth     =  4;

double Buffer0[];
double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(0,Buffer0);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,LineWidth);
SetIndexBuffer(1,Buffer1);

IndicatorShortName(" ColorRSI ( "+RSI_Periods+" )");

return(0);  
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
{
  
  int     counted_bars=IndicatorCounted();
  double  RSIValue;
  int     i;
  int     limit;

  limit = Bars-counted_bars;
  
  for(i=limit; i>0; i--)
   {
     RSIValue=iRSI(Symbol(),IndicatorTime,RSI_Periods,Applied_Price,i);
    if (RSIValue > 50.00000000)
     {
       Buffer0[i] = RSIValue;
       Buffer1[i] = EMPTY_VALUE;
       if (Buffer0[i+1] == EMPTY_VALUE) Buffer0[i+1] = Buffer1[i+1]; 
     }
    else
     {
       Buffer0[i] = EMPTY_VALUE; 
       Buffer1[i] = RSIValue;
       if (Buffer1[i+1] == EMPTY_VALUE) Buffer1[i+1] = Buffer0[i+1]; 
     }
   }

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

 

Je n'arrive pas à trouver comment définir la condition pour passer du rouge au vert et vice versa !

Et comment puis-je définir l'expression personnalisée i pour mettre en œuvre cette transition... Veuillez répondre si vous savez...

 
if ( Buffer0[i+1] != EMPTY_VALUE && Buffer0[i+2] == EMPTY_VALUE )
{
  // началась зеленая линия
}
C'est plus ou moins comme ça