Eu não preciso de frações de segundo. Preciso pegar o primeiro segundo de um novo bar
como este
datetime NB_M1;
intOnInit()
{
}
voidOnTick()
{
if (CIsNewBar(_Symbol,PERIOD_M1)) // (1) Если появился новый бар M1
{NB_M1=TimeCurrent();}
......
}
e para salvar o valor anterior
datetime NB_01_M1, NB_02_M1;
intOnInit()
{
}
voidOnTick()
{
if (CIsNewBar(_Symbol,PERIOD_M1)) // (1) Если появился новый бар M1
{NB_02_M1=NB_01_M1; NB_01_M1=TimeCurrent();}
......
}
AMarkov: Isso parece ser o que você precisa. Muito obrigado!!!!
Esta não é a maneira de fazer isso! É assim que você obtém os preços mínimo e máximo do instrumento, não do oscilador. Um programador experiente tem vergonha de dar tais respostas a perguntas tão elementares...
Na verdade, você precisa obter os dados do oscilador usando o CopyBufer
int s, len;
double main[];
double min, max;
len = (int)ChartGetInteger(0, CHART_VISIBLE_BARS); // длина копируемых видимых значений
s = (int)ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR) - len + 1; // 1-й видимый бар минус длина -- начало копируемых баровif (CopyBuffer(handle, MAIN_LINE, s, len, main) != len)
return;
// handle - хэндэл осциллятора// MAIN_LINE - меняем на нужный индекс буфера осциллятора// получаем мин. и макс. значения
min = main[ArrayMinimum(main, 0, WHOLE_ARRAY)];
max = main[ArrayMaximum(main, 0, WHOLE_ARRAY)];
com identificadores CHART_PRICE_MIN e CHART_PRICE_MAX
retorna verdadeiro/falso , de que horas estamos falando?
A classe armazena o tempo do tick anterior e verdadeiro/falso não é devolvido pela classe, mas por uma função de membroda classe:
A classe armazena o tempo do tick anterior, e verdadeiro/falso não é devolvido pela classe, mas por uma função de membroda classe:
No código você afixou a barra apenas para o público!
Dado que a classe informa uma nova barra, o tempo é o iTime (tudo o que você precisa,0),
respectivamente da última vez que o iTime (tudo o que você precisa,1)
Z.U. Talvez você saiba como conseguir o tempo com frações de segundo...
No código que você postou, o publc é apenas bool!
Considerando que a classe reporta uma nova barra, o tempo é o iTime (tudo o que você precisa,0),
respectivamente da última vez que o iTime (tudo o que você precisa,1)
Z.U. Talvez você saiba como obter o tempo em frações de segundo...
Meu erro, desculpe
Eu não preciso de frações de segundo. Preciso pegar o primeiro segundo de um novo bar
Errado um pouco, desculpe
Eu não preciso de frações de segundo. Preciso pegar o primeiro segundo de um novo bar
como este
e para salvar o valor anterior
então é assim
Obrigado, MakarFX, eu vou tentar)
ok, obrigado, vou pensar sobre isso e executá-lo no testador.
por favor me diga mais sobre a função martin em seu código.
onde preciso substituir algo para que martin se espalhe para ordens lucrativas em vez de não lucrativas?
Por favor, me conte mais sobre a função martin em seu código.
Onde devo substituir o quê, para que um martin seja aplicado a encomendas lucrativas em vez de perder as que se perdem?
Destacado...se <0, então o lote de um comércio perdido é aumentado
se >0, então o comércio lucrativo aumenta
Isso parece ser o que você precisa. Muito obrigado!!!!
Esta não é a maneira de fazer isso! É assim que você obtém os preços mínimo e máximo do instrumento, não do oscilador. Um programador experiente tem vergonha de dar tais respostas a perguntas tão elementares...
Na verdade, você precisa obter os dados do oscilador usando o CopyBufer
Como criar um oscilador
Ou qualquer outro oscilador que você precise.
Destacado...se <0, então o lote do comércio perdido é aumentado
se >0 então o lote do comércio lucrativo é aumentado
Muito obrigado