Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 31

 

Por favor, avise, eu fiz um indicador baseado no movimento de vários pares de moedas, mas acontece de recalcular. Nada cósmico - refere-se aos parâmetros do castiçal. Talvez, ele faça asneira porque

os castiçais começam a abrir somente no momento do primeiro tique para um determinado castiçal e se um novo castiçal para um instrumento já começou, ele não se formou para o segundo. Acho que é aqui que reside o problema.

Você sabe, talvez haja uma maneira de fazer o cálculo somente quando todas as novas velas tiverem se formado? Talvez iTime(symbol1,,1)==iTime(symbol2,,1)?

 

Boa tarde colegas!

Favor informar se a lógica no código está correta.

A essência do código é a fórmula:

TRIN = (Pares em crescimento/diminuindo pares)/ (Volume de pares em crescimento/diminuindo pares)

double Index[];
double instr_up, instr_dn, vol_dn, vol_up;
//+------------------------------------------------------------------+
int init()
{
   SetIndexBuffer(0,Index);
   SetIndexStyle(0,DRAW_LINE);   
   string Tf;
   if(Period()==1) Tf="M1";
   if(Period()==5) Tf="M5";
   if(Period()==15) Tf="M15";
   if(Period()==30) Tf="M30";
   if(Period()==60) Tf="H1";
   if(Period()==240) Tf="H4";
   if(Period()==1440) Tf="D1";
   if(Period()==10080) Tf="W1";
   if(Period()==43200) Tf="MN";         
        string short_name="TRIN("+Depth+","+Tf+")";
        IndicatorShortName(short_name);
   IndicatorDigits(0);
   return(0);
}

//---- функция проверки цены закрытия на максимум Доллара США за период Depth
int newh(string symbol,int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period(), time_bar, false);
                
         if(symbol=="EURUSD" || symbol=="GBPUSD" || symbol=="AUDUSD" || symbol=="NZDUSD")
            {

               int j=iLowest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     int nh=1;                                                 
                  }
               else                                                                 
                  {
                     nh=0;                                              
                  }       
            }
         else
            {
               j=iHighest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     nh=1;                                                 
                  }
               else                                                                 
                  {
                     nh=0;                                              
                  }             
            }
         return(nh);      
      }

//---- функция проверки цены закрытия на минимум Доллара США за период Depth
int newl(string symbol,int i)
      {
         datetime time_bar = Time[i];
         int bar_no = iBarShift(symbol, Period(), time_bar, false);      
      
         if(symbol=="EURUSD" || symbol=="GBPUSD" || symbol=="AUDUSD" || symbol=="NZDUSD")
            {
               int j=iHighest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     int nl=1;                                                 
                  }
               else                                                                 
                  {
                     nl=0;                                              
                  }       
            }
         else
            {
               j=iLowest(symbol,Period(),MODE_CLOSE,Depth,bar_no);
               if (iClose(symbol,Period(),bar_no)==iClose(symbol,Period(),j))                    
                  {
                     nl=1;                                                 
                  }
               else                                                                 
                  {
                     nl=0;                                              
                  }             
            }
         return(nl);      
      }
//+------------------------------------------------------------------+
int start()
{
   int limit=Bars-IndicatorCounted();
   for(int i=1; i<limit; i++)
          {       
            if (newh("EURUSD",i) > 0                              //-- Если пара росла, то
             {instr_up=instr_up+1;vol_up+=iVolume("EURUSD",0,i);}   //-- instr_up - увеличиваем на 1 и vol_up - увеличиваем на Volume по этой паре   
           else //if (newl("EURUSD",i) > 0)                         //-- иначе
              {instr_dn=instr_dn+1;vol_dn+=iVolume("EURUSD",0,i);}  //-- instr_dn - увеличиваем на 1 и vol_dn - увеличиваем на Volume по этой паре
              
            if (newh("GBPUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("GBPUSD",0,i);}
           else //if (newl("GBPUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("GBPUSD",0,i);}
            
            if (newh("USDCHF",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDCHF",0,i);}
           else //if (newl("USDCHF",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDCHF",0,i);}
            
            if (newh("USDJPY",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDJPY",0,i);}
           else if (newl("USDJPY",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDJPY",0,i);}
            
            if (newh("AUDUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("AUDUSD",0,i);}
           else //if (newl("AUDUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("AUDUSD",0,i);}
            
            if (newh("USDCAD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("USDCAD",0,i);}
           else //if (newl("USDCAD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("USDCAD",0,i);}
            
            if (newh("NZDUSD",i) > 0)
             {instr_up=instr_up+1;vol_up+=iVolume("NZDUSD",0,i);}
           else //if (newl("NZDUSD",i) > 0)
              {instr_dn=instr_dn+1;vol_dn+=iVolume("NZDUSD",0,i);}   
     
     if (instr_dn == 0)instr_dn=EMPTY;  // -- Если 
     if (vol_dn == 0)vol_dn=EMPTY;      // -- значения
     if (instr_up == 0)instr_up=EMPTY;  // -- нулевые
     if (vol_up == 0)vol_up=EMPTY;
     
     Index[i]=(instr_up/instr_dn)/(vol_up/vol_dn);  // -- TRIN
     
     instr_up=0;instr_dn=0;vol_up=0;vol_dn=0;  // -- Обнуление
     }
     
        return(0);
}

Isto é o que saiu:

TRIN

Obrigado!

 

Você poderia, por favor, aconselhar

1 Consultor especializado pode adicionar fundos para equilibrar

2 se o trader tem % de fundos livres - como isso pode ser implementado no testador ou funciona como está?

 

1. Se para fins de teste, é mais fácil definir uma boa quantidade inicial e construir o MM com base na quantidade certa.

2. Para fins de teste, é absolutamente desnecessário. A propagação é mais importante.

 
splxgf:

1. Se para fins de teste, é mais fácil definir uma boa quantidade inicial e construir o MM com base na quantidade certa.

2. Para fins de teste, é absolutamente desnecessário. A propagação é mais importante.


e 1 e 2 você sabe como e o que eu testei e porque preciso? você vê meu especialista? você vai me dizer o que eu preciso melhor?

E para um lanche, a propagação não é importante para mim, mas a troca é crítica ))))

 
sdm:


e 1 e 2 você sabe como e o que eu testei e porque preciso? você vê meu especialista? você vai me dizer o que eu faço melhor?

e mais uma coisa para uma mordida, eu não me importo com a propagação, mas me importo com a troca )))) há especialistas diferentes


Ou você é desta maneira. Ou você ainda não aprendeu a fazer perguntas?
 
sdm:


e 1 e 2 você sabe como e o que eu testei e porque preciso? você vê meu especialista? você vai me dizer o que eu preciso melhor?

e para um lanche, eu não me importo com a propagação, mas me importo com a troca ))))


Bem, o que há para saber, se os juros são cobrados, é melhor abster-me de comentar... Quanto às trocas, tenho pedidos flutuando por um ano e as trocas não me incomodam em nada.

As taxas de juros têm tempo para mudar durante este tempo ou você tem tudo programado com projeções para o futuro?

 
Vinin:

Ou é por aqui. Ou talvez você ainda não aprendeu a fazer perguntas.
Estas perguntas são retóricas e não se destinam a todos, mas apenas como parte de um comentário e sua ligação é inadequada.
 
sdm:
Estas perguntas são retóricas e não se destinam a todos, mas como parte de um comentário e sua ligação é inadequada.

Mais uma acrobacia e você está na casa do cão. Por tratar mal outros membros do fórum, fazendo longas perguntas
 
splxgf:


Bem, o que há para saber, se os juros estão acumulando, prefiro me abster de comentar... Quanto às trocas, tenho pedidos para um ano, as trocas não me incomodam em nada.

As taxas de juros têm tempo para mudar durante este tempo ou você tem tudo isso programado com projeções para o futuro?

Repito que todos os especialistas (sistemas) são diferentes, eu troquei todo o meu lucro após um ano (em alguns negócios) e consigo um bom crescimento de equilíbrio com baixo crescimento de dinheiro livre e não importa o que seja, eu não faço previsões, eu tento usar o que tenho.
Razão: