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

 

Há alguns dias eu baixei o EA "e-MoveSLTPbyMouse" (obrigado Granit) e experimentei na plataforma de negociação Broco, funciona bem. Hoje decidi usá-la com o IBFX e vi que não funcionava. Apareceu algum tipo de linha adicional, que "saltou" do preço, depois o mercado passou com sucesso a linha de stop loss e eu tive que fechar manualmente a posição com uma pequena perda. Alguma idéia sobre isso? O que posso fazer para que meu Expert Advisor trabalhe com o IBFX? Ou talvez haja algo semelhante no arsenal de alguém?

Uma pergunta a mais. Tenho um EA que abre posições com linhas horizontais mas infelizmente só abre 3-4 pips a partir do preço estabelecido. Por exemplo, eu coloquei uma linha para vender a 1,4018 com 1 pip para quebrá-la (EUR) e a posição aberta a 1,4015, ou seja, escorregou por 2 pips. Em libras esterlinas, foi superado em 3 pips. Talvez alguém tenha uma EA semelhante, mas ela funcionaria corretamente. Eu ficaria muito grato.

Estou publicando este EA, talvez alguém precise dele.

Arquivos anexados:
 

Cavalheiros especialistas, gostaria de usar em meu Consultor Especialista um indicador deslizante em um gráfico.

Se eu anexar o indicador deslizante ao gráfico manualmente, o parâmetro Aplicar a pode ser escrito como os dados do indicador anterior, mas como devo fazê-lo em meu EA?

Penso que seria lógico aplicar a função OnArray , mas não sei para onde levar a matriz com os dados do primeiro МА.

Por exemplo, eu preciso do seguinte: se o primeiro МА (21) for superior ao segundo MA (21) (construído sobre o primeiro MA) então..................

E outra pergunta: se meu consultor especializado tem a seguinte chamada de função: iMA(0,0,250,0,1,0,0), então a cada tique, ele irá fechar essas 250 barras, somá-las e dividi-las por 250? No entanto, não é assim. E se eu usar mais uma barra deslizante, o preço baixará... Por favor, esclareça.



 
mukata писал(а) >>

Cavalheiros especialistas, gostaria de usar em meu Consultor Especialista um indicador deslizante em um gráfico.

Se eu anexar o indicador deslizante ao gráfico manualmente, o parâmetro Aplicar a pode ser escrito como os dados do indicador anterior, mas como devo fazê-lo em meu EA?

Acho que a função iMAOnArray faz sentido, mas não sei para onde levar a matriz com os dados do primeiro MA, por favor, me esclareça ou me forneça um link para tal construção, ou para a própria construção, se ela existir.

Por exemplo, eu preciso do seguinte: se o primeiro МА (21) for superior ao segundo MA (21) (construído sobre o primeiro MA) então..................

E outra pergunta: se meu consultor especializado tem a seguinte chamada de função: iMA(0,0,250,0,1,0,0), então a cada tique, ele irá fechar estas 250 barras, adicioná-las e dividi-las por 250? No entanto, não é assim. E se eu usar mais uma barra deslizante, o preço baixará... Por favor, explique.

A maneira mais fácil de fazer um indicador.

 
Vinin >> :

A coisa mais fácil a fazer é fazer um indicador.

Vamos fazer um indicador, onde obtemos a matriz de dados? Dê-me uma dica sobre a construção, o livro didático não o tem...

E a segunda pergunta?

 
mukata писал(а) >>

Vamos ter um indicador, onde obtemos a matriz de dados? Por favor, me dê uma dica sobre a construção, o livro didático não o tem...

E a segunda pergunta?

Sobre a segunda pergunta. Tudo depende da implementação. Você mesmo pode calcular o indicador, otimizando o código. Você pode calcular apenas a abertura do bar. Existem muitas variantes.

Mas a melhor opção é usar o indicador. No qual todos os cálculos são realizados, e o Consultor Especialista os lê (valores calculados).

Aqui está um exemplo de um indicador

Eu mudei o indicador

Arquivos anexados:
 
Vinin >> :

Sobre a segunda pergunta. Tudo depende da implementação. Você pode fazer seu próprio cálculo otimizando o código. Você pode calcular somente pela abertura do bar. Há muitas variantes.

Mas a melhor opção é usar o indicador. Em que todos os cálculos são realizados, e o Consultor Especialista os lê (os valores calculados).

1) "Você mesmo pode calcular a ferramenta otimizando o código" - eu não entendo esta linha. Eu entendo: em cada partida de tic-tac é chamada, e se houver chamada da função iMA(0,0,250,0,1,0,0), então toda vez que ela adicionar e dividir essas 250 barras. E se criarmos o indicador corretamente, ele contará apenas a última barra, e o parâmetro do último turno será lido a partir da matriz. Certo?

2) Onde você consegue a matriz para criar o segundo MA?

 
mukata >> :

2) Onde posso obter uma matriz para o cálculo do segundo MA?


Certo! Esqueci-me, o indicador cria uma série de valores de MA.

Muito obrigado.

 
mukata писал(а) >>

1) "Você mesmo pode calcular a máquina otimizando o código" - eu não entendo esta linha. Eu entendo: a cada partida de tic-tac é chamada, e se houver chamada de função iMA(0,0,250,0,1,0,0), ela adicionará e dividirá estas 250 barras cada vez. E se criarmos o indicador corretamente, ele contará apenas a última barra, e o parâmetro do último turno será lido a partir da matriz. Certo?

2) Onde podemos obter uma matriz para a criação do segundo MA?

1. Tudo depende da implementação. Existem métodos ótimos de cálculo. iMa() utiliza seu próprio algoritmo de cálculo. A CodeBase os tem. Assim, quando você o utiliza, o mecanismo de cálculo funciona, o que é escondido de você. Você só obtém o resultado. E o cálculo será realizado a cada tique.

2. Eu fiz este indicador especialmente para ajudá-lo a entender as matrizes.

 
Vinin >> :

1. Tudo depende da implementação. Existem métodos ótimos de cálculo. iMa() utiliza seu próprio algoritmo de cálculo. A CodeBase os tem. Assim, quando você o utiliza, o mecanismo de cálculo funciona, o que é escondido de você. Você só obtém o resultado. E o cálculo será realizado a cada tique.

2. Eu fiz este indicador especificamente para ajudá-lo a entender as arrays.

Muito obrigado pelo indicador, eu olhei para a função inicial, tudo ficou claro de uma só vez.

Sobre a primeira pergunta:

Por exemplo, em meu Expert Advisor (não MA, mas também uma função integrada):

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
){
//и обе линии ниже 90
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<90&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)<90
){
//и выше 50
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>50&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)>50
)
fl=1;return(fl);//продать
}
}

vai contá-lo em todas as linhas?

Ou deve-se escrever um indicador e tirar valores de suas matrizes e compará-los, ou qualquer outra coisa. Para que funcione mais rápido.

 
mukata писал(а) >>

Muito obrigado pelo indicador, olhou para a função inicial, tudo ficou claro de uma só vez.

Sobre a primeira pergunta:

No meu EA, por exemplo (não MA, mas também é uma função integrada):

//пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
)

Vai contá-lo em todas as linhas?

Ou devo escrever um indicador e tirar valores de suas matrizes e compará-los, ou qualquer outra coisa. Para que funcionasse mais rapidamente.

Em primeiro lugar, é melhor calcular os valores do estocástico e da linha de sinal. E depois compará-los. Eu simplesmente não gosto deste estilo. O resultado é algum tipo de cegueira. E é mais fácil cometer um erro.

Se() na variante de metaquotas fizer o cálculo completo da expressão lógica. Seria desejável torná-lo o mais simples possível. É apenas se() for uma das operações mais lentas.

Existe também uma noção como "tagarelice" na barra zero. Pode haver casos em que o sinal será repetido em uma barra mais de uma vez. E pode até não conseguir travar. Foi um sinal falso. É por isso que tentamos tirar valores das barras formadas. Mas, neste caso, devemos utilizar os preços de abertura. Mas pode haver outras variantes.