Ajuda na codificação - página 109

 

ordem pendente modificar

Ei pessoal, eu tentei programar uma modificação de preço para pedidos pendentes. É um dos meus primeiros EAs. Quero escrever tantos EAs quantos forem necessários, para poder escrever os mais complexos mais tarde. Com a modificação do meu pedido, tenho o problema de que ele não está funcionando quando o coloco em um gráfico na minha conta demo. Alguém pode encontrar erros e me ajudar corrigindo-os? Obrigado. Eu realmente não tenho mais pistas. Saúde

{ RefreshRates(); double ppoint=MarketInfo(OrderSymbol(), MODE_POINT); int total=OrdersTotal(); double pBid=MarketInfo(OrderSymbol(), MODE_BID); double pAsk=MarketInfo(OrderSymbol(), MODE_ASK); double priceNew; //---- for(int i=0; i50*ppoint) { priceNew=(pBid-50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } if (OrderType()==OP_SELLSTOP) { if (OrderOpenPrice()-pAsk>50*ppoint) { priceNew=(pAsk+50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } } }
 

Ei Robert, obrigado pela ajuda até agora. Como faço para postar código corretamente aqui? Obrigado e saúde.

 
fabian103:
Ei Robert, obrigado pela ajuda até agora. Como faço para postar código corretamente aqui? Obrigado e saúde.

fabian103

Você deve fazer uma simples cópia e colar naquela caixa de código php

Por alguma razão, seu código está "em todo o lugar". Experimente-o. Se não funcionar, tente anexar a parte do código que você deseja revisar como um arquivo separado (usando a ferramenta de anexação - aquela apontada na figura).

Arquivos anexados:
attach.gif  36 kb
 

Hi,

Tenho tentado calcular o valor das faixas de bollinger dentro do indicador estocástico, mas não tenho sido capaz de fazer isso.

Recebo o valor referido ao par, mas preciso do valor que deve estar entre 0 e 100.

Algum ponteiro?

Obrigado

 
metcalfe:
Hi,

Tenho tentado calcular o valor das faixas de bollinger dentro do indicador estocástico, mas não tenho sido capaz de fazer isso.

Recebo o valor referido ao par, mas preciso do valor que deve estar entre 0 e 100.

Algum ponteiro?

Obrigado

Presumo que se trata de calcular as faixas de Bollinger de um estocástico (usando valores estocásticos em vez de símbolos de preços). Você não pode fazer isso com um iBands() embutido porque ele sempre usa os preços dos principais gráficos.

Você poderia usar iBandsOnArray() mas com ele você tem um eterno problema de metatrader : os desvios podem ser apenas multiplicadores de números inteiros. Você não pode definir desvios para valores fracionários. Portanto, o melhor é usar as funções iStdDevOnArray() e iMaOnArry() para calcular suas próprias bandas de Bollinger de qualquer valor e com qualquer largura das bandas. No caso de estocástico, o código que faz isso seria parecido com este :

for(int i=limit; i>=0; i--) stoch = iStochastic(NULL,0,StochPeriod,1,StochSlowing,MODE_SMA,StochPrice,MODE_MAIN,i);

for( i=limit; i>=0; i--)

{

double dev = iStdDevOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollmi = iMAOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollup = bollmi+BollingerDeviations*dev;

bolldn = bollmi-BollingerDeviations*dev;

}

Fixando o próprio indicador também, para que você possa continuar experimentando com ele. É o que parece no gráfico:

____________________

PS: os valores das bandas podem exceder os limites 0 e 100 (nos casos em que o estocástico está pairando em torno de 0 ou 100) dependendo do multiplicador de bandas que você usa para os desvios e qual é o comprimento do próprio cálculo das bandas do Bollinger

Arquivos anexados:
 
mladen:
Presumo que você quer dizer calcular as bandas de Bollinger de um estocástico (usando valores estocásticos em vez de símbolos de preços). Você não pode fazer isso com um iBands() embutido porque ele sempre usa os preços dos principais gráficos.

Você poderia usar iBandsOnArray() mas com ele você tem um eterno problema de metatrader : os desvios podem ser apenas multiplicadores de números inteiros. Você não pode definir desvios para valores fracionários. Portanto, o melhor é usar as funções iStdDevOnArray() e iMaOnArry() para calcular suas próprias bandas de Bollinger de qualquer valor e com qualquer largura das bandas. No caso de estocástico, o código que faz isso seria parecido com este :

Isto é SUPER AWESOME!!!!!

Muito obrigado, eu tenho tentado por tanto tempo.

E obrigado pela resposta super rápida.

Mais uma pergunta estúpida.

O indi funciona muito bem, mas não consigo obter o número certo na ea sobre o valor das bandas.

Por exemplo, como na foto, você anexou os números 81...67..54....

 
metcalfe:
Isto é SUPER AWESOME!!!!!

Muito obrigado, eu tenho tentado por tanto tempo.

E obrigado pela resposta super rápida.

Mais uma pergunta estúpida.

O indi funciona muito bem, mas não consigo obter o número certo na ea sobre o valor das bandas.

Por exemplo, como na foto você anexou os números 81...67...54....

:):)

O comprimentoestocástico nesse exemplo está ajustado para 32. Essa é a única diferença em relação aos parâmetros padrão

 
mladen:
:):):)O comprimento estocástico nesse exemplo está definido em 32. Essa é a única diferença em relação aos parâmetros padrão

Desculpe... Não expliquei muito bem o que queria perguntar.

Na minha ea estou tentando obter o número, por exemplo, da faixa superior ou inferior na janela do fogão, como na foto. Por exemplo, quero recuperar na eA a faixa superior que é 81.8116 e codifiquei como

Comentário(iCustom(NULL,0, "nome",24,0,MODE_UPPER,0)); {\i1}renome do índio

mas eu não tenho o número certo.

Onde eu estou errado?

Obrigado

 
metcalfe:
Desculpe... Não expliquei muito bem o que queria perguntar.

Na minha ea estou tentando obter o número, por exemplo, da faixa superior ou inferior na janela do stoch, como na foto. Por exemplo, quero recuperar na eA a faixa superior que é 81.8116 e codifiquei como

Comentário(iCustom(NULL,0, "nome",24,0,MODE_UPPER,0)); {\i1}renome do índio

mas eu não tenho o número certo.

Onde eu estou errado?

Obrigado

Faça-o assim :

double upperBand = iCustom(NULL,0,"name",24,1,0,0);[/PHP]

The problem was that you can not put 0 in place of the slowing parameter since in that case metatrader will cause an error when calculating stochastic, and you will always get 0 as a return value, so use 1 instead (it is equivalent to no smoothing of the stochastic value). Also, better to use buffer numbers (MODE_MAIN is a reserved word in MQL - it 0 but in some cases they are not what you expect them to be). To get the rest of the values you would then have to write something similar to this :

[PHP]double middleBand = iCustom(NULL,0,"name",24,1,1,0);

double lowerBand = iCustom(NULL,0,"name",24,1,2,0);
 

Ok...

Muito obrigado.

Você me salvou....

Razão: