[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 143

 

Aí está:

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

A seguir:





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

Obrigado!

 
Olá! tentando ZZ na forma de um histograma com a exibição no TF do sinal tanto do TF baixo como do alto, mas deu 5 erros" ExtMapBuffer2 "- variável não definida", o que está errado? .....Ajude se você não puder!!! Obrigado
Arquivos anexados:
dinap_zzg.mq4  4 kb
 

Cavalheiros (Camaradas :)))

Estou tentando implementar um indicador MAMy (está em kodobase) em forma de seta.

Estou tentando implementar o indicador MAMy (está em kodobase) na forma de seta.

As setas são desenhadas em uma barra não-formada e se, no momento de sua formação, as condições tiverem mudado - a seta não é removida, e só pode ser removida ao reiniciar o indicador.

Eu gostaria que as setas fossem desenhadas apenas nas barras formadas. Se você tiver tempo - me dê uma lição prática - corrija este código confuso ...

(É bem possível que você encontre algo supérfluo - desculpe (para escrever um indicador do zero - minhas mãos não crescem dali - embora sejam douradas), eu ainda estou usando as peças de trabalho de outras pessoas).

Obrigado de antemão.

Arquivos anexados:
 

Muito obrigado !

Foi exatamente isso que o médico pediu!

Porque a partir do histórico da conta, no gráfico.

não parece tão bom.



 

Você poderia me dizer como o mql pode simular um depurador (para observar o algoritmo passo a passo com os valores atuais das variáveis), se não houver um depurador, talvez haja uma tecla de espera e uma função de saída de diálogo ou algo do tipo?

 

Encontrei a função Imprimir, mas agora tenho outra pergunta: como funciona o indicador de saída?

Há 512 barras na tabela. Teoricamente, o código deve imprimir o início e o número de barras em 1-14 barras, depois o principal e o número de barras em outras barras, mas, por alguma razão, ele só começa a partir de 295 barras. Você pode me dizer o que está errado?

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

Encontrei a função Imprimir, mas agora tenho outra pergunta: como funciona o indicador de saída?

Há 512 barras na tabela. Teoricamente, o código deve imprimir o início e o número de barras em 1-14 barras, depois o principal e o número de barras em outras barras, mas, por alguma razão, ele só começa a partir de 295 barras. Por favor, informe qual é o problema.

Verifique seus registros.

 
Vinin писал(а) >>

Você precisa procurar nos troncos

>> como você olha para os toros?

 
Por favor, ajude-me a fazer o loop it in, não está funcionando. Será que um novo visual seria suficiente? Obrigado antecipadamente por sua ajuda. Descrição no código.
Arquivos anexados:
proba9.mq4  3 kb