Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 90

 
artmedia70:

Je n'ai pas encore cherché les erreurs - j'ai beaucoup à faire.

Pour fermer Sell où se trouve la croix rouge, vous devez vérifier la barre actuelle. Si Ask<= niveau de clôture && Open[0]>niveau de clôture


Quelque chose ne fonctionne pas du tout Une opération de vente avec le code if(Ask<=PriceLow && Open[0]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White) ; ne ferme pas du tout.


Si vous êtes intéressé par le sujet pour un contact accéléré je skype alexey1979621

 
alexey1979621:

Quelque chose ne fonctionne pas OrderClose(OrderTicket(),OrderLots(),Ask,3,White) ; ne ferme pas si (Ask<=PriceLow && Open[0]>PriceLow) ; ne ferme pas du tout.


Si vous êtes intéressé par le sujet pour une communication rapide avec moi skype alexey1979621


 if(Ask<=PriceLow && High[1]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
 
artmedia70:


Ça n'a pas marché. Peut-être que ce truc if(Volume[0]>1) renvoie ;
 
alexey1979621:

Les tests aux prix d'ouverture?

C'est une question de tics

 
test sur toutes les tiques
artmedia70:

Les tests aux prix d'ouverture ?

Tout est question de tics


test sur toutes les tiques
 
alexey1979621:
test sur toutes les tiques test sur toutes les tiques

Et où était la ligne de l'indicateur au moment de la clôture de la vente ?

 
alexey1979621:

Corrigé, j'ai fermé la transaction de la même manière que dans la capture d'écran ci-dessus, mais la croix rouge devrait être là.

Je suis d'accord pour dire qu'ExtremeTMA est surdimensionné, mais je suppose que cela n'affecte pas la recherche de points d'entrée, l'essentiel ici étant les filtres. J'ai utilisé l'indicateur TDI. J'ai joint ce que j'ai fait (je n'ai pas de bonnes mains, c'est pourquoi l'Expert Advisor est un bon projet). Je n'ai qu'un seul problème avec lui, il faut environ 5 heures dans le testeur pour 1 an (j'ai fait une erreur quelque part). S'il n'est pas difficile de vérifier les erreurs.

Essayez d'ouvrir des ordres de la manière suivante :

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
   //----
   if (OrdersTotal()>0)
   {  for (int i=OrdersTotal()-1; i>=0; i--)
      {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {  if (OrderSymbol()!=Symbol())   continue;
            if (OrderMagicNumber()!=Magic) continue;
            {  if(OrderType()==OP_BUY)  buys++;
               if(OrderType()==OP_SELL) sells++;
            }
   }  }  }
   //---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

J'ai remarqué que vous avez défini Magic=124, mais le code indique immédiatement 124. De même pour le slippage, OrderSend et OrderClose ont 3 (trois).

 
alexey1979621:

Corrigé, j'ai fermé la transaction de la même manière que dans la capture d'écran ci-dessus, mais je dois fermer là où se trouve la croix rouge.

Je suis d'accord pour dire qu'ExtremeTMA est surdimensionné, mais je suppose que cela n'affecte pas la recherche de points d'entrée, l'essentiel ici étant les filtres. J'ai utilisé l'indicateur TDI. J'ai joint ce que j'ai fait (je n'ai pas de bonnes mains, c'est pourquoi cette EA doit être manipulée correctement). Je n'ai qu'un seul problème avec lui, il faut environ 5 heures dans le testeur pour 1 an (j'ai fait une erreur quelque part). Si ça ne vous dérange pas de chercher des erreurs.

Il est possible que la vitesse de l'EA diminue à cause de la lourdeur des calculs de l'indicateur personnalisé. Si vous voulez vérifier la sévérité des calculs, effectuez le script suivant sur le graphique sur lequel vous tradez. S'il n'y a pas de commentaire pendant une longue période, diminuez N à 100000 ou même moins. Voyez combien de millisecondes il faut par itération.

//---
int    N=1000000;
//---
double PriceHigh, PriceLow, TDIHigh, TDILow, RSIPriceLine, TradeSignalLine;
int    timestart, timestop;
//---
string TimeFrame         = "current time frame";
int    HalfLength        = 56;
int    Price             = PRICE_CLOSE;
double ATRMultiplier     = 2.0;
int    ATRPeriod         = 100;
bool   Interpolate       = true;
double TrendThreshold    = 0.5;
bool   Distances         = false;
//---
int RSI_Period           = 13;         //8-25
int RSI_Price            = MODE_CLOSE;           //0-6
int Volatility_Band      = 34;    //20-40
int RSI_Price_Line       = 2;      
int RSI_Price_Type       = MODE_SMA;      //0-3
int Trade_Signal_Line    = 7;   
int Trade_Signal_Type    = MODE_SMA;   //0-3
bool UseAlerts           = false;
//===============================================
int start()
{
   timestart=GetTickCount();
   for (int i=0;i<N;i++) 
   {  
   PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                        ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
   PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                       ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
   TDIHigh = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                      RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, UseAlerts, 1, 0);
   TDILow = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                     RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 3, 0);
   RSIPriceLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                           RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 4, 0);
   TradeSignalLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                              RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 5, 0);
   }
   timestop=GetTickCount();
   //---
   Comment(" Calculation ",N," times was =  ",timestop-timestart," millisec \n",
           " One iteration was = ",(timestop-timestart)/(N-1)," millisec");
   return(0);
}
//---
Dossiers :
testing_1.zip  4 kb
 
artmedia70:

Et où était la ligne de l'indicateur à la clôture de la vente ?

Tout est comme il est sur la capture d'écran. Le canal n'a pas eu le temps de se redessiner.
 
paladin80, votre script a éteint mon ordinateur deux fois !