[Arquivo!] ESCREVENDO JUNTO A UM PAÍS!!!

 

Proponho escrever um assessor conjunto. Penso que me ajudará a responder muitas perguntas interessantes (sobre isto depois que o projeto estiver concluído), e, em segundo lugar, talvez façamos um graal juntos:) E finalmente, para os iniciantes (o que penso que sou em termos de programação) será interessante aprender como construir MTS passo a passo. Tomei a estratégia mais simples como base... Basta abrir no início do dia anterior com um TP fixo e parar no dia anterior com um TP fixo e parar no dia anterior com um TP fixo. Por que exatamente? Sim, porque primeiro, este sistema não utiliza nenhum indicador, e segundo, o fator de ocupação do ano 2000 até agora é de 1,00 +/-0,03 (dependendo dos dados históricos porque pode ser diferente), ou seja, é 50/50 e, finalmente, acho que a quebra da Alta/Baixa do dia anterior é psicologicamente importante para o mercado. Sugiro encontrar outros níveis-chave ou usar índices auxiliares ou algo mais, mas o principal é conseguir um Expert Advisor mais lucrativo do que o apresentado abaixo. Este é um gráfico de 01.01.2009 até a data, você pode obter um relatório mais detalhado por si mesmo. A idéia principal é que outros instrumentos devem apenas ajudar o sistema, e não construir sobre eles. Ou seja, tomamos como base um sistema de trabalho e tentamos atualizá-lo (melhorá-lo). Aqui está o que eu tenho...

Este TS é absolutamente "nu", mas tem potencial...

Não recomendo seu uso para iniciantes... Durante os próximos 5 anos ele irá drenar ;)

Portanto, o campo não é arado...

Aqui está o código

//+-----------------------------------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900; 
  extern double Lot        = 1;    
  extern string SYMBOL     = "EURUSD";
  
  // Глобальные переменные
  int LastTradeTime = 0;      // Время последней открытой сделки
  
  // Поехали... :)
  int start() 
  {  
     int Ticket;
  double BID,
         ASK,
         SL=0,
         TP=0;                                  
    bool Trade     = true,
         Open_Bay  = false,
         Open_Sell = false;

  // Проверяем можно ли торговать
  if ( Trade==true) 
   {
   
  // Критерии открытия позиций
    if (Bid > iHigh ( SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (Bid < iLow ( SYMBOL,PERIOD_D1,1)) Open_Sell = true;
        
  // Открытие позиций
      if ( Open_Bay == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                           
        {      
         RefreshRates(); 
         Alert("111111111111");
          ASK = MarketInfo( SYMBOL,10);                                
          SL = iLow( SYMBOL,PERIOD_D1,0);
          TP = ASK + TakeProfit*Point;
          if (( ASK- SL)/Point<MarketInfo( SYMBOL,14)) return;  // проверяем минимальный уровень стопов
          Alert("Пробуем открыть Buy ", SYMBOL, " по ", ASK, SL, TP);         
          Ticket=OrderSend( SYMBOL,OP_BUY, Lot, ASK,20, SL, TP);         
           if ( Ticket > 0)                                                  
            {            
             Alert ("Открыт ордер Buy ", Ticket);
             LastTradeTime=TimeDay(TimeCurrent()); // задаем время сделки, чтобы сегодня больше не торговать 
             return;                                                       
            }         
        }
     if ( Open_Sell == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                             
        {      
         RefreshRates();                                             
          BID = MarketInfo( SYMBOL,9);
          SL = iHigh ( SYMBOL,PERIOD_D1,0);
          TP = BID - TakeProfit*Point;
          if (( SL- ASK)/Point<MarketInfo( SYMBOL,14)) return; // проверяем минимальный уровень стопов
          Ticket = OrderSend( SYMBOL,OP_SELL, Lot, BID,20, SL, TP);         
           if ( Ticket > 0)                                                  
             { 
              Alert ("Открыт ордер Sell ", Ticket);
              LastTradeTime=TimeDay(TimeCurrent());  // задаем время сделки, чтобы сегодня больше не торговать
              return;                                   
             }         
          return;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return;       
  }



Eu não sou um profissional... Eu sou um "amador", para que seja mais fácil trabalhar com ele. Ou em geral... um novo esquema. O principal é que a condição







    if (Bid > iHigh ( SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (Bid < iLow ( SYMBOL,PERIOD_D1,1)) Open_Sell = true;

nesta fase é mantida.

Obrigado a todos que responderam.

Arquivos anexados:
 

A EA é otimizada em todos os aspectos e por quanto tempo os parâmetros otimizados se sustentam?

 
ivandurak >> :

A EA é otimizada em todas as áreas, e quanto tempo duram os parâmetros otimizados?

Que tipo de otimização?

>> Aqui (nesta fase) você só pode otimizar o TP, claro que você pode executar o lote, mas não há nenhum ponto

 

Sim, o campo não é apenas inculto aqui, é terra virgem para onde quer que você olhe, benção que você pode ajustar os níveis como você gosta tanto em alto-baixo como em todos os tipos de Camarillas e Murrays. Quanto ao alto-baixo, eu já o construí - posso dizer imediatamente que não é um graal, porque um sistema decente produz grandes drawdowns. Eles não parecerão tão grandes se ocuparem posições comparáveis a eles. No entanto, para a quebra de um dia não se pode ocupar uma posição longa - simplesmente não vai funcionar ou vai funcionar em 6 meses.

Portanto, aconselho o uso de sistemas de fuga baseados em faixas estreitas onde a tomada é maior do que a faixa de fuga. O exemplo mais marcante é uma fuga de um apartamento matinal. É absolutamente correto neste sentido.

Se quisermos usar bancos de dia, não podemos prescindir de pontos de referência adicionais sob a forma de níveis adicionais, ferramentas e pandeiro de xamã.

 
sayfuji >> :

Sim, o campo não é apenas inculto aqui, é terra virgem para onde quer que você olhe, abençoando que você pode ajustar os níveis como quiser com alto-baixo e todos os tipos de Camarillas e Murrays. Quanto ao alto-baixo, eu já o construí - posso dizer imediatamente que não é um graal, porque um sistema decente produz grandes drawdowns. Eles não parecerão tão grandes se ocuparem posições comparáveis a eles. No entanto, para a quebra de um dia não se pode ocupar uma posição longa - simplesmente não vai funcionar ou vai funcionar em 6 meses.

Portanto, aconselho o uso de sistemas de fuga baseados em faixas estreitas onde a tomada é maior do que a faixa de fuga. O exemplo mais marcante é uma fuga de um apartamento matinal. É absolutamente correto neste sentido.

Se temos que dançar sobre daybanks, não podemos prescindir de pontos de referência adicionais na forma de níveis adicionais, ferramentas e pandeiro do xamã.

Substituir no Consultor Especialista

RERIOD_D1 a RERIOD_H4, talvez o resultado seja melhor.

Para ser honesto, eu não tentei nada com este MTS... Só o fiz por interesse...

Como disse no tópico anterior, no fórum do famoso "A" DC, os fórums escreveram juntos um especialista durante um ano...

Vamos pensar em algo também... Temos mais potencial de programação...

 
RomanS писал(а) >>

Que tipo de otimização?

Aqui (nesta fase) apenas o T.Pro pode ser otimizado, é claro que você também pode executar o lote, mas não há nenhum ponto

Estou me referindo ao comércio virtual. Os melhores parâmetros são escolhidos para uma negociação real. Se escrevermos dois EAs em um código, um trabalha em uma quebra e o outro em um ressalto, aquele que negocia melhor.

 

Agora eu já posso ver os erros em nosso MTS

Eu queria que funcionasse para todos os pares de moedas, mas funcionava apenas para EURUSD

Vou corrigi-lo agora...

-----------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900; 
  extern double Lot        = 1;    
  extern string SYMBOL     = "EURUSD";
  
  // Глобальные переменные
  int LastTradeTime = 0;      // Время последней открытой сделки
  
  // Поехали... :)
  int start() 
  {  
     int Ticket;
  double BID,
         ASK,
         SL=0,
         TP=0;                                  
    bool Trade     = true,
         Open_Bay  = false,
         Open_Sell = false;

  // Проверяем можно ли торговать
  if ( Trade==true) 
   {
   
   ASK = MarketInfo( SYMBOL,10);
   BID = MarketInfo( SYMBOL,9);
  
  // Критерии открытия позиций
    if ( BID > iHigh ( SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if ( BID < iLow ( SYMBOL,PERIOD_D1,1)) Open_Sell = true;
        
  // Открытие позиций
      if ( Open_Bay == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                           
        {      
         RefreshRates(); 
          SL = iLow( SYMBOL,PERIOD_D1,0);
          TP = ASK + TakeProfit*Point;
          if (( ASK- SL)/Point<MarketInfo( SYMBOL,14)) return;  // проверяем минимальный уровень стопов
          Alert("Пробуем открыть Buy ", SYMBOL, " по ", ASK, SL, TP);         
          Ticket=OrderSend( SYMBOL,OP_BUY, Lot, ASK,20, SL, TP);         
           if ( Ticket > 0)                                                  
            {            
             Alert ("Открыт ордер Buy ", Ticket);
             LastTradeTime=TimeDay(TimeCurrent()); // задаем время сделки, чтобы сегодня больше не торговать 
             return;                                                       
            }         
        }
     if ( Open_Sell == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!= LastTradeTime)                                             
        {      
         RefreshRates();                                             
          SL = iHigh ( SYMBOL,PERIOD_D1,0);
          TP = BID - TakeProfit*Point;
          if (( SL- ASK)/Point<MarketInfo( SYMBOL,14)) return; // проверяем минимальный уровень стопов
          Ticket = OrderSend( SYMBOL,OP_SELL, Lot, BID,20, SL, TP);         
           if ( Ticket > 0)                                                  
             { 
              Alert ("Открыт ордер Sell ", Ticket);
              LastTradeTime=TimeDay(TimeCurrent());  // задаем время сделки, чтобы сегодня больше не торговать
              return;                                   
             }         
          return;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return;       
  }
Arquivos anexados:
 
sayfuji >> :

Se você for dançar ao redor do dia, precisará de alguma orientação adicional na forma de mais níveis, artifícios e um pandeiro de xamã.

Portanto, champanhe e pandeiro têm que ir juntos...

Sozinho, menos chance, você tem que se comunicar, é para isso que serve o fórum...

 

Boa tarde, RomanS.

Esta é uma grande idéia. Vejo com muita freqüência comerciantes em fóruns estrangeiros se unindo e criando um especialista através de esforços mútuos. Estou pronto para apoiá-lo.

Quanto à sua idéia, é uma idéia que se afunda. E não é um graal. Se vamos trabalhar, deixe-nos trabalhar seriamente, esperando que de outra forma, por que começar tudo isso? Minha opinião: você tem que construir o sistema somente para M1 EUR/USD. O algoritmo deve ser baseado no modo de detecção de tendências. Vamos tomar, digamos, ....mm..... média móvel com o algoritmo de suavização da Tilson. Então vamos definir a entrada. Podemos pegar o cruzamento de duas varinhas rápidas e usá-las para fechar. Há muitos outros "extras" que poderiam ser acrescentados. Sugira-os :-). Além disso, com certeza deve haver um MM com a possibilidade de incluir Martin com configurações personalizadas.

Em geral, vamos dançar a partir daqui. Coloque suas idéias para entrada/saída. Vamos fazer isso juntos. Mas quebrar os níveis alto e baixo em D1 é um fracasso. digamos que ofuji acertou.

 

Por que uma filial, https://forum.mql4.com/ru/ 23917, não escreve?

Em geral, as pessoas geralmente se unem em torno de uma idéia interessante, mas esta é uma crise de gênero...

 
Alex5757000 >> :

Boa tarde, RomanS.

Esta é uma grande idéia. Vejo com muita freqüência comerciantes em fóruns estrangeiros se unindo e criando um especialista através de esforços mútuos. Estou pronto para apoiá-lo.

Quanto à sua idéia, é uma idéia que se afunda. E não é um graal. Se vamos trabalhar, deixe-nos trabalhar seriamente, esperando que de outra forma, por que começar tudo isso? Minha opinião: você tem que construir o sistema somente para M1 EUR/USD. O algoritmo deve ser baseado no modo de detecção de tendências. Vamos tomar, digamos, ....mm..... média móvel com o algoritmo de suavização da Tilson. Então vamos definir a entrada. Podemos pegar o cruzamento de duas varinhas rápidas e usá-las para fechar. Há muitos outros "extras" que poderiam ser acrescentados. Sugira-os :-). Além disso, precisaremos de um MM com a possibilidade de incluir Martin com configurações personalizadas.

De qualquer forma, vamos dançar em torno disso. Apresentar suas idéias para a entrada/saída. Vamos fazer isso juntos. Mas quebrar os níveis alto e baixo em D1 é um fracasso. digamos que ofuji escreveu bem.

O fato de que até agora não é um graal (o tempo vai aparecer) é certo!

O fato de não ser de ameixa (a longo prazo), é visível quando a executamos no testador (50/50 às vezes funciona, às vezes não), mas não de ameixa... O fator Prof.factor é cerca de 1,00

Em relação ao M1, é claro que é interessante, mas é pouco provável que interesse um pro... Além disso, sugeri que o sistema não fosse para negociação diária... Eu o testei no M5, geralmente não faz diferença.

Testei-o em М5 e não faz diferença.

Para basear o algoritmo em uma forma de identificar uma tendência

Você sugeriu uma maneira de determinar a tendência, então faça isso.... Qual é o problema? Vamos discutir isso...

Vamos tomar, digamos, ....mm..... uma média móvel com um algoritmo de suavização Tilson.

Sem problemas... você pode colocar um par de linhas de código e wollya. O fator Prof é superior a 2,0.

O problema é esse, não estou sugerindo que você adivinhe, mas que faça, e aqueles que não sabem como fazer... devem aprender como os outros o fazem.

Pessoalmente, eu (como amador) quero ganhar experiência com os profissionais...