[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 143

 

Ahí lo tienes:

//+------------------------------------------------------------------+
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);
  }

Siguiente:





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);  }     
   } 
   }} 
 

Gracias.

 
Hola! Tratando de ZZ en la forma de un histograma con la visualización en el TF de la señal tanto de la baja y alta TF, pero dio 5 errores" ExtMapBuffer2 "- variable no definida ", ¿qué está mal? .....Ayuda si no se puede!! Gracias
Archivos adjuntos:
dinap_zzg.mq4  4 kb
 

Señores (Camaradas :))

Estoy tratando de implementar un indicador MAMy (está en kodobase) en forma de flecha.

Estoy tratando de implementar el indicador MAMy (está en kodobase) en forma de flecha.

Las flechas se dibujan en una barra no formada y si, en el momento de su formación, las condiciones han cambiado - la flecha no se elimina, y sólo se puede eliminar al reiniciar el indicador.

Me gustaría que las flechas se dibujaran sólo en las barras formadas. Si tienes tiempo - dame una lección práctica - corrige este código desordenado ...

(Es muy posible que encuentres algo superfluo - lo siento (para escribir un indicador desde cero - mis manos no crecen desde allí - aunque son de oro), uso las piezas de trabajo de otras personas por ahora).

Gracias de antemano.

Archivos adjuntos:
 

Muchas gracias .

Eso es exactamente lo que el doctor ordenó.

Porque desde el historial de la cuenta, en el gráfico.

no se ve tan bien.



 

¿Podría decirme cómo mql puede simular un depurador (para ver el algoritmo paso a paso con los valores actuales de las variables), si no hay depurador, tal vez hay una prensa de teclas en espera y una función de salida de diálogo o algo así?

 

He encontrado la función de impresión, pero ahora tengo otra pregunta: ¿cómo funciona la salida del indicador?

Hay 512 barras en el gráfico. Teóricamente el código debería imprimir el inicio y el número de barra en las barras 1-14, luego el principal y el número de barra en las demás barras, pero por alguna razón sólo imprime el inicio hasta el final y a partir de las 295 barras. ¿Puede decirme qué pasa?

#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 писал(а) >>

He encontrado la función de impresión, pero ahora tengo otra pregunta: ¿cómo funciona la salida del indicador?

Hay 512 barras en el gráfico. Teóricamente el código debería imprimir el inicio y el número de barra en las barras 1-14, luego el principal y el número de barra en las demás barras, pero por alguna razón sólo imprime el inicio hasta el final y a partir de las 295 barras. Por favor, indíqueme cuál es el problema.

Comprueba tus registros.

 
Vinin писал(а) >>

Tienes que mirar en los registros

>> ¿Cómo se miran los registros?

 
Por favor, pueden ayudarme a ponerlo en bucle, no funciona. ¿Bastaría con una nueva mirada? Gracias de antemano por su ayuda. Descripción en el código.
Archivos adjuntos:
proba9.mq4  3 kb
Razón de la queja: