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 1004

 
Olá a todos! Havia um indicador no fórum
https://forum.mql4.com/ru/56236/page933,Подскажите por favor, como abrir no terminal?

#property  indicator_separate_window
#property  indicator_buffers 3
#property   indicator_color1  Aqua
#property   indicator_width1  1
#property   indicator_color2  Red
#property   indicator_width2  1
#property   indicator_color3  Yellow
#property   indicator_width3  1

extern int       Fperiod=1;
extern int       Speriod=2;
extern int       Method=3;
extern int       PRICE_MODE=PRICE_WEIGHTED;

double   Buf0[];
double   Buf1[];                                
double   Buf2[];                                
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
    SetIndexBuffer(0,Buf0);
    SetIndexBuffer(1,Buf1);
    SetIndexBuffer(2,Buf2);

    SetIndexStyle(0,DRAW_LINE);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexStyle(2,DRAW_LINE);

    SetIndexEmptyValue(1,EMPTY_VALUE);   
    SetIndexEmptyValue(2,EMPTY_VALUE);   

    IndicatorShortName("Proba ");                
   
    SetIndexDrawBegin(0, 0);  
    SetIndexDrawBegin(1, 0);
    SetIndexDrawBegin(2, 0);

    return(0);
   }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
   {
    int i; 
    int limit;
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--;
    limit=Bars-counted_bars;
    for (i = limit;i>=0;i--)
        {  
         Buf0[i]=iMA(NULL,0,Fperiod,0,Method,PRICE_MODE,i)-iMA(NULL,0,Speriod,0,Method,PRICE_MODE,i);
         if(Buf0[i] > Buf0[i+1])
             {
              Buf1[i] = Buf0[i];
//              if(Buf0[i+1] > Buf0[i+2])
//                   Buf1[i+1] = Buf0[i+1];
//              else Buf2[i+1] = Buf0[i+1];
             }
         else
             {
              Buf2[i] = Buf0[i];
//              if(Buf0[i+1] < Buf0[i+2])
//                   Buf2[i+1] = Buf0[i+1];
//              else Buf1[i+1] = Buf0[i+1];
             }
        }              
    return(0);
   }

 

Olá! No Expert Advisor, como uma das condições comerciais, eu uso o pivô CCI, mas por alguma razão ele não funciona. Você poderia explicar qual é o erro?

C_1=iCCI(NULL,0,C_período,PRICE_TYPICAL,0);

C_2=iCCI(NULL,0,C_período,PRICE_TYPICAL,1);

C_3=iCCI(NULL,0,C_período,PRICE_TYPICAL,2);


if(C_1 > C_2 > C_3)Opn_B=verdadeiro;

if(C_1 < C_2 < C_3)Cls_B=verdadeiro;

 
Ratmirf:

Olá! No Expert Advisor, como uma das condições comerciais, eu uso o pivô CCI, mas por alguma razão ele não funciona. Você poderia explicar qual é o erro?

C_1=iCCI(NULL,0,C_período,PRICE_TYPICAL,0);

C_2=iCCI(NULL,0,C_período,PRICE_TYPICAL,1);

C_3=iCCI(NULL,0,C_período,PRICE_TYPICAL,2);


if(C_1 > C_2 > C_3)Opn_B=verdadeiro;

if(C_1 < C_2 < C_3)Cls_B=verdadeiro;

if (C_1 > C_2 && C_2 > C_3) Opn_B=true;

if(C_1 < C_2 && C_2 < C_3)Cls_B=verdadeiro;

 
paladin80:
if (C_1 > C_2 && C_2 > C_3) Opn_B=true;

se (C_1 < C_2 && C_2 < C_3) Cls_B=verdadeiro;

Muito obrigado!
 

Você pode me dizer o que está errado aqui? Quero que os negócios fechem quando cruzarem 70 para baixo (Comprar) e 30 para cima (Vender). Por alguma razão as negociações estão fechando Comprar bem abaixo de 70 e Vender bem acima de 30. A LER ainda nem chega a 70 e 30. Obrigado!

R_1=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,0);

R_2=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,1);

if((R_1 < 70 && R_2 > 70)) Cls_B=verdadeiro;
if((R_1 > 30 && R_2 < 30)) Cls_S=verdadeiro;
 
Ratmirf:

Você pode me dizer o que está errado aqui? Quero que os negócios fechem quando cruzarem 70 para baixo (Comprar) e 30 para cima (Vender). Por alguma razão as negociações estão fechando Comprar bem abaixo de 70 e Vender bem acima de 30. A LER ainda nem chega a 70 e 30. Obrigado!

R_1=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,0);

R_2=iRSI(NULL,0,RSI_Period,PRICE_TYPICAL,1);

if((R_1 < 70 && R_2 > 70)) Cls_B=verdadeiro;
if((R_1 > 30 && R_2 < 30)) Cls_S=verdadeiro;

No post anterior, você tinha: if(C_1 < C_2 && C_2 < C_3) Cls_B=true; Agora você tem a mesma variável mudando sob uma condição diferente: if((R_1 < 70 && R_2 > 70)) Cls_B=verdadeiro; Verificar.

Tente este código:

double C_1=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,0);
double C_2=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,1);
double C_3=iCCI(NULL,PERIOD_CURRENT,C_period,PRICE_TYPICAL,2);

bool Opn_B=false, Opn_S=false;

if(C_1>C_2 && C_2>C_3) Opn_B=true;
if(C_1<C_2 && C_2<C_3) Opn_S=true;

//---
double R_1=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,0);
double R_2=iRSI(NULL,PERIOD_CURRENT,RSI_Period,PRICE_TYPICAL,1);

bool Cls_B=false, Cls_S=false;

if(R_1>70.0 && R_2<70.0) Cls_B=true; 
if(R_1<30.0 && R_2>30.0) Cls_S=true;
 

Olá a todos!!!!

Tenho certeza de que isso tem sido feito repetidamente assim, mas talvez alguém sugira uma fórmula para o tamanho do lote, dependendo dos fundos???

Como se mais de 2000, então lote 0,02, se mais de 3000, então 0,03, etc.?

 
nikelodeon:

Olá a todos!!!!

Tenho certeza de que já foi feito muitas vezes assim, mas talvez alguém possa sugerir uma fórmula para o tamanho do lote, dependendo dos fundos???

Como se mais de 2000, então lote 0,02, se mais de 3000, então 0,03, etc.?

Há diferentes fórmulas de cálculo
 
paladin80:

No post anterior você tinha: if (C_1 < C_2 && C_2 < C_3) Cls_B=true; Agora você tem a mesma variável mudando sob uma condição diferente: if((R_1 < 70 && R_2 > 70)) Cls_B=true; Verifique.

Tente este código:


Muito obrigado por sua ajuda! Estou descobrindo exatamente como funciona o RSI EA. Portanto, o que é interessante, no gráfico a seguir as negociações são abertas exatamente no lugar certo, mas são fechadas completamente no lugar errado (quero que as negociações sejam fechadas em 70 cruzamentos de cima para baixo (Comprar) e 30 cruzamentos de baixo para cima (Vender). Seu esquema de fechamento recomendado também não funciona. Eu defini o período do RSI como 2 e estou olhando para M1. Onde está a imprecisão, não consigo descobri-la.

R_1=iRSI(NULL,PERÍODO_CURRENTE,PERÍODO_PERÍODO,PREÇO_TÍPICO,0);

R_2=iRSI(NULL,PERÍODO_CURSO,PERÍODO_PERIODO,PREÇO_TÍPICO,1);


if(R_1>60 && R_2<60) Opn_B=verdadeiro;

if(R_1<40 && R_2>40) Opn__S=verdadeiro;


if(R_1<70.0 && R_2>70.0) Cls_B=true;

if(R_1<30.0 && R_2<30.0) Cls_S=verdadeiro;

 
Ratmirf:

Muito obrigado por sua ajuda! Estou no processo de descobrir como funciona o RSI EA. Portanto, o que é interessante, no gráfico abaixo, abre exatamente onde eles deveriam, mas eles fecham completamente errado (quero que os negócios fechem a 70 cruzamento de cima para baixo (Comprar), e 30 cruzamento de baixo para cima (Vender). Seu esquema de fechamento recomendado também não funciona. Eu defini o período do RSI como 2 e estou olhando para M1. Onde está a imprecisão, não consigo descobri-la.

R_1=iRSI(NULL,PERÍODO_CURRENTE,PERÍODO_PERÍODO,PREÇO_TÍPICO,0);

R_2=iRSI(NULL,PERÍODO_CURSO,PERÍODO_PERIODO,PREÇO_TÍPICO,1);


if(R_1>60 && R_2<60) Opn_B=verdadeiro;

if(R_1<40 && R_2>40) Opn__S=verdadeiro;


if(R_1<70.0 && R_2>70.0) Cls_B=verdadeiro;

if(R_1<30.0 && R_2<30.0) Cls_S=verdadeiro;

Estamos certos de que a última condição está escrita corretamente