[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 40

 
Direi como um codificador que escreve principalmente a pedido: algumas dezenas de linhas de código "extras" (quando você entende o que escreveu lá e está confiante nisso), nunca é redundante, pelo menos em termos de confiabilidade do sistema como um todo, e respectivamente um número menor de retornos e problemas na comunicação com o cliente.
 
FAQ:
Vou dizer como um codificador, em sua maioria feito sob medida: Algumas dezenas de linhas "extras" de código (quando você entende o que escreveu lá e está confiante nisso) nunca é redundante, pelo menos em termos de confiabilidade do sistema como um todo, e conseqüentemente menos chamadas de retorno e problemas em lidar com o cliente.

Estou vendo. Obrigado. Eu já fiz as mudanças.

Mas, mesmo assim, foi interessante para mim que a abertura também pode ser feita com um volume "descuidado"... não exatamente como deveria ser, mas o fato é que...

 
sergeev:

O FAQ diz o que é certo. Você não pode confiar em "inadimplências". Porque eu me lembro que 131 erros (lote errado) muitas vezes surgiram, se você não fizer uma normalização antes de enviar um pedido.
Talvez agora os MMOs tenham feito sua própria verificação de lote padrão nos servidores ao enviar uma ordem para execução.

Portanto, você deve sempre fazer sua própria normalização de preço e lote antes de enviar.

Estas são as regras de boa codificação para você, e a promessa de menos aborrecimentos com problemas potenciais no futuro.

Entendido, obrigado.

"Já que me lembro que 131 erros (lote errado) muitas vezes apareciam se eu não fizesse nenhuma normalização antes de enviar o pedido" - esse não é o caso agora.

Eu mesmo me certifiquei disso acidentalmente quando "esqueci" de ativar o recurso de normalização do lote.

 
Roman.:

Estou vendo. Obrigado. Eu já fiz as mudanças.

Mas ainda era interessante para mim que é possível abrir com um volume "descuidado". não exatamente como deveria ser, mas o fato é que...


Antes da introdução dos cinco dígitos, ninguém fez a questão da normalização - tudo funcionava como estava.
 
Boa tarde a todos!
A questão é a seguinte, a primeira vez que o indicador é iniciado ele é exibido
por alfabra-cadabra (pic.1). Depois de mais rolagem na história, tudo é normal (fig.2).

Você pode me dizer qual é o problema? Abaixo, se você precisar do código.

#property indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Tomato
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property indicator_level1 0
#property indicator_levelcolor Gray
#property indicator_levelstyle 2

extern int Period_MA = 5;
extern int MA_Line1 = 13;
extern int MA_Line2 = 34;
 
double Brs[],BrsMA1[],BrsMA2[],MathArr[],MathArr1;
int i=0,j=0;
double hvostUp,hvostDn,rast,S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,Brs);
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(1,BrsMA1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,BrsMA2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexLabel(0,"Bars_");
   SetIndexLabel(1,"Bars_MA1");
   SetIndexLabel(2,"Bars_MA2");
     
   ArrayResize(MathArr,Period_MA);
   
 //---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Bars_MA");

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start() {  

int ncount=IndicatorCounted();
int limit=Bars-ncount-1;

for (int i=0; i<limit; i++)
{

if (High[i+2]>High[i+1] && Low[i+2]>Low[i+1])
{
hvostUp=(High[i+2]-High[i+1])/Point;
hvostDn=(Low[i+2]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+1])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]<High[i+1] && Low[i+2]<Low[i+1])
{
hvostUp=(MathAbs(High[i+2]-High[i+1]))/Point;
hvostDn=(MathAbs(Low[i+2]-Low[i+1]))/Point;
rast=(High[i+1]-Low[i+2])/Point;
S=rast-hvostUp-hvostDn;
}

if (High[i+2]>=High[i+1] && Low[i+2]<=Low[i+1])
{
S=(High[i+1]-Low[i+1])/Point;
rast=(High[i+2]-Low[i+2])/Point;
}

if (High[i+2]<=High[i+1] && Low[i+2]>=Low[i+1])
{
S=(High[i+2]-Low[i+2])/Point;
rast=(High[i+1]-Low[i+1])/Point;
}

if (High[i+2]<=Low[i+1] || Low[i+2]>=High[i+1])
{
S=0;
rast=1;
}

if(j>=Period_MA-1)j=0;
j++;
 MathArr[j]=(S/rast*100);
 
Brs[i]=iMAOnArray(MathArr,0,Period_MA,0,0,0);
BrsMA1[i]=iMAOnArray(Brs,0,MA_Line1,0,0,0);
BrsMA2[i]=iMAOnArray(Brs,0,MA_Line2,0,0,0);
}   
  return(0);
}

Fig.1

Fig. 2

Arquivos anexados:
bars_ma_1.mq4  4 kb
 
Seria bom automatizar este processo, ou seja, fazer este trabalho de antemão em vez de esperar pelo lucro para acionar. olhei todos os scripts postados, encontrei um semelhante, mas eles dizem que não funciona. É para maior clareza. Ou vamos fazer uma função que quando um TP ou SL aciona, o script abre todas as ordens fechadas, apenas em uma forma pendente. Muitos comerciantes sabem o que vão fazer em uma determinada situação e é muito conveniente fazer isso antes que a situação aconteça.
 
sting-igor:
Seria bom automatizar este processo, ou seja, fazer este trabalho de antemão em vez de esperar pelo lucro para acionar. olhei todos os scripts postados, encontrei um semelhante, mas eles dizem que não funciona. É para maior clareza. Ou vamos fazer uma função que quando um TP ou SL aciona, o script abre todas as ordens fechadas, apenas em uma forma pendente. Muitos comerciantes sabem o que vão fazer em uma determinada situação e é muito conveniente fazer isso antes que a situação aconteça.

Você está no lugar certo :Trabalho
 
Fox_RM:
Boa tarde a todos!
A pergunta é a seguinte, a primeira vez que o indicador é iniciado ele é exibido
por alfabra-cadabra (pic.1). Depois de mais rolagem na história, tudo é normal (fig.2).

Você pode me dizer qual é o problema? Abaixo, se você precisar do código.

Fig.1

Fig. 2


Sinto muito que a pergunta tenha sido feita uma segunda vez.

Compare sua variante com esta

Ainda não funciona corretamente, mas é melhor

Editou o indicador novamente

Arquivos anexados:
 
FAQ:

Você vai por aqui:Trabalhe
Ninguém tem um?
 
sting-igor:
Ninguém tem um?


Base de código de escavação

Se você não conseguir encontrar um, então peça um.