[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 236

 

Chers collègues, je suis un peu perdu.

Vous devez utiliser l'indicateur pour tracer une ligne entre deux points


   SetIndexShift(0, DRAW_SECTION);
   SetIndexBuffer(0, z1);

   z1[1]=1.5;
   z1[2]=EMPTY_VALUE;
   z1[3]=EMPTY_VALUE;
   z1[4]=EMPTY_VALUE;
   z1[5]=EMPTY_VALUE;
   z1[6]=1.4;

Ça ne marche pas comme ça, n'est-ce pas ?
 
neoclassic >> :

Collègues, un peu confus.

Vous devez utiliser l'indicateur pour tracer une ligne entre deux points

Et tu jettes un coup d'oeil à l'aide de SetIndexShift. Fonction erronée. Le vôtre est SetIndexStyle.

PS : et si vous tracez des lignes en utilisant la formule y=kx+b, alors l'indicateur va

est défini pour deux points quelconques :-).

 
jartmailru >> :

Et vous pouvez consulter l'aide de SetIndexShift. Fonction erronée. Le vôtre est SetIndexStyle.

PS : et si vous tracez des lignes en utilisant la formule y=kx+b, l'indicateur va

défini pour deux points quelconques :-).

C'est comme ça que ça se passe, plus d'un indicateur écrit, shifter mélangé avec stile :-) pas d'erreur, j'ai relaxé..... merci :-)

 

Les gars, pouvez-vous m'aider à changer l'indicateur pour dessiner une ellipse en même temps que la parabole, je veux comparer les résultats de l'EA. Il me semble que l'ellipse est plus adaptée au stoploss que la parabole. Quelqu'un dispose-t-il d'un tel indicateur ? Basé sur des ellipses ? Je voudrais comparer les résultats avec ceux d'une parabole.

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

Les gars, pouvez-vous m'aider à changer l'indicateur pour dessiner une ellipse en même temps que la parabole, je veux comparer les résultats de l'EA. Il me semble que l'ellipse est plus adaptée au stoploss que la parabole. Quelqu'un dispose-t-il d'un tel indicateur ? Basé sur des ellipses ? Merci d'avance.

J'ai essayé de connecter cet indicateur comme un indicateur externe dans mon conseiller expert. Je ne comprends pas ce qui ne va pas.

J'ai les informations suivantes dans mon indicateur

extern double Step=0.0513 ;
extern double Maximum=0.46 ;

Dans mon conseiller expert :

extern double stepstop=0.005 ;
extern double maximumstepstop=0.05 ;

double sarstop=iCustom(NULL,0, "ParabolicM",stepstop,maximumstepstop,0,0) ;

En conséquence :

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30 : sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30 : sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30 : sarstop = 0.8625

2009.09.25 17:01:42 2001.09.24 09:00 EnveIn EURUSD,M30 : sarstop = 0.8625

Cela signifie que la lecture ne change pas

 

Bonjour !


J'ai une question sur la logique du conseiller expert et, en raison de mon manque d'expérience en programmation, je fais appel à ceux qui la comprennent.

J'ai un code (trouvé sur un forum occidental et je ne me souviens plus du nom de l'auteur malheureusement), qui est censé enregistrer l'intersection des lignes de l'indicateur stochastique sur quatre délais. Si la ligne principale est supérieure à la ligne de signal sur tous les horizons temporels, le code d'ouverture de l'ordre est exécuté. Cette idée est géniale, bien sûr, mais sa mise en œuvre a causé beaucoup de problèmes. Après l'avoir exécutée dans l'historique, j'ai vu que parfois l'ordre est ouvert alors que l'événement n'est enregistré que sur une seule période. Je n'arrive pas à comprendre quel peut être le problème, puisqu'il semble que les conditions de base soient réunies.


Je serais reconnaissant pour toute aide !



double M1, S1, M2, S2, M3, S3, M4, S4;

string Sig;
string St;
double ticket;

int start()
{
M1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S1=iStochastic(NULL,PERIOD_M15,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

M2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S2=iStochastic(NULL,PERIOD_M30,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S3=iStochastic(NULL,PERIOD_H1,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);
M4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_MAIN,1);
S4=iStochastic(NULL,PERIOD_H4,14,3,3,MODE_SMA,0,MODE_SIGNAL,1);

St = "READY";

Sig = "NONE";

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
{
Sig="LONG";
}
if(M1<S1, M2<S2 && M3<S3 && M4<S4)
{
Sig="SHORT";
}

if(St=="READY" && Sig=="LONG")
{
ticket=OrderSend(Symbol(),OP_BUY,LotSize,Ask,5,Bid-SL*Point,Bid+TP*Point,LongComment,Magic,0,Blue);
if(ticket>-1)
{
St="LONG ON";
}
}

if(St=="READY" && Sig=="SHORT")
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,5,Ask+SL*Point,Ask-TP*Point,ShortComment,Magic,0,Red);
if(ticket>-1)
{
St="SHORT ON";
}
}

}

 
if-t >> :

Bonjour !

J'ai un code (je l'ai trouvé sur un des forums occidentaux et je ne me souviens plus du nom de l'auteur malheureusement) qui est censé être .......

..... a constaté que parfois un ordre s'ouvre lorsqu'un événement s'enregistre sur une seule période.

Je vous serais reconnaissant de m'aider !



Le problème vient peut-être de cette étrange entrée :

if(M1>S1, M2>S2 && M3>S3 && M4>S4)
Qu'est-ce que cela signifie ? -
(M1>S1, M2>S2

Peut-être qu'au lieu d'une virgule, vous pourriez utiliser l'opérateur " && " ? (pour l'achat et la vente)

 
rid >> :

Le problème vient peut-être de cette étrange entrée :

Qu'est-ce que cela signifie ? -

Peut-être qu'au lieu d'une virgule, vous pourriez mettre l'opérateur " && " ? (pour l'achat et la vente)

Rid, merci beaucoup pour votre réponse ! J'ai fait cette erreur en réorganisant les variables (ma tête est déjà gonflée et je fais des erreurs primitives). La variante originale est correcte :

if(M1>S1 && M2>S2 && M3>S3 && M4>S4)

Mais ça ne marche pas. Je continue à penser que peut-être la variable St n'obtient pas toujours les bonnes valeurs ? Mais en fait, si la condition n'est pas remplie, le code ne devrait pas être exécuté... En général, je suis un programmeur comme une ballerine et je ne peux pas me passer de l'aide de professionnels...


 

Au fait, j'ai essayé d'insérer une impression, mais les variables semblent avoir les bonnes valeurs.

 

J'ai essayé d'écrire mon premier indicateur mais il ne dessine qu'une ligne au lieu de deux.

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();
//----
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       Buf_1[ i]= Close[ i]; 
       Buf_2[ i]= Open[ i];
       i--;
      }
 
//----
   return(0);
Raison: