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

 

Et voilà :

//+------------------------------------------------------------------+
extern string   _____= "Параметры Длинных позиций"; 
extern int     RSI_period  =20;
extern int     MA_period          =21;
extern int     TP=200;
extern int     SL=61;

extern string   ____= "Параметры Коротких позиций";
extern int     RSI_period_SELL  =20;          
extern int     MA_period_SELL          =21;
extern int     TP_=200;
extern int     SL_=61;

//------------------------------
extern string     ______= "Общие Параметры ";
extern double  Lot=0.1;
extern int     Slippage=3;
extern int    Low_lim=8;
extern int   Up_lim=8;

int ExpertBars;
int ticket;

//*********************************************************************
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
ExpertBars = Bars;
//----
   return(0);
  }

Suivant :





int start()
  {
bool isNewBar=false;
if ( ExpertBars !=Bars) { ExpertBars=Bars; isNewBar=true; }
if ( isNewBar) { //если есть новый бар
 
//===== Ищем возможность войти в рынок =========================================
if ( Long)                   {     //если "выключатель" включен
if (! ExpertOrder( MagicLong ))//если  нет открытых длинных позиций 
  {
 //------заполняем массив значениями RSI для длинных позиций --------
double RSI_array_buy[50];
int    j=0;
while ( j<50)
 {
RSI_array_buy[ j]= iRSI(NULL, 0, RSI_period, MODE_SMA, j);
j++;
 }
ArraySetAsSeries( RSI_array_buy,true);
double MA_low =iMAOnArray( RSI_array_buy,0, MA_period,1,MODE_SMA,0);
double RSI_0=iRSI(NULL, 0, RSI_period,MODE_SMA, 1);
double RSI_1=iRSI(NULL, 0, RSI_period,MODE_SMA, 2);   
//---------проверяем условие на покупку----------------------------
  if   (           ( RSI_1< MA_low)  &&
          ( RSI_0> MA_low)  )
   {
  ticket=OrderSend(Symbol(),0, Lot,Ask, Slippage,Bid- SL*Point,Ask+ TP*Point,NULL, MagicLong,0,CLR_NONE);
  if ( ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0);   }          
   }
   }}
   //--------------------------------------------------------------
if ( Short)                   {     //если "выключатель" включен 
if (! ExpertOrder( MagicShort ))//если  нет открытых длинных позиций 
  {  
 // ---заполняем массив значениями рси  для коротких  позиций
double RSI_array_sell[50];
int    k=0;
while ( k<50)
 {
RSI_array_sell[ k]= iRSI(NULL, 0, RSI_period_SELL, MODE_SMA, k);
k++;
 }
ArraySetAsSeries( RSI_array_sell,true);
double MA_up =iMAOnArray( RSI_array_sell,0, MA_period_SELL ,1,MODE_SMA,0);
double RSI_0s=iRSI(NULL, 0, RSI_period_SELL,MODE_SMA, 1);
double RSI_1s=iRSI(NULL, 0, RSI_period_SELL,MODE_SMA,2);
    
//--------проверяем условие на продажу------------------------------
  if  (           ( RSI_1s > MA_up )  &&
          ( RSI_0s < MA_up )) 
   {       
  ticket=OrderSend(Symbol(),1, Lot,Bid, Slippage,Bid+ SL_*Point,Bid- TP_*Point,NULL, MagicShort,0,CLR_NONE);
  if ( ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0);  }     
   } 
   }} 
 

Merci !

 
Bonjour ! J'ai essayé de ZZ sous la forme d'un histogramme avec l'affichage sur le TF du signal à la fois de la basse et la haute TF, mais a donné 5 erreurs" ExtMapBuffer2 "- variable non définie", ce qui est faux ? .....Help si vous ne pouvez pas !!! Merci
Dossiers :
dinap_zzg.mq4  4 kb
 

Messieurs (Camarades :)))

J'essaie d'implémenter un indicateur MAMy (il est dans kodobase).

J'essaie d'implémenter l'indicateur MAMy (il est dans kodobase) sous forme de flèche.

Les flèches sont dessinées sur une barre non formée et si, au moment de sa formation, les conditions ont changé - la flèche n'est pas supprimée, et ne peut l'être que lors du redémarrage de l'indicateur.

Je voudrais que les flèches soient dessinées uniquement sur les barres formées. Si vous avez le temps - donnez-moi une leçon pratique - corrigez ce code désordonné ...

(Il est tout à fait possible que vous trouviez quelque chose de superflu - désolé (d'écrire un indicateur à partir de rien - mes mains ne poussent pas de là - bien qu'elles soient en or), j'utilise toujours les pièces d'autres personnes).

Merci d'avance.

Dossiers :
 

Merci beaucoup !

C'est exactement ce que le docteur a ordonné !

Parce que dans l'historique du compte, sur le graphique.

ça n'a pas l'air très bon.



 

Pourriez-vous me dire comment mql peut simuler un débogueur (pour regarder l'algorithme étape par étape avec les valeurs actuelles des variables), s'il n'y a pas de débogueur, peut-être y a-t-il une attente de pression de touche et une fonction de sortie de dialogue ou quelque chose comme ça ?

 

J'ai trouvé la fonction d'impression, mais j'ai maintenant une autre question : comment fonctionne la sortie de l'indicateur ?

Il y a 512 barres sur le graphique. Théoriquement, le code devrait imprimer le début et le numéro de barre sur les barres 1-14, puis le principal et le numéro de barre sur les autres barres, mais pour une raison quelconque, seul le début est imprimé jusqu'à la toute fin et à partir de 295 barres. Pouvez-vous me dire ce qui ne va pas ?

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Yellow

extern int Param=14;
extern double Razmah=0.9;

double VH[], VL[], Rang=0, z=0, z1=0, num=0, num1=0;
int init()
  {
   SetIndexBuffer(0, VH);
   SetIndexBuffer(1, VL);
   return(0);
  }
int start()
  {
   int i, counted_bars=IndicatorCounted();
   if ( counted_bars<= Param+1) 
   { 
      for( i=0; i<=Bars- counted_bars-1; i++)
      {
         VH[ i]=High[ i];
         VL[ i]=Low[ i];
         num++;
         Print("Start     ", num);
      }
      return(0);
   }
   
   i=-5;
   if( counted_bars> Param+1) i=Bars- counted_bars-1;
   while( i>=0)
     {
      num1++;
      Print("Main     ", num1 );
      VH[ i]=High[ i]*1.01;
      VL[ i]=Low[ i]*0.99;
      i--;
     }
   return(0);
  }
 
Andrej78 писал(а) >>

J'ai trouvé la fonction d'impression, mais j'ai maintenant une autre question : comment fonctionne la sortie de l'indicateur ?

Il y a 512 barres sur le graphique. Théoriquement, le code devrait imprimer le début et le numéro de la barre sur les barres 1-14, puis la barre principale et le numéro de la barre sur les autres barres, mais pour une raison quelconque, il n'imprime que le début tout au long de la descente et à partir de 295 barres. Veuillez m'indiquer quel est le problème.

Vérifiez vos journaux.

 
Vinin писал(а) >>

Vous devez regarder dans les journaux

>> Comment regardez-vous les journaux ?

 
Pouvez-vous m'aider à le mettre en boucle, ça ne marche pas. Un nouveau look suffirait-il ? Merci d'avance pour votre aide. Description dans le code.
Dossiers :
proba9.mq4  3 kb