Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1300

 
ANDREY:

É possível fechar o spread, ou seja, agregar algum valor ao preço de oferta. Mas como pode ser fixado o tamanho deste spread? Em carrapatos reais o spread está flutuando, ou seja, o valor do spread é desconhecido. E, portanto, não pode ser fechado com carrapatos reais ..... na minha opinião profissional, mas de forma puramente lógica. Provavelmente, só é possível costurar o que é EXATAMENTE conhecido EXATAMENTE PARA SEMPRE.

A Metatrader o surpreende? Eu não... não estou mais... Por favor....

<DATA> <TEMPO> <ABRIR> <ALTA>>BAIXA><CLOSE> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

 
Александр:

A Metatrader o surpreende? Eu não... não estou mais... Por favor....

<DATA> <TEMPO> <ABRIR> <ALTA>>BAIXA><CLOSE> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Ou seja, o spread ou é O , ou simplesmente o valor do spread não é exibido. E estes dados por MT4 , ou por MT5. E de qual item do menu são esses dados?

Se existe um valor de spread mas por alguma razão ele não é exibido, então esta falha do MT é muito semelhante à minha falha do MT5. A Alpari diz que a profundidade da história não tem efeito sobre a qualidade das citações de carrapatos e pensa que meu problema está escondido no próprio terminal e aconselha a entrar em contato com os desenvolvedores. Portanto, como em seu exemplo, tenho o mesmo valor de qualidade histórica para 2010, mas por alguma razão não é exibido no MT5. Se não houvesse carrapatos, ou se seu número fosse muito pequeno (digamos 1000), então a qualidade da história não seria exibida.
 

Olá.
Por favor, preste atenção a um novato.
Sem erros ou avisos ao compilar, mas a EA não abre ordens no testador... E não há erros no registro...

Qual pode ser a razão? Já tentei coisas diferentes...

extern double Lot=0.1;            
extern int Slippage = 30;
extern int TakeProfit = 30;
extern int StopLoss   = 30;
extern int MA_Smoth_S = 60;
extern int MA_Smoth_B = 12;
extern int MA_Simpl_S = 3;
extern int MA_Simpl_B = 1;

int start()
         {
          int MA_Simpl_S_Op,      
              MA_Simpl_B_Op;      
                 
          MA_Smoth_S = iMA(NULL,0,MA_Smoth_S,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Smoth_B = iMA(NULL,0,MA_Smoth_B,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Simpl_S = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_B = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_S_Op = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,2);
          MA_Simpl_B_Op = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,2);
          
          //Условие для Buy______________________
          while(MA_Smoth_B > MA_Smoth_S)
               {
                if(MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B > MA_Simpl_S)
                  {
                   bool check = OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask, Digits),Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Buy",0,0,clrGreen);
                   return(0);
                  }
               }
               
          //Условия для Sell_____________________
          while(MA_Smoth_S > MA_Smoth_B)
               {
                if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
                  {
                   check = OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid, Digits),Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Sell",0,0,clrRed);
                   return(0);
                  }   
               }     
          return(0);
         }
 
IndependentMK:

Olá.
Por favor, preste atenção a um novato.
Sem erros ou avisos ao compilar, mas a EA não abre ordens no testador... E não há erros no registro...

Qual pode ser a razão? Eu já tentei coisas diferentes...

int X = 5;
if(X > 10 && X < 3)  int ticket = OrderSend(Symbol(), OP_SELL, Доп_Лот, NormalizeDouble(Bid, Digits), 3,  NormalizeDouble(Ask + StopLoss_S * Point, Digits),  NormalizeDouble(Bid - TakeProfit_S * Point, Digits), "", MAGIC_S, 0, CLR_NONE);
 

O que você acha? O testador irá abrir a posição? Não. Porque X não está na faixa de teste. É por isso. Insira as impressões no código e analise o registro do testador.

int start()
  {
   int MA_Simpl_S_Op,
       MA_Simpl_B_Op;
   MA_Smoth_S = iMA(NULL, 0, MA_Smoth_S, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Smoth_B = iMA(NULL, 0, MA_Smoth_B, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Simpl_S = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_B = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_S_Op = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 2);
   MA_Simpl_B_Op = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 2);
//Условие для Buy______________________
   Print(" MA_Smoth_B = ", MA_Smoth_B, " MA_Smoth_B = ", MA_Smoth_B);
   while(MA_Smoth_B > MA_Smoth_S)
     {
      Print(" MA_Simpl_B_Op = ", MA_Simpl_B_Op, " MA_Simpl_S_Op = ", MA_Simpl_S_Op);
      if(MA_Simpl_B_Op < MA_Simpl_S_Op)
        {
         Print(" MA_Simpl_B = ", MA_Simpl_B, " MA_Simpl_S = ", MA_Simpl_S);
         if(MA_Simpl_B > MA_Simpl_S)
           {
            bool check = OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), Slippage, Bid - StopLoss * Point, Ask + TakeProfit * Point, "Buy", 0, 0, clrGreen);
            return(0);
           }
        }
     }
//Условия для Sell_____________________
   while(MA_Smoth_S > MA_Smoth_B)
     {
      if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
        {
         bool check = OrderSend(Symbol(), OP_SELL, Lot, NormalizeDouble(Bid, Digits), Slippage, Ask + StopLoss * Point, Bid - TakeProfit * Point, "Sell", 0, 0, clrRed);
         return(0);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
ANDREY:

Ou seja, o spread ou é O , ou simplesmente o valor do spread não é exibido. Estes dados são do MT4 ou MT5? E de que item do menu são esses dados?

Se o valor de spread está lá, mas por alguma razão não é exibido, então esta falha do MT é muito semelhante à minha falha do MT5. A Alpari diz que a profundidade da história não tem nenhum efeito sobre a qualidade das citações de carrapatos e acredita que meu problema está escondido no próprio terminal, e aconselha a entrar em contato com os desenvolvedores. Portanto, como em seu exemplo, tenho o mesmo valor de história de qualidade para 2010, mas por alguma razão ele não é exibido no MT5. Se não houvesse carrapatos, ou se seu número fosse muito pequeno (digamos 1000), então a qualidade da história não seria exibida.

Aqui está a cotação MT4

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

Aqui é MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Sinta a diferença... Deixei de trabalhar com carrapatos há muito tempo. E como está, não tenho energia suficiente para combater os vários "úteis/funcionários".

Colocar o mesmo Expert Advisor em outra empresa de corretagem. Que problema de carrapatos. Mesmo em Aberto, mesmo abrindo e fechando ao mesmo tempo. A diferença é AMBOS. Talvez alguém tenha resolvido este problema (carrapatos, etc.), e eu não sei como lidar com ele. E no MT5 também há uma propagação...

 
Александр:

Aqui estão as citações do MT4

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

Aqui é MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Sinta a diferença... Deixei de trabalhar com carrapatos há muito tempo. E como está, não tenho energia suficiente para combater os vários "úteis/funcionários".

Colocar o mesmo Expert Advisor em outra empresa de corretagem. Que problema com carrapatos aí. Mesmo em Aberto, mesmo abrindo e fechando ao mesmo tempo. A diferença é AMBOS. Talvez alguém tenha resolvido este problema (carrapatos, etc.), e eu não sei como lidar com ele. E no MT5 também há uma propagação...

Claro que você está mais avançado em todas essas questões do que eu estou ...... é por isso que não entendo seu processo de pensamento em alguns lugares...
Quando tentei usar o Mt4 por exemplo, meus códigos estavam mostrando resultados muito bons com códigos Tiki ... Então aprendi que meu resultado muito bom não é completamente exato, porque o MT4 não leva em conta o spread real e que o spread real do MT4 na Alpari não pode ser levado em conta porque flutua (especialmente à noite). E meu Conselheiro Especialista mostrou os melhores resultados apenas de 22 para 1.

Neste fórum me disseram que durante os testes o spread real (que é exatamente flutuante) é levado em conta apenas no MT5, o que me levou a estudar o MT5 e a executar meu código nele no modelo - cada tick baseado em carrapatos REAIS. Depois disso, fiquei sóbrio, porque meu código não apresentou resultados tão bons como no MT4. Por outro lado, alguns pontos positivos do código, que estavam no MT4, foram confirmados também no MT5. E eu fiquei feliz em poder melhorar meu código, estando confiante de que os resultados dos testes estavam próximos de uma negociação real.

Por causa disso, não entendo bem (talvez devido à falta de conhecimento e experiência) sua atitude negativa em relação aos testes sobre a história do tick. Afinal, se você abrir transações não por Сlose (como você fez), mas a qualquer preço especificado no pedido para abrir um pedido (como eu faço), qual é então a desvantagem de testar carrapatos?
A possível desvantagem pode ser, como me parece, apenas um conjunto incompleto de carrapatos e sua omissão nas aspas carregadas. Mas o número de carrapatos, comparado ao número de velas de um minuto, é enorme. E eu ainda não estudei se carrapatos ausentes (como castiçais) podem ser detectados e adicionados ao arquivo de carrapatos. É por isso que eu tenho que confiar na promessa da Alpari até agora, de que eles têm uma história de carrapato COMPLETO desde 2001.
E eu ainda não entendo a diferença, que eu deveria sentir olhando para os castiçais que você trouxe para demonstrar alguma idéia sua
.

Não quero testar minha EA com outro corretor, porque se alguma vez me atrever a negociar ao vivo, será com a Alpari. Além disso, você mesmo disse que este corretor tem os dados mais completos e confiáveis de carrapatos.

Tenho certeza de que você tem algumas informações valiosas para mim, as quais, infelizmente, não posso tirar de suas palavras.

Тестирование торговых стратегий на реальных тиках
Тестирование торговых стратегий на реальных тиках
  • www.mql5.com
В данной статье мы покажем результаты тестирования простой торговой стратегии в 3-х режимах: " OHLC на M1 " с использованием только цен Open,High, Low и Close минутных баров; затем детальное моделирование в режиме " Все тики ", и самое достоверное тестирование в режиме " Каждый тик на основе реальных тиков " с использованием записанных тиков из...
 
ANDREY:


Sua atitude negativa em relação aos testes sobre o histórico de carrapatos. Afinal, se você abrir negócios não por Сlose (como você fez), mas por qualquer preço especificado no pedido para abrir um pedido (como eu faço), então qual é a desvantagem de testar os carrapatos?

E ainda não entendo qual é a diferença, que eu deveria sentir quando olho para os parâmetros dos castiçais, que você trouxe para demonstrar sua idéia.

Não quero testar minha EA com outro corretor, porque se eu fizer isso, negociarei dinheiro real somente com a Alpari. Além disso, você mesmo disse que este corretor tem os dados mais completos e confiáveis de carrapatos.

Tenho certeza de que você tem algumas informações valiosas para mim, as quais, infelizmente, não pude entender de suas palavras até agora.

1. Atitude negativa... Não, não é negativo. É que você tenta e espera semanas para que os testes sejam completados e então acontece que as cotações não são suficientemente boas e isso afeta fortemente os resultados. Todas as empresas de corretagem FILTRAM as cotações. Os filtros os distorcem. Fui pelo caminho de escrever uma EA que não é crítica quanto à qualidade das citações.

2. A diferença nas citações entre MT4 e MT5 é que eu comecei com que MT5 tem um spread PARA TODAS AS TAXAS. Por que isso acontece? Eu não sei. Fora de linha, esta propagação é maximizada. Fora de linha está andando por aí. Isto é, devemos fazer um sistema que não seja crítico. Ver ponto 1 G).

Isso é tudo o que há. Sem subtexto.

 
Александр:

1. Uma atitude negativa... Não, não é negativo. É que você empurra, você espera semanas para que os testes terminem, e então acontece que as citações não são suficientemente boas e têm um impacto ENORME nos resultados. Todos os CDs FILTRAM as citações. Os filtros os distorcem. Fui pelo caminho de escrever uma EA que não é crítica quanto à qualidade das citações.

2. A diferença nas citações entre MT4 e MT5 é que eu comecei com que MT5 tem um spread PARA TODAS AS TAXAS. Por que isso acontece? Eu não sei. Fora de linha, esta propagação é maximizada. Fora de linha está andando por aí. Isto é, devemos fazer um sistema que não seja crítico. Ver ponto 1 G).

Isso é tudo o que há. Sem subtexto.

"....... e então acontece que as citações não são suficientemente boas e isso afeta fortemente os resultados". Os filtros os distorcem. ...."


Suponha que haja uma cotação real de 2008 para um par baixado automaticamente do servidor Alpari para o MT5 para testes. Como você descobre se essas citações não são suficientemente boas? Em geral, por que critérios você avalia a qualidade das citações? Que conjunto de parâmetros deve ter aspas de qualidade ótima?
Como diz a Alpari, as citações reais não são modeladas ou geradas, mas são retiradas da história registrada. Pelo que entendi, .... trouxe outro tick qualquer cotação - Alpari tick com esta cotação gravada e gravada. E assim por diante, a cada tique. Como resultado, eles têm um enorme banco de dados de carrapatos com preços, que eles baixam para o MT5 para testes. E somente se uma cotação necessária ou sua seqüência estiver faltando por algum motivo, somente então a Alpari, ao invés de perder carrapatos reais com preços, estes carrapatos são simulados de acordo com um algoritmo próximo à aparência de carrapatos reais.

É por isso que não entendo bem que queixas podem ser feitas sobre a qualidade das citações. Como alternativa, posso imaginar que um carrapato veio e trouxe o preço, por exemplo, 1,00061. Mas a Alpari atribuiu um preço diferente a este tick, por exemplo, 1,00077. Ou eles podem anexar um spread diferente a este tick do que aquele que estava na realidade. Mas se for realmente assim, uma pessoa não autorizada não pode detectar esta alteração, especialmente em uma história profunda. Portanto, é claro que é possível afirmar que a Alpari filtrou este tick com a citação. Mas me parece praticamente impossível provar isso. Porque ninguém, exceto o especialista relevante da Alpari, sabe qual foi o preço primário ou o spread do tick filtrado. A única variante possível é se este especialista revelar este segredo a alguém, e talvez até confirmar o fato por escrito. Mas, como me parece, estas informações com provas documentais apareceriam imediatamente neste fórum.


"... Todos os CDs são citações FILTRANTE. Os filtros os distorcem.....".


Já li sobre isso muitas vezes. Mas esta filtragem era sobre comércio real. E me parece que tal filtragem é razoável para as empresas de corretagem. Com sua ajuda eles podem evitar grandes perdas, se uma grande quantidade de posições com volume muito grande pode fechar na Take Profit, se a corretora não entrou no mercado. E qual é o uso da filtração quando uma corretora fornece cotações para testes?

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 

Você pode me dizer como obter uma proporção de x2 ao fechar uma posição com uma perda?

Agora eu recebo 1,4,9,16 - e preciso de 2,4,8,16.

O que fixar no código?

 int cn=0,c=0;
  datetime dt=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
    if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderType()<=1) {
     if((OrderSymbol()==mSymbol)&&(OrderMagicNumber()==Magic)) {
       double Profit=OrderProfit()+OrderCommission()+OrderSwap();
        if(Profit<0) {  
        c++;   
        cn=(int)MathPow(c,2); // что здесь исправить?
        } else break;     
 }}}
   Comment(cn);
 
Denis Pershin:

Você pode me dizer como obter uma proporção de x2 ao fechar uma posição com uma perda?

Agora eu recebo 1,4,9,16 - e preciso de 2,4,8,16.

O que fixar no código?

Tudo precisa ser consertado.

Seu código procura a primeira ordem do histórico de pedidos com o símbolo e o número mágico especificados

Então o número de ordens não lucrativas é calculado e multiplicado por 2.

procurar no fórum por"funções úteis da CMM" e fazer algo como isto

- encontrar o bilhete do último pedido para nosso símbolo e nosso magik

- obter OrderProfit() e OrderLots() do bilhete encontrado e multiplicar por seu coeficiente de martingale, se necessário

ZS: pode haver uma solução pronta

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...