[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 69

 

Estou aqui sentado e não consigo entender como implementar o algoritmo.

Talvez alguém possa ajudar.

1. encontrar o início do dia (eu fiz isso)

2. Encontre o máximo do dia (eu fiz isso)

3. Eu preciso descobrir as barras que seguiriam o primeiro fractal após a passagem do MA de cima para baixo após esse máximo.


Estou anexando a figura.


 
komposter >> :

Ao invés de iRSI, deveria ser iCCI.

YEPRST...... está completamente fora de vista..... obrigado, vamos consertá-lo

 
luka >> :

Estou aqui sentado e não consigo entender como implementar o algoritmo.

Talvez alguém possa ajudar.

3. você precisa calcular as barras que seguirão o primeiro fractal após cruzar o MA de cima para baixo após este máximo.

"calcular as barras que se seguirão..."

Escreva simplesmente: "Quero saber para onde vai o preço depois de ligar o computador..." :-)))))

 
mukata >> :

"calcular as barras que se seguirão..."

Escreva simplesmente: "Quero saber para onde vai o preço depois de ligar o computador..." :-)))))


você não entende.

estas barras já estão na tabela. ou digamos que é a barra atual. E se se encaixa nas condições - é a barra que você está procurando.

Isso é o primeiro de tudo.

E, em segundo lugar, por que se preocupar com as besteiras se você não entende do que estamos falando?

 
Skydiver >> :

Você poderia tentar isto

OrderSelect(1, SELECT_BY_POS)

if(OrderOpenTime()!=0)

{

///необходимая операция

}

Mas esta é apenas uma opção se você tiver apenas 1 pedido!

Então nós apenas verificamos se o pedido está pendente?


A idéia é a seguinte: junto com a parada de um pedido, por exemplo, na compra, três pedidos pendentes são definidos

Quero uma condição para que uma destas 3 ordens pendentes se torne uma "ordem de trabalho" normal.

 
luka >> :

você não entende.

Estas barras já estão na tabela. ou digamos que esta é a barra atual. E, se ele satisfaz as condições, é o bar que você está procurando.

Isso é o primeiro de tudo.

E, em segundo lugar, por que você está perdendo seu tempo se não entende do que estamos falando?

"Calcule as barras que seguirão o primeiro fractal após o re... "Significa que eles o seguirão, não que "já existem na tabela".

Mas se "E se ele satisfaz as condições - é o bar que você está procurando" - isso é outra questão. Descreva as "Condições", alguém vai ajudar.

Peço desculpas pela inundação, ela simplesmente escorregou para fora.



 
mukata >> :

"calcule as barras que seguirão o primeiro fractal após o re... " Se seguirem, significa que seguirão, não se já estiverem "na tabela"...

Mas se "E se ele satisfaz as condições - é o bar que você está procurando" - isso é outra questão. Descreva "Condições", alguém vai ajudar.

Desculpe pela enchente, ela simplesmente escorregou.



Oooh eu o escrevi exatamente assim.

Não vou tentar descobrir o que não sei, não sei onde ou como.

Estou interessado em bares específicos que já existem. E para ser mais exato - seu turno.

A propósito, já a implementei, afinal não é tão difícil :)

 
fima_ >> :

então nós apenas verificamos se o pedido está pendente?


A idéia é a seguinte: quando você pára um pedido, por exemplo, na compra, três pedidos pendentes são definidos

quero uma condição para que uma destas 3 ordens pendentes se torne uma "ordem de trabalho" normal

Então você tem 3 ordens pendentes e se pelo menos 1 tiver acionado, então alguma condição está definida?

se sim, então é assim

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0) ///время не равно 0 значит отложка сработала(или как писал Roger if(OrderType()<2) )
{
///необходимая операция
}
}

ou você tem 1 ordem em aberto + 3 ordens pendentes?

então você pode tentar dessa forma

//в глобальных переменных

int tick[3];

//в функции start

//cначало записываем номера тикетов отложек в переменные

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)

{

tick[cnt]=OrderTicket();

}

}

//а далее проверяем выполнился ли отложенный ордер


for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)

{

for(int cnt2=0;cnt2<3;cnt++)

if(tick[cnt]==OrderTicket())

{

//необходимое условие

}

}

Ou use um Magic específico para todos os pedidos e se houver um pedido em aberto com este Magic, você precisa usá-lo desta forma:

в глоб перем

int mag=12345;

в ф start

/// При открытии отложки укажите ему в качестве магика mag

///ну а далее идет поиск "бывшей" отложки по Magic

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0&&OrderMagic()==Mag)

{

///необходимая операция

}

}

eu não verifiquei o código para possíveis erros!

 
Qual ordem a função OrderSelect(0,SELECT_BY_POS) retorna? Qual delas foi aberta primeiro? As ordens não podem ser trocadas? (não uso ordens pendentes)
 
AndreyK писал(а) >>
Qual ordem a função OrderSelect(0,SELECT_BY_POS) retorna? Qual foi o primeiro a ser aberto? Os pedidos não podem ser trocados? (não uso ordens pendentes)

Certo, qual delas é a mais antiga. Isto é conveniente se você sabe com certeza que, em princípio, só pode ter um pedido aberto e pode evitar o excesso de pedidos. As ordens não são trocadas, mas transferidas para a menor quando a anterior é fechada.

Razão: