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

 
TarasBY:

Alguém pode me dizer qual é o problema?


Até que tenhamos o próprio indicador, ninguém nos dirá.
 
Vinin:


Isso é possível. Se, é claro, a corretora a apoiar.

Apenas tenha em mente que no testador você pode abrir posições no instrumento atual, e há algumas restrições sobre outros instrumentos


Esta série de restrições se aplica ao comércio on-line? Caso contrário, é triste. O código não abre nada:

int magic = 428;//магический номер эксперта
extern double volume = 0.1;//объем выставляемого ордера
extern int slippage = 3;//проскальзывание
int OPB;//метка выставляемого ордера на покупку
int OPS;//метка выставляемого ордера на продажу
int Profit=1;//уровень профита открытых ордеров
string comB = "Выставили ордер Buy";//комментарий ордера
string comS = "Выставили ордер Sell";//комментарий ордера
double StochasticCAD;//положение основной линии Стохастики на текущем баре по USDCAD
double StochasticAUD;//положение основной линии Стохастики на текущем баре по AUDUSD

double SARCAD;//текущее положение индикатора по USDCAD
double SARСCAD;//положение индикатора бар назад по USDCAD
double SARAUD;//текущее положение индикатора по AUDUSD
double SARСAUD;//положение индикатора бар назад по AUDUSD


int start()
  {
  
//______________________________определение значений переменных_______________________ 


      StochasticCAD = iStochastic("USDCAD",30,5,3,3,1,1,0,0); 
      StochasticAUD = iStochastic("AUDUSD",30,5,3,3,1,1,1,0);
      
      SARCAD=iSAR("USDCAD",30,0.02,0.2,0);
      SARСCAD=iSAR("USDCAD",30,0.02,0.2,1);
      SARAUD=iSAR("AUDUSD",30,0.02,0.2,0);
      SARСAUD=iSAR("AUDUSD",30,0.02,0.2,1);
      
      double bidCAD=MarketInfo("USDCAD",MODE_BID);
      double askCAD=MarketInfo("USDCAD",MODE_ASK);
      double bidAUD=MarketInfo("AUDUSD",MODE_BID);
      double askAUD=MarketInfo("AUDUSD",MODE_ASK);


........................


//______________выставление ордеров______________________________________________________________________
    
  
    if (SARCAD>askCAD && SARСCAD<bidCAD && SARAUD<bidAUD && SARСAUD>askAUD && OPB<1)//определим условия
     
     {  //_______Buy_______ 

          if(!IsTradeAllowed())
               {
                  Alert("занят торговый поток, повторим попытку бай...");
                  return(-1);
               }
          OPB =OrderSend("GBPUSD",OP_BUY,volume,Ask,slippage,0,0,comB,magic,0,Red); //выставим ордер
            
            if(OPB == -1)
              {
                 Alert("GBPUSD"," ошибка: бай", GetLastError());
                 return(-1);
              }
         
            if(OPB > 1)
            Alert ("GBPUSD","Выставили ордер на покупку!");

     }
      else
     {//_______Sell_______
  
         if (SARСCAD>askCAD && SARCAD<bidCAD && SARСAUD<bidAUD && SARAUD>askAUD && OPS<1)//определим условия
     
         {
          
           if(!IsTradeAllowed())
                {
                   Alert("занят торговый поток, повторим попытку селл...");
                   return(-1);
                }
        
           OPS=OrderSend("GBPUSD",OP_SELL,volume,Bid,slippage,0,0,comS,magic,0,Blue); //выставим ордер


             if(OPS == -1)
               {
                  Alert("GBPUSD"," ошибка: селл", GetLastError());
                  return(-1);
               }
         
             if(OPS > 1)
             Alert ("GBPUSD","Выставили ордер на продажу!");

         }
     }    
   return(0);//выход
  }
 
mInvIn:

Olá a todos.

Você pode me dizer por favor: após testar a história, há alguma maneira de obter o comentário ou o número mágico de cada comércio feito, ou qualquer outra maneira de identificar os ofícios? Deixe-me tentar explicar o significado. Suponha que eu tenha programado alguns padrões e executado a EA na história, o resultado, como muitas vezes acontece, é a perda. Seria interessante ver, qual dos padrões e sob quais condições de mercado está perdendo cada vez mais, e qual (se houver) mostra pelo menos algum lucro.

Agradecemos antecipadamente as respostas.

Simplifique as coisas. Defina o número do padrão como um parâmetro externo. O Conselheiro Especialista deve abrir posições somente por este padrão. E se você especificar zero, por exemplo, ele se abre por qualquer padrão. Você executa a otimização por todos os padrões. Você obtém a imagem resumida e a decomposição do padrão.
 
Uma função "Nova Ordem" como "Nova Barra" é necessária. A função deve ter valor VERDADEIRO apenas por um tick após o momento em que o pedido foi aberto. Isto é, no momento em que o número de pedidos abertos muda para cima. Por favor, me ajude
 
Techno:
há uma anulação de ordens históricas?
Não, apenas ordens de mercado e pendentes.
 
IgorM:


existe esse problema - eu também tive esse problema, se o Expert Advisor fizer muitas negociações por ano - talvez muitos dados sejam armazenados para a saída do resultado final ou talvez os tampões indicadores comam a memória

eu tenho visto - não sei, paciência - para um quadro geral, o teste é para 10 anos, e é melhor otimizar por um ano e depois fazer uma seleção dos melhores parâmetros

Obrigado Igor! Intuitivamente, estou fazendo isso. Pensou que também poderia ser possível por um período mais longo não perder velocidade ?
 

Gurus, por favor, aconselhe-me, eu já estou com os miolos em franja, sinto que deve ser fácil, já tentei de ambas as maneiras... Eu não posso...

A essência do problema:

Estou escrevendo um indicador, ele captura pontos nos amortecedores, no total devem ser 4, 2 montados normalmente, os valores como devem ser por barras, seja zero ou, preço, aqui tudo está bem, mas precisamos de mais 2 amortecedores para colocar os valores desta forma: se for encontrado um valor diferente de zero no amortecedor 0, então verifique se o valor anterior diferente de zero no amortecedor 0, e se for menor, então o valor atual é escrito no amortecedor 2. Quero que seja calculado na mosca, não através de buscas e looping, é meu primeiro indicador, escrevi Expert Advisors e scripts, mas perdi meu caminho com o indicador e seus buffers...

...................

Counted_bars=IndicatorCounted(); // Número de barras calculadas

i=Bars-Counted_bars-1; // Índice do primeiro não contado

while(i>1) // Loop em barras não contadas

{

se (..............) // tudo funciona aqui

{

Buf_0[i]=Alto[i];

{ aqui queremos calcular Buf_2[i] }

}

se (..............) //tudo funciona aqui também

{

Buf_1[i]=Low[i];

{mas aqui queremos calcular Buf_3[i] }

}

i--;

//calcule o índice da próxima barra

}

//--------------------------------------------------------------------

retorno; // Sair da função especial início()

}

//--------------------------------------------------------------------

 
O que acontece com mais freqüência - comprar ou vender? Significado global.
 
ChachaGames:

Gurus, por favor, aconselhe-me, eu já estou com os miolos em franja, acho que deve ser fácil, já tentei de ambas as maneiras... Eu não posso...

A essência do problema:

Estou escrevendo um indicador, ele captura pontos nos amortecedores, no total devem ser 4, 2 montados normalmente, os valores como devem ser por barras, seja zero ou, preço, aqui tudo está bem, mas precisamos de mais 2 amortecedores para colocar os valores desta forma: se for encontrado um valor diferente de zero no amortecedor 0, então verifique se o valor anterior diferente de zero no amortecedor 0, e se for menor, então o valor atual é escrito no amortecedor 2. Quero que seja calculado na mosca, não através de buscas e looping, é meu primeiro indicador, escrevi Expert Advisors e scripts, mas perdi meu caminho com o indicador e seus buffers...

...................

Counted_bars=IndicatorCounted(); // Número de barras calculadas

i=Bars-Counted_bars-1; // Índice do primeiro não contado

while(i>1) // Loop em barras não contadas

{

se (..............) // tudo funciona aqui

{

Buf_0[i]=Alto[i];

{ aqui queremos calcular Buf_2[i] }

}

se (..............) //tudo funciona aqui também

{

Buf_1[i]=Low[i];

{mas aqui queremos calcular Buf_3[i] }

}

i--;

//calcule o índice da próxima barra

}

//--------------------------------------------------------------------

retorno; // Sair da função especial início()

}

//--------------------------------------------------------------------

Grosso modo, como posso descobrir o índice do valor anterior não zero no buffer?
 
_SS_:
O que acontece com mais freqüência - comprar ou vender? Significado global.
Exatamente na metade para cada venda há um comprador diferente :)
Razão: