Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 90

 
artmedia70:

Ainda não procurei por erros - muito o que fazer.

Para fechar Vender onde está a cruz vermelha, você precisa verificar a barra atual. Se perguntar<= nível fechado && Abrir[0]> nível fechado


Algo não funciona de forma alguma A Sell lida com o código se(Ask<=PriceLow && Open[0]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); não fecha de forma alguma.


Se estiver interessado no tópico para um rápido contato, entre em contato comigo skype alexey1979621

 
alexey1979621:

Algo não funciona OrderClose(OrderTicket(),OrderLots(),Ask,3,White); não fecha se(Ask<==PriceLow && Open[0]>PriceLow); não fecha de forma alguma.


Se estiver interessado no tópico para uma comunicação rápida comigo skype alexey1979621


 if(Ask<=PriceLow && High[1]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
 
artmedia70:


Não funcionou. Talvez esta coisa se (Volume[0]>1) voltar;
 
alexey1979621:

Teste a preços de abertura?

É tudo sobre os carrapatos

 
testes em todos os carrapatos
artmedia70:

Teste a preços de abertura?

É tudo sobre os carrapatos


testes em todos os carrapatos
 
alexey1979621:
teste em todos os carrapatos teste em todos os carrapatos

E onde estava a linha indicadora no momento do fechamento da Venda ?

 
alexey1979621:

Corrigido, fechou o comércio da mesma forma que na foto acima, mas a cruz vermelha deve estar lá.

Eu concordo que o ExtremeTMA está com um desenho a mais, mas acho que isso não afeta a busca por pontos de entrada, o principal aqui são os filtros. Eu usei o indicador TDI. Anexei o que fiz (não tenho boas mãos, é por isso que o Expert Advisor é um bom projeto). Tenho apenas um problema com ele, leva cerca de 5 horas no testador durante 1 ano (cometi um erro em algum lugar). Se não for difícil verificar a existência de erros.

Tente abrir os pedidos da seguinte maneira:

int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
   //----
   if (OrdersTotal()>0)
   {  for (int i=OrdersTotal()-1; i>=0; i--)
      {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         {  if (OrderSymbol()!=Symbol())   continue;
            if (OrderMagicNumber()!=Magic) continue;
            {  if(OrderType()==OP_BUY)  buys++;
               if(OrderType()==OP_SELL) sells++;
            }
   }  }  }
   //---- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }

Chamou-me a atenção que você definiu Magic=124, mas o código imediatamente diz 124. O mesmo com Slippage, OrderSend e OrderClose têm 3 (três).

 
alexey1979621:

Corrigido, fechei o comércio da mesma forma que na foto acima, mas preciso fechar onde está a cruz vermelha.

Eu concordo que o ExtremeTMA está com um desenho a mais, mas acho que isso não afeta a busca por pontos de entrada, o principal aqui são os filtros. Eu usei o indicador TDI. Anexei o que fiz (não tenho boas mãos, é por isso que esta EA deve ser tratada adequadamente). Tenho apenas um problema com ele, leva cerca de 5 horas no testador durante 1 ano (cometi um erro em algum lugar). Se você não se importa de procurar por erros.

É possível que a velocidade da EA esteja caindo por causa do peso dos cálculos do indicador personalizado. Se você quiser verificar a severidade dos cálculos, faça o seguinte roteiro na tabela em que você negocia. Se não houver comentários por muito tempo, então diminua N para 100000 ou até menos. Veja quantos milissegundos são necessários por iteração.

//---
int    N=1000000;
//---
double PriceHigh, PriceLow, TDIHigh, TDILow, RSIPriceLine, TradeSignalLine;
int    timestart, timestop;
//---
string TimeFrame         = "current time frame";
int    HalfLength        = 56;
int    Price             = PRICE_CLOSE;
double ATRMultiplier     = 2.0;
int    ATRPeriod         = 100;
bool   Interpolate       = true;
double TrendThreshold    = 0.5;
bool   Distances         = false;
//---
int RSI_Period           = 13;         //8-25
int RSI_Price            = MODE_CLOSE;           //0-6
int Volatility_Band      = 34;    //20-40
int RSI_Price_Line       = 2;      
int RSI_Price_Type       = MODE_SMA;      //0-3
int Trade_Signal_Line    = 7;   
int Trade_Signal_Type    = MODE_SMA;   //0-3
bool UseAlerts           = false;
//===============================================
int start()
{
   timestart=GetTickCount();
   for (int i=0;i<N;i++) 
   {  
   PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                        ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0);
   PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, 
                       ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0);
   TDIHigh = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                      RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, UseAlerts, 1, 0);
   TDILow = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                     RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 3, 0);
   RSIPriceLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                           RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 4, 0);
   TradeSignalLine = iCustom (Symbol(), 0, "TradersDynamicIndex", RSI_Period, RSI_Price, Volatility_Band, 
                              RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type,UseAlerts, 5, 0);
   }
   timestop=GetTickCount();
   //---
   Comment(" Calculation ",N," times was =  ",timestop-timestart," millisec \n",
           " One iteration was = ",(timestop-timestart)/(N-1)," millisec");
   return(0);
}
//---
Arquivos anexados:
testing_1.zip  4 kb
 
artmedia70:

E onde estava a linha indicadora no fechamento do Sell ?

Tudo está como está na imagem da tela. O canal não teve tempo de redesenhar.
 
paladin80, seu script desligou meu computador duas vezes!