[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 527

 
Dimka-novitsek:
Bom dia! A condição não funciona

Eu já olhei para o ife string, olhei para ele, olhei para ele, olhei para ele.... Deve haver alguma razão, posso estar confuso e não ver algo simples e elementar, isso acontece.

Eu olhei de manhã. Eu saí. Voltei e olhei novamente. É mais fácil agora, se, mais, menos... Eu não entendo nada.



E isto está sob meu comando.


p.s. Faz tudo parte desta condição estratégica

EMA - período 10 cruzes de cima para baixo EMA - período 200 , CCI cruza 0,100 ou 100 de cima para baixo; Vela fecha ou está abaixo de LMA - período 100


Colocar um parêntese para mostrar como e o que é feito

if( CCI_50S>100&&CCI_50<100 ||CCI_50S>0&&CCI_50<0|| CCI_50S>-100&&CCI_50<-100 )CCInapravlenie=true;
 
Chiripaha:

Eu coloco bandeiras para a direção do comércio. Condição: Se atingir uma zona entre as linhas, comprar e não vender, se atingir outra zona, não comprar e vender. Eu regulamento este processo com linhas horizontais.

Antes disso, peço os preços das linhas expostas. E depois disso, um bloco de ordens de colocação ou fechamento - dependendo da bandeira.

O código é trivialmente simples. Mas... - Pergunta...

Quando este projeto começa a funcionar, os valores de compra e venda se revelam imprevisíveis (caóticos). Porque existem condições claras para a função "se" e operadores "se" e "se" e "se" de "excesso/sobre".

Ou seja, o programa se comporta de acordo com suas próprias razões: ou compra, vende ou não faz nada, independentemente do que está escrito nos valores das variáveis.

Como e o que eu preciso escrever para que as condições funcionem e, mais importante ainda, para que funcionem? O que estou fazendo de errado e o que não estou levando em conta? (Acho que mencionei tudo o que preciso nas condições de função).

Há também outra questão neste tópico: quando as variáveis mudam dependendo das condições, seus valores nas configurações do Expert Advisor (ao acessá-las via F7) serão os mesmos que foram definidos pelo usuário. É por isso que é impossível ver o estado atual dessas variáveis. Como fazer para que eu possa ver quais são seus valores no momento?

Comece agrupando as condições:

    extern bool    Покупать  = false;
    extern bool    Продавать = false; 

    if (pl > Ask) {if (Ask > psb || Ask > ps) Продавать = true;}
    else {if (pl < Bid) if (Bid < pcs || Bid < pb) Покупать = true;}
Talvez desta forma seja mais fácil de entender! (Eu não entrei no significado do próprio código).
 

À primeira vista, provavelmente se trata das variáveis, não das condições. Eu começaria por emitir as variáveis com alertas, como o próprio código parece NORMAL!!!

Alerta(" pcb " , pcb ); Alerta(" pl " , pl ); Alerta(" pb " , pb );

 

como mudar o formato dos dados ao escrever em um arquivo?

ele escreve em fontes ilegíveis :(

 
TarasBY:

Substituir:

Para:

E porque a ordem de venda abre (na sua variante) (com base no que eu disse anteriormente) encontre a resposta MYSELF!!!


Acontece que não há necessidade de chamar parâmetros a partir do indicador. Tudo pode ser registrado diretamente no Expert Advisor.

Vou analisar meu erro.

Eu reescrevi meu indicador com iLowest e iHighest funções, este código está correto ou pode ser truncado?

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

extern int Quant_Bars = 5; //количество баров

//--- buffers
double Line_1[];     //объявление массивов под..
double Line_2[];     //..буферы индикаторов

int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(0,Line_1);                    //назнач. массива буферу
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(1,Line_2);                    //назнач. массива буферу
//----
   return(0);                                      
  }

int start()
  {                        
   double Minimum;
   double Maximum;
   int k;
   
   Maximum= High[iHighest(NULL,0,MODE_HIGH,Quant_Bars,1)];
   Minimum= Low[iLowest(NULL,0,MODE_LOW,Quant_Bars,1)];
   
   for(k=1; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }
    return(0);
    }
               
 
Agora... Meu irmão está aqui, o mais velho... Os parênteses provavelmente estão apenas entupidos. Agora
 
Dimka-novitsek:

À primeira vista, provavelmente se trata das variáveis, não das condições. Eu começaria por emitir as variáveis com alertas, como o próprio código parece NORMAL!!!

Alerta(" pcb " , pcb ); Alerta(" pl " , pl ); Alerta(" pb " , pb );


Já o fiz - todas as variáveis estão corretas: tanto os preços quanto os parâmetros estão definidos.
 
TarasBY:

Comece agrupando as condições:

Talvez desta forma seja mais fácil de entender! (Eu não entrei no significado do próprio código).


Se você colocar dessa forma, será uma questão diferente - se estiver abaixo da linha, então... E eu preciso quando ela cai entre linhas específicas - na área dessas linhas.

 
Pacman:


Acontece que não há necessidade de chamar parâmetros a partir do indicador. Tudo pode ser registrado diretamente na EA.

Terei que descobrir qual é o meu erro.

Eu reescrevi meu indicador com iLowest e iHighest funções, este código está correto ou pode ser truncado?

Assim que você traz o indicador para o EA, ele é uma "grade para o cavalo" quando se trabalha no testador. No seu caso, o indicador NÃO é necessário!!!
 
Chiripaha:

Se você definir dessa forma, será diferente - se estiver abaixo da linha, então... E eu a quero quando ela cair entre linhas específicas - na área dessas linhas.

Desculpe, falhei os parênteses. Corrigido o original.