[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 10

 
volshebnik:
Por mais que eu tenha tentado o Code Base, nada tem sido lucrativo (ainda não consegui passar por ele). Caso contrário, eu já teria apostado de verdade a esta altura. Na otimização - bom, no teste - mau. Só esta busca de todos os MA em otimização, como me parece, dará a melhor variante da minha estratégia enquanto houver MA (5), MA(12), MA(18), MA(23) e MA(28). Mas estes podem não ser os melhores MA. E, em vez de lidar com cada um deles (também com suas interseções), não seria mais fácil executar um algoritmo genético em otimização para selecionar os melhores MAs? Esta é a pergunta que surgiu em meu posto anterior.

Eu acho que a lógica da solução é fraca. Formule o problema corretamente (você pode fazê-lo sem seu código), abstraia um pouco dele e escreva claramente as condições do problema...
 
Roman.:

Na minha opinião, a lógica da solução é fraca. Formule o problema corretamente (você pode fazê-lo sem seu código), abstraia um pouco dele e escreva claramente as condições do problema...
O problema: Esperamos a quebra do MA, depois o primeiro fractal. A quebra do primeiro fractal é um sinal para o comércio. Mas com períodos de MA diferentes, os fractais podem estar em locais diferentes (por tempo) porque, dependendo do período e do tipo de alisamento, alguns МАs "quebram" mais cedo e outros mais tarde e, correspondentemente, os sinais para um comércio são diferentes. Portanto, quero tentar todo o МА para descobrir aquele que dá o melhor (mais lucrativo) sinal (se estiver correto, não posso afirmar ainda). Quero pesquisar e percorrer cada MA de 50 períodos, e com 4 opções - eksponencial, alisado, etc. - muito longo. Se transferirmos o período МА, TP e SL para uma variável externa na otimização, veremos imediatamente o que é melhor. Mas não posso otimizar além do período МА = 7, por alguma razão. Portanto, estou procurando por ajuda.
 
volshebnik:
A tarefa: esperamos a quebra do MA, depois o primeiro fractal. A penetração do primeiro fractal é um sinal para a transação. Mas com períodos diferentes de fractal MAs podem estar em locais diferentes (por tempo) porque, dependendo do período e do tipo de suavização, alguns MAs "quebram" mais cedo, outros - mais tarde e, conseqüentemente, sinais para o comércio - diferentes. Portanto, quero tentar todo o МА para descobrir aquele que dá o melhor (mais lucrativo) sinal (se estiver correto, não posso afirmar ainda). Quero pesquisar e correr em cada МА com 50 períodos e com 4 opções - eksponencial, alisado, etc. - muito longo. Se transferirmos o período МА, TP e SL para uma variável externa na otimização, veremos imediatamente o que é melhor. Mas não posso otimizar além do período МА = 7, por alguma razão. Portanto, estou procurando ajuda.


Solução:

Eu darei para comprar (vender - por analogia):

1. fratura de MA - obter valores de MA nas barras 3, 2 e 1 - comparar. Se os valores de MA nas barras 3>2 e 2<1, é uma pausa.

2. então - fractal - penetração - um sinal para fazer um acordo

   
   double fractal_l;
   double fractal_h;
     
   fractal_h = iFractals(Symbol(),PERIOD, MODE_UPPER, 3);
   if(fractal_h!=0)  upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3); 
   
   fractal_l = iFractals(Symbol(), PERIOD, MODE_LOWER, 3);
   if(fractal_l!=0)  dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3); 

   if (Ask > upfractal) {открытие ордеров при пробитии последнего (свежайшего) фрактала }


No que diz respeito à enumeração do MA - colocá-lo em variáveis externas (otimizáveis):

Período_MA (você pode definir de 2 a 240 em incrementos de 2), MODE - (método de cálculo МА - intervalo de mudanças 0 a 3 passo 1), PRICE_TYPE -(constante de preço - intervalo de mudanças 0 a 6 passo 1), ouvi dizer que ao trabalhar dentro do dia MA deve ser calculado usando valores médios (preço fechado não é importante), ao trabalhar nas velas diárias MA deve ser calculado pelos preços fechados do dia.

PERÍODO - você muda manualmente com cada otimização subseqüente - 1,5,15,30,60,240...

Pressione F1 no iMA - leia tudo novamente com atenção.

Bem, e é claro que TP e Stop Loss otimizam como sempre.

 double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
 double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
 double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
P.S. Não se esqueça de escrever uma informação sobre os resultados do teste... :-)))
 
Roman, muito obrigado! Vou compará-la com minha EA. Não me esquecerei de informar sobre os resultados dos testes. Seu trabalho não irá para o lixo. Sua oferta anterior de martingale está na minha fila de pesquisa, se eu estiver perto do graal )) Também o informarei.
 
volshebnik:
Roman, muito obrigado! Vou compará-lo com minha EA. Não me esquecerei de informar sobre os resultados dos testes. Seu trabalho não irá para o lixo. Sua oferta anterior de martingale está na minha fila de pesquisa, se eu estiver perto do graal )) Também o informarei.

Sentido, estamos esperando...
 
Como será que a função OrderModify() funcionará se o parâmetro "preço" for definido de forma diferente do que era? Por exemplo, havia OrderPrice=1,3200, e na função OrderModify, vamos definir para 1,3300. Quem sabe? (eu mesmo na prática e no testador não precisei verificar, desculpe)
 
ikatsko:
Como será que a função OrderModify() funcionará se o parâmetro "preço" for definido de forma diferente do que era? Por exemplo, havia OrderPrice=1,3200, e na função OrderModify, vamos definir para 1,3300. Quem sabe? (Eu mesmo não verifiquei na prática e no Testador de Estratégia, desculpe)

alterar o preço aberto de uma ordem pendente, se o tipo de ordem o permitir
 
abolk:

Se o tipo de pedido o permitir, ele mudará o preço de abertura do pedido pendente

O que você quer dizer com "se o tipo de pedido permitir"? Um pedido aberto pode ser do tipo COMPRAR ou VENDER.

Suponha que a ordem muda o preço, mas onde gastaria a diferença? Sobre o saldo positivo ou negativo? É assim? E haverá também a propagação? Isso significa que fechamos a antiga ordem (spread) e abrimos uma nova ordem?

 
ikatsko:

O que você quer dizer com "se o tipo de pedido permitir"? Um pedido aberto pode ser do tipo COMPRAR ou VENDER.

Suponha que a ordem muda o preço, mas onde gastaria a diferença? Para o positivo ou negativo do saldo? É assim? E haverá também a propagação? Isto significa que fechamos a antiga ordem (spread) e abrimos uma nova ordem?

A função só será capaz de alterar o preço ao qual a ordem pendente é estabelecida. Se você tentar alterar o preço aberto da ordem de mercado, esta função retornará um erro, algo como "Parâmetro de função inválida". Você pode encontrar mais detalhes em ajuda para esta função - eu sou preguiçoso demais para lhe dar links, pois estou com sono demais... :)
 
artmedia70:
Esta função só será capaz de alterar o preço pendente do pedido aberto. Se você tentar alterar o preço aberto da ordem de mercado, esta função retornará um erro, algo como "Parâmetro de função inválida". Por favor, veja mais detalhes nesta função de ajuda - sou preguiçoso demais para lhe dar links, pois estou com muito sono... :)

Sim, obrigado por sua atenção! Eu era preguiçoso demais para olhar e escrevi uma pergunta. Desculpe. MAS olhou e descobriu (sem experimentar). preço - novo preço para ordem pendente ou preço de abertura para ordem de mercado. Boa noite!

Razão: