Tentando preparar dados para o treinamento de uma rede neural. A tarefa é.
Ter uma matriz, onde por exemplo cada linha (momento de tempo - barra) é um vetor de entrada, e colunas por exemplo 10000. O que fazer se houver dados dinâmicos (número de linhas1, linhas2), e mudança no número em diferentes pontos no tempo.
Por exemplo, uma matriz é carregada em uma rede, cada fila é um vetor de aprendizagem, mas para cada fila, há n número n de filas mudando dinamicamente no tempo.
Uma possível conjectura de solução é adicionar colunas adicionais à matriz igual ao número de colunas na fila dinâmica, acontece que cada vetor terá colunas da denâmica, mas como se fosse de uma fila, apenas prosumed.
Tentando preparar dados para o treinamento de uma rede neural. A tarefa é.
Ter uma matriz, onde por exemplo cada linha (momento de tempo - barra) é um vetor de entrada, e colunas por exemplo 10000. O que fazer se houver dados dinâmicos (número de linhas1, linhas2), e mudança no número em diferentes pontos no tempo.
Por exemplo, uma matriz é carregada em uma rede, cada fila é um vetor de aprendizagem, mas para cada fila, há n número n de filas mudando dinamicamente no tempo.
Uma possível conjectura de solução é adicionar colunas adicionais à matriz igual ao número de colunas na fila dinâmica, acontece que cada vetor terá colunas da denâmica, mas como se fosse de uma fila, apenas prosumed.
Boa tarde. Eu criei um EA, ele funciona bem, mas se eu desligar o terminal com o EA funcionando e voltar a ligar o terminal, o EA começa a contar tudo de novo. Portanto, tenho uma pergunta a fazer. O que eu preciso escrever no meu EA, para que ele reinicialize os parâmetros de entrada na inicialização?
XFaost: Boa tarde. Eu criei um EA, ele funciona bem, mas se eu desligar o terminal com o EA funcionando e voltar a ligar o terminal, o EA começa a contar tudo de novo. Portanto, tenho uma pergunta a fazer. O que eu preciso prescrever no EA, para que ele reinicialize os parâmetros de entrada quando começar?
Quero que meu consultor especializado não reinicialize os parâmetros de entrada, mas colete informações sobre as ordens que foram abertas antes de serem fechadas.
XFaost: Boa tarde. Eu criei um EA, ele funciona bem, mas se eu desligar o terminal com o EA funcionando e voltar a ligar o terminal, o EA começa a contar tudo de novo. Portanto, tenho uma pergunta a fazer. O que eu preciso escrever no meu EA, para que ele reinicialize os parâmetros de Entrada quando eu o iniciar?
Por favor, descreva a forma como a EA funciona. Talvez você precise usar um princípio diferente. E se você ainda precisar reinicializar, então deve primeiro definir o que se entende por "no início". E em geral, um reset é uma transição para a posição inicial. Anote os ajustes iniciais e os defina no momento certo.
A EA faz pedidos com paradas acima e abaixo do preço. Se um deles aciona, a parada é ajustada se o preço se afastar da parada mais do que o estabelecido, se o preço se mover para a parada então nenhuma mudança.
No início eu escrevi apenas Buy order e funcionou como esperado. Se eu adicionar uma imagem de espelho para venda, as paradas serão corrigidas pelo valor estabelecido, seja qual for o movimento do preço.
Em geral, se separadamente, ou para comprar ou vender - tudo funciona como deveria, mas as duas partes juntas - há um bug.
A EA faz pedidos com paradas acima e abaixo do preço. Se um deles aciona, a parada é ajustada se o preço se afastar da parada mais do que o estabelecido, se o preço se mover para a parada então nenhuma mudança.
No início eu escrevi apenas Buy order e funcionou como esperado. Se eu adicionar uma imagem de espelho para venda, as paradas serão corrigidas pelo valor estabelecido, seja qual for o movimento do preço.
Geralmente, se separadamente, ou para comprar ou vender, tudo está funcionando como deveria, mas as duas partes juntas - há um bug.
...
O código inteiro que você nos mostrou é um bug, não é? Pelo menos, a função OnTick é quase inteiramente um bug...
Quando há ambas as partes do código, tanto para compra quanto para venda, então, após o acionamento da ordem pendente, sua parada é corrigida em qualquer direção de preço por algum motivo. E quando há apenas uma parte de Compra ou Venda do código, a parada é corrigida como pretendido, apenas quando o preço se afasta dele.
Boa tarde, senhores!)
Tentando preparar dados para o treinamento de uma rede neural. A tarefa é.
Ter uma matriz, onde por exemplo cada linha (momento de tempo - barra) é um vetor de entrada, e colunas por exemplo 10000. O que fazer se houver dados dinâmicos (número de linhas1, linhas2), e mudança no número em diferentes pontos no tempo.
Por exemplo, uma matriz é carregada em uma rede, cada fila é um vetor de aprendizagem, mas para cada fila, há n número n de filas mudando dinamicamente no tempo.
Uma possível conjectura de solução é adicionar colunas adicionais à matriz igual ao número de colunas na fila dinâmica, acontece que cada vetor terá colunas da denâmica, mas como se fosse de uma fila, apenas prosumed.
por exemplo
1º vetor
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linha1 dinâmica" 1 1 1 1 1 1
ssssssssssssssssssssssssssssssss "linha2 dinâmica" 1 1 1 1
solução
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linha1 dinâmica" 2 2 2 2 2 2
Boa tarde, senhores!)
Tentando preparar dados para o treinamento de uma rede neural. A tarefa é.
Ter uma matriz, onde por exemplo cada linha (momento de tempo - barra) é um vetor de entrada, e colunas por exemplo 10000. O que fazer se houver dados dinâmicos (número de linhas1, linhas2), e mudança no número em diferentes pontos no tempo.
Por exemplo, uma matriz é carregada em uma rede, cada fila é um vetor de aprendizagem, mas para cada fila, há n número n de filas mudando dinamicamente no tempo.
Uma possível conjectura de solução é adicionar colunas adicionais à matriz igual ao número de colunas na fila dinâmica, acontece que cada vetor terá colunas da denâmica, mas como se fosse de uma fila, apenas prosumed.
por exemplo
1º vetor
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linha1 dinâmica" 1 1 1 1 1 1
ssssssssssssssssssssssssssssssss "linha2 dinâmica" 1 1 1 1 1
solução
1.365 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 ... "linha1 dinâmica" 2 2 2 2 2 2
https://www.mql5.com/ru/articles/159
Portanto, há a MQL5, como eu a entendo. Ou é idêntico?
Boa tarde. Eu criei um EA, ele funciona bem, mas se eu desligar o terminal com o EA funcionando e voltar a ligar o terminal, o EA começa a contar tudo de novo. Portanto, tenho uma pergunta a fazer. O que eu preciso prescrever no EA, para que ele reinicialize os parâmetros de entrada quando começar?
Boa tarde. Eu criei um EA, ele funciona bem, mas se eu desligar o terminal com o EA funcionando e voltar a ligar o terminal, o EA começa a contar tudo de novo. Portanto, tenho uma pergunta a fazer. O que eu preciso escrever no meu EA, para que ele reinicialize os parâmetros de Entrada quando eu o iniciar?
Saudações. Você pode me dizer o que está errado?
A EA faz pedidos com paradas acima e abaixo do preço. Se um deles aciona, a parada é ajustada se o preço se afastar da parada mais do que o estabelecido, se o preço se mover para a parada então nenhuma mudança.
No início eu escrevi apenas Buy order e funcionou como esperado. Se eu adicionar uma imagem de espelho para venda, as paradas serão corrigidas pelo valor estabelecido, seja qual for o movimento do preço.
Em geral, se separadamente, ou para comprar ou vender - tudo funciona como deveria, mas as duas partes juntas - há um bug.
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double Lot = 0.01;
extern int StopLoss = 50;
extern int Slippage = 5;
extern int Delta = 60;
extern int Delta2 = 170;
extern int Magic = 321;
int ticket;
double price, sl, sl2;
datetime counted_bar = 0;
int OnInit()
{
if (Digits == 3 || Digits == 5)
{
StopLoss *= 10;
Delta *= 10;
Delta2 *= 10;
}
return(INIT_SUCCEEDED);
}
void OnTick() {
////// ПРОДАЖА ///////////////////////////////////////////////////////
if (SellLimitCount()==0 && SellCount()==0)
{
price = NormalizeDouble(Bid - Delta*Point, Digits);
sl = NormalizeDouble(price + StopLoss*Point, Digits);
ticket = OrderSend (Symbol(), OP_SELLSTOP, Lot, price, Slippage, sl, 0, "", Magic, 0, Red);
}
if (SellCount()!=0)
{
if (Bid < (OrderStopLoss() - NormalizeDouble (StopLoss*Point, Digits)))
{
sl = NormalizeDouble (Bid + StopLoss*Point, Digits);
if (OrderModify(ticket, price, sl, 0, 0, Red)) Print ("Sell_Order_Modify_Ok");
else Print ("ERROR_Sell_Order_Modify");
}
}
if (SellLimitCount()!=0)
{
if(Bid > (OrderOpenPrice() + NormalizeDouble (Delta2*Point, Digits)))
{
if (OrderDelete(ticket, Red)) Print ("BuyLimit_Order_Delete_Ok");
else Print ("ERROR_BuyLimit_Odrer_Delete");
}
}
/////////////////////////////////////////////////////////////////////////////////
/////// ПОКУПКА ////////////////////////////////////////////////////////
if (BuyLimitCount()==0 && BuyCount()==0)
{
price = NormalizeDouble(Ask + Delta*Point, Digits);
sl = NormalizeDouble(price - StopLoss*Point, Digits);
ticket = OrderSend (Symbol(), OP_BUYSTOP, Lot, price, Slippage, sl, 0, "", Magic, 0, Blue);
}
if (BuyCount()!=0)
{
if (Ask > (OrderStopLoss() + NormalizeDouble (StopLoss*Point, Digits)))
{
sl = NormalizeDouble (Ask - StopLoss*Point, Digits);
if (OrderModify(ticket, price, sl, 0, 0, Blue)) Print ("Buy_Order_Modify_Ok");
else Print ("ERROR_Buy_Order_Modify");
}
}
if (BuyLimitCount()!=0)
{
if(Ask < (OrderOpenPrice() - NormalizeDouble (Delta2*Point, Digits)))
{
if (OrderDelete(ticket, Blue)) Print ("BuyLimit_Order_Delete_Ok");
else Print ("ERROR_BuyLimit_Orde_Delete");
}
}
///////////////////////////////////////////////////////////////////////////////
}
//+------------------------------------------------------------------+
int BuyLimitCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_BUYSTOP)
count++;}}}return(count);}
int BuyCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_BUY)
count++;}}}return(count);}
int SellLimitCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_SELLSTOP)
count++;}}}return(count);}
int SellCount(){
int count=0;
for(int i=OrdersTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true){
if(OrderMagicNumber()==Magic){
if(OrderType()==OP_SELL)
count++;}}}return(count);}
Saudações. Você pode me dizer o que está errado?
A EA faz pedidos com paradas acima e abaixo do preço. Se um deles aciona, a parada é ajustada se o preço se afastar da parada mais do que o estabelecido, se o preço se mover para a parada então nenhuma mudança.
No início eu escrevi apenas Buy order e funcionou como esperado. Se eu adicionar uma imagem de espelho para venda, as paradas serão corrigidas pelo valor estabelecido, seja qual for o movimento do preço.
Geralmente, se separadamente, ou para comprar ou vender, tudo está funcionando como deveria, mas as duas partes juntas - há um bug.
O código inteiro que você nos mostrou é um bug, não é? Pelo menos, a função OnTick é quase inteiramente um bug...
Um bug, você quer dizer todo o código mostrado?