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

 
Vinin >> :

Il est affiché, juste à côté de l'écran. Faites-le dans une fenêtre séparée.

>> "dans une fenêtre séparée" - comment ?

 
splxgf >> :

C'est un forum de programmation, pas un forum elliotchiska... Vous devriez peut-être aller sur http://elliottwave.ru/

Ce forum discute des stratégies de trading et du trading des vagues d'Elliott.

est aussi une stratégie, n'est-ce pas ?

 
dmmikl86 писал(а) >>

"dans une fenêtre séparée" - comment ?

#property indicator_separate_window
 
dmmikl86 >> :

>> "dans une fenêtre séparée" - comment ?

Vous ne pouvez pas mettre un cheval sur le même chariot

Un cheval et une biche tremblante. (с)

Votre indicateur tombe inévitablement en panne, même s'il est affiché dans une fenêtre séparée. Il est très peu pratique d'afficher 1,5 pour GPPUSD et 145,0 pour GBPJPY sur le même graphique sans aucune astuce particulière.

 

Bonsoir, j'essaie de créer mon propre EA... Je l'ai fait similaire à un autre EA pour le franchissement de la MA et le back crossing...

Mais il l'a fait avec ses propres paramètres... Il n'ouvre les positions que dans une seule direction et ne les ferme même pas...

Comment ajouter ici une fonction qui se ferme lorsqu'une ligne est franchie en arrière...

Dans l'ensemble, l'aide de maestra!:-(

....

Lorsque la ligne bleue est franchie vers le haut, il y a achat et lorsqu'elle est franchie vers le bas, il y a fermeture.

Lorsque la ligne rouge est franchie à la hausse, vendez et lorsque la ligne rouge est franchie à la baisse, fermez.

Comme vous pouvez le voir sur la photo, ce système ne fonctionne pas...

Aidez-nous un peu avec le code... s'il vous plaît !


extern double Lots               = 0.1;
double Points;
int init ()
  {
   Points = MarketInfo (Symbol(), MODE_POINT);
   return(0);
  }
int CalculateCurrentOrders(string symbol)
  {
   int buys=0, sells=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()== MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
   if( buys>0) return( buys);
   else       return(- sells);
  }
double LotsOptimized()
  {
   double lot= Lots;
   int    orders= HistoryTotal();  
   int    losses=0;                 
   lot=NormalizeDouble(AccountFreeMargin()*0.02/1000.0,1);
   if(3>0)
     {
      for(int i= orders-1; i>=0; i--)
        {
         if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if( losses>1) lot=NormalizeDouble( lot- lot* losses/3,1);
     }
   if( lot<0.1) lot=0.1;
   return( lot);
  }
void CheckForOpen()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
int    res;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м баре
     if ( apglav2< apsig2 && apglav1> apsig1)
     {
      res=OrderSend(Symbol(),OP_BUY, LotsOptimized(),Ask,3,"", MAGICMA,0,Blue);
      return;
     }
     if ( apglav2> apsig2 && apglav1< apsig1)
     {
      res=OrderSend(Symbol(),OP_SELL, LotsOptimized(),Bid,3,"", MAGICMA,0,Red);
      return;
     }
  }
  void CheckForClose()
  {
double apglav1;
double apglav2;
double apsig1;
double apsig2;
   if(Volume[0]>1) return;
   apglav1 =iCustom(NULL,0,"Caska",0,1); // первая линия на 1м баре
   apsig1 =iCustom(NULL,0,"Caska",1,1); // вторая линия на 1м баре   
   apglav2 =iCustom(NULL,0,"Caska",0,2); // первая линия на 2м баре
   apsig2 =iCustom(NULL,0,"Caska",1,2); // вторая линия на 2м бар
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES)==false)        break;
      if(OrderMagicNumber()!= MAGICMA || OrderSymbol()!=Symbol()) continue;
      if(OrderType()==OP_BUY)
        {
        if( apglav2> apsig2 && apglav1< apsig1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
        break;
        }
   if(OrderType()==OP_SELL)
        {
        if( apglav2< apsig2 && apglav1> apsig1) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
        break;
        }
}
}
void start()
  {
   if(Bars<100 || IsTradeAllowed()==false) return;
   if( CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
  }
 

Les Ellioters sont toujours sur les forums où ils parlent de trading. Créez un fil de discussion et posez une question. Et vous pouvez poser la question ici. Peut-être que je répondrai ou que quelqu'un d'autre le fera.

 
DDFedor >> :

tard... la minuterie a commencé... >> "analyse des ondes

Sabluk va faire bannir ce fil aussi.

 
Ibiss >> :

Lorsque la ligne bleue est franchie à la hausse, achetez et lorsque la ligne bleue est franchie à la baisse, fermez.

Lorsque la ligne rouge est franchie à la hausse, vendez et lorsque la ligne rouge est franchie à la baisse, fermez.

Comme vous pouvez le voir sur la photo, ce système ne fonctionne pas.

Aidez-nous un peu avec le code... s'il vous plaît !


Ça a l'air d'aller. (juste un aperçu).

Seulement. Cette expression

si(Volume[0]>1) retour ;

vous feriez mieux de l'enlever. "Ceci" ne fonctionne correctement que dans le testeur. Et cela ne fonctionnera guère en ligne !

Mieux vaut faire un travail correct sur le prix d'ouverture.

 

Chers utilisateurs du forum !

J'ai écrit un indicateur et il y a un problème, la moyenne mobile (Buf_2) n'est pas dessinée, voici le code :

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

extern int average=14;
//---- buffers
double Buf_1[], Buf_2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, Buf_1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, Buf_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i, 
          Counted_bars=IndicatorCounted();


//----
//====================================================================
// график тела с объемом
double sum_b=0.0;
i=Bars- Counted_bars-1;           // Индекс первого непосчитанного
   while( i>=0) 
      {  
       //----
       if (Close[ i]>Open[ i]) {
         sum_b = sum_b + (Close[ i]-Open[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (Close[ i]<Open[ i]) {
         sum_b = sum_b - (Open[ i]-Close[ i])*Volume[ i];
         Buf_1[ i]= sum_b;
         }
         
       if (NormalizeDouble(Close[ i],Digits)==NormalizeDouble(Open[ i],Digits)) {
         Buf_1[ i] = Buf_1[ i-1];
         }
         
       i--;
       //----
      }
//====================================================================
// average
int n=0;
   while( i>=0) 
      {  
       //----
       while( n<= average){
         Buf_2[ i]= Buf_1[ i- n];
         n++;
         }
       
       i--;
       //----
      }

//----
   return(0);
  }
//+------------------------------------------------------------------+
Aidez-moi à comprendre quel est le problème ?
 

Urain писал(а) >>

Sabluk va faire interdire cette branche, aussi.

Ouais, cool.

2 Oper. En bref, pour trader uniquement sur les vagues, vous devez avoir un cerveau aussi performant qu'un ordinateur. Exactement le cerveau avec de telles performances. En d'autres termes, il pourrait s'agir d'un graphique à un mois (avec toutes les conséquences sur B1 au moins). Ce n'est qu'au cours d'un mois qu'un débutant peut calculer tous les scénarios possibles, en tenant compte de l'historique complet qui doit également être disponible, de préférence depuis le début de la négociation de l'instrument. Ou, comme alternative, la réponse à la question : comment savoir à quoi ressemble la deuxième vague (vous avez demandé) ? Tout renversement commence par la PREMIÈRE vague. Le premier point est corrigé par le second. Prenez la M15, vousy verrez en détail le début du mouvement, sa correction (la première et la deuxième vague - le PATTERN) ; si vous le faites une centaine de fois (en considérant le reversal), alors la réponse à votre question est prête. La seule chose à prendre en compte est que le marché dessine souvent le motif sans aucune continuation, c'est-à-dire que si vous avez vu un tel PATTERN, en réalité, mais pas sur l'historique, il peut être considéré comme vrai, seulement après que la tendance se développe dans la même direction, souvent le motif se brise. En général, il faut réunir de nombreuses conditions pour trader sur les vagues.

Personnellement, je ne possède pas certaines de ces caractéristiques.

1. Je ne suis pas très intelligent.

2. Beaucoup de temps pour maîtriser un sujet très compliqué.

3. Citations dès le début de l'instrument de négociation.

La pensée abstraite.

4. il est nécessaire de garder à l'esprit le schéma de la vague entière au moins pendant un an (c'est là qu'il faut un cerveau) et pas seulement le garder, mais avec des variantes. Il existe de très nombreuses variantes, ainsi que des types de correction. C'est comme l'optimisation des paramètres - vous avez ajouté un paramètre et deux valeurs, vous avez deux fois plus de variantes, et si vous ajoutez cinq paramètres et si vous ajoutez 1000 valeurs ?

Eh bien, nous n'avons pas assez de cervelle pour cela. Et pas assez de temps. Et pas assez de citations.

Et il y a beaucoup d'autres choses. Il est beaucoup plus facile d'utiliser l'AT classique. Il ne fonctionne pas plus mal que l'AV, bien que personnellement j'utilise toujours l'Analyse des Vagues puisque j'y ai passé beaucoup de temps. Mais la plupart des traders se débrouillent très bien sans BA.

Raison: