Acabo de editar meu primeiro assessor especializado.
Levei cerca de 4 semanas para aprender o suficiente sobre MT e MQL4 para finalmente ter minha estratégia programada, mas agora acho que posso apenas converter o programa para MQL2.
Pelo que li neste fórum, não vejo nenhuma vantagem para o MT4.
O que li, e aprendi através de um backtesting em minha EA, é que o MT4 Strategy Tester não funciona. Somente por esta razão, acho que só faz sentido passar mais alguns dias fazendo a troca para que eu possa obter um backtest preciso com o MT3.
Eu já baixei e instalei o MT3 e dei uma olhada no dicionário do editor. Posso ver que há menos recursos com o MT3 do que com o MT4, mas não acho que isso será um grande problema.
Uma característica do meu MQL4 EA com a qual eu contava muito, era o OrderMagicNumber para armazenar o preço do pedido original pendente, que pode mudar com o escorregamento quando o pedido é preenchido.
Os pedidos MQL2 não têm OrderMagicNumber, mas notei no dicionário MQL2 uma função chamada OrderValue que, em sua descrição, diz que a função pode recuperar um comentário do pedido (VAL_COMMENT).
Se eu puder usar o comentário para armazenar o preço preferido, acho que posso fazer a troca para o MT3. Entretanto, não consegui encontrar no dicionário, como definir o comentário do pedido. A descrição da função SetOrder não lista "comentário" como um de seus parâmetros.
Alguém familiarizado com esta característica da MQL2 pode me dizer como o comentário de ordem é definido?
Pelo que li neste fórum, não vejo nenhuma vantagem para o MT4.
O que eu li, e aprendi através de um backtesting em minha EA, é que o Testador de Estratégia MT4 não funciona. Somente por esta razão, acho que só faz sentido passar mais alguns dias fazendo a troca para que eu possa obter um backtest preciso com o MT3.
Então, onde você já leu que o testador MT3 é mais confiável do que o MT4???
Eu acho que você está muito mal informado sobre isso!
O backtest MT4 pode ser muito confiável, mas depende da qualidade dos dados históricos que você tem e da sua % de qualidade de modelagem.
Você não poderá adicionar "comentários" ou atribuir "MagicNumbers" aos pedidos enviados em MQL2 da forma como pode ser feito na programação MT4. A programação MT4 é mais avançada que a programação MQL2, por que retroceder?
Pelo que eu reuni aqui e ali, as pessoas que são um pouco sérias em relação aos testes de retaguarda usam softwares como WealthLab, Amibroker ou MetaStocks, NÃO mt3 ou mt4.
Talvez o backtesting do mt4 possa ser mais ou menos ok se você não usar nenhum dado intrabarramento. Por exemplo, se você trabalha com barras diárias, você deve usar apenas valores Abertos e Fechados de barras diárias (e nem mesmo Alto e Baixo se você definir StopLosses ou Take Profits). Nada mais.
A razão é que, apesar do que sua "qualidade de modelagem" poderia dizer, o único método de retrocesso mt4 que usa dados REAIS é"Somente preços Abertos".
Os métodos "Cada carrapato" e "Pontos de Controle" são belos contos de fadas. Pessoalmente, não vou trocar dinheiro com base em dados de contos de fadas de backtesting.
Ainda estou aprendendo o mt4, mas em minha experiência, eu não usaria o mt4 de nenhuma outra forma. Não estou nem 100% certo de que a maneira que sugeri seja 100% confiável. Se eu quiser fazer um bom backtesting, eu vou obter um software de backtesting.
Sobre o mt4 vs mt3 para negociação ao vivo: pelo que reuni aqui e ali ;-) o mt4 não pode ser confiável. Às vezes, as ordens que o mt4 diz que não foram executadas, na verdade são executadas!! Isto foi relatado por corretores. Se isto for verdade, então os corretores que oferecem o mt4 ao vivo não são sérios. Ou, eles se certificaram de que os bugs mt4 não aconteciam em sua plataforma, também é possível.
Por outro lado, "eu me reuni aqui e ali" rs que negociar ao vivo com o mt3 é possível.
Receio que isso não tenha funcionado muito bem. Vá para www.compoundfx.com/mt3stoch.jpg para ver como deve ficar no gráfico MT3 - tentei carregar isto, mas não funcionou.
Obrigado por seus esforços, talvez isto ajude?
Quando o traço no MT4, vejo apenas uma linha magenta e não um ciano - embora eu veja que a entrada está lá.
Primeiramente hellkas Eu vou agradecê-lo por manter meu cabeçalho de arquivo após converter o indicador mql com minha ferramenta Mql2Mq4 !!!
Então é normal que o convertido não funcione corretamente, se você olhar no Metatrade 4 na TabSheet (Painel) de Log de Mensagens Especializadas você verá "Exceção Zero Devide" como nesta foto. No roteiro do Indicador você usa o operador de divisão, com algumas vezes NULL:-( é por isso que este erro, e repito, no Metatrade 3, não houve exceções geradas para isso, no entanto no Metatrade 4.
Eu coloquei o convertido funcionando como no MT 3, e você pode ver que tipo de mudança eu fiz.
Ok, depois de mais revisões, ainda não está totalmente lá. Ainda me dá leituras falsas no MT4, ou seja, as linhas não estão cruzando onde deveriam estar. Eu usei o código que você colocou aqui. Alguma idéia?
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Converta este MT3 em MT4 para mim - muito fácil
Estou considerando mudar do MT4 para o MT3.
Acabo de editar meu primeiro assessor especializado.
Levei cerca de 4 semanas para aprender o suficiente sobre MT e MQL4 para finalmente ter minha estratégia programada, mas agora acho que posso apenas converter o programa para MQL2.
Pelo que li neste fórum, não vejo nenhuma vantagem para o MT4.
O que li, e aprendi através de um backtesting em minha EA, é que o MT4 Strategy Tester não funciona. Somente por esta razão, acho que só faz sentido passar mais alguns dias fazendo a troca para que eu possa obter um backtest preciso com o MT3.
Eu já baixei e instalei o MT3 e dei uma olhada no dicionário do editor. Posso ver que há menos recursos com o MT3 do que com o MT4, mas não acho que isso será um grande problema.
Uma característica do meu MQL4 EA com a qual eu contava muito, era o OrderMagicNumber para armazenar o preço do pedido original pendente, que pode mudar com o escorregamento quando o pedido é preenchido.
Os pedidos MQL2 não têm OrderMagicNumber, mas notei no dicionário MQL2 uma função chamada OrderValue que, em sua descrição, diz que a função pode recuperar um comentário do pedido (VAL_COMMENT).
Se eu puder usar o comentário para armazenar o preço preferido, acho que posso fazer a troca para o MT3. Entretanto, não consegui encontrar no dicionário, como definir o comentário do pedido. A descrição da função SetOrder não lista "comentário" como um de seus parâmetros.
Alguém familiarizado com esta característica da MQL2 pode me dizer como o comentário de ordem é definido?
Pelo que li neste fórum, não vejo nenhuma vantagem para o MT4.
O que eu li, e aprendi através de um backtesting em minha EA, é que o Testador de Estratégia MT4 não funciona. Somente por esta razão, acho que só faz sentido passar mais alguns dias fazendo a troca para que eu possa obter um backtest preciso com o MT3.
Então, onde você já leu que o testador MT3 é mais confiável do que o MT4???
Eu acho que você está muito mal informado sobre isso!
O backtest MT4 pode ser muito confiável, mas depende da qualidade dos dados históricos que você tem e da sua % de qualidade de modelagem.
Você não poderá adicionar "comentários" ou atribuir "MagicNumbers" aos pedidos enviados em MQL2 da forma como pode ser feito na programação MT4. A programação MT4 é mais avançada que a programação MQL2, por que retroceder?
Você pode querer ler sobre o MT4 de volta aqui: http://www.strategybuilderfx.com/forums/showthread.php?t=15309&page=1&pp=8
(se você não puder acessar a página você precisará se inscrever como membro - é gratuito)
Pelo que eu reuni aqui e ali, as pessoas que são um pouco sérias em relação aos testes de retaguarda usam softwares como WealthLab, Amibroker ou MetaStocks, NÃO mt3 ou mt4.
Talvez o backtesting do mt4 possa ser mais ou menos ok se você não usar nenhum dado intrabarramento. Por exemplo, se você trabalha com barras diárias, você deve usar apenas valores Abertos e Fechados de barras diárias (e nem mesmo Alto e Baixo se você definir StopLosses ou Take Profits). Nada mais.
A razão é que, apesar do que sua "qualidade de modelagem" poderia dizer, o único método de retrocesso mt4 que usa dados REAIS é"Somente preços Abertos".
Os métodos "Cada carrapato" e "Pontos de Controle" são belos contos de fadas. Pessoalmente, não vou trocar dinheiro com base em dados de contos de fadas de backtesting.
Ainda estou aprendendo o mt4, mas em minha experiência, eu não usaria o mt4 de nenhuma outra forma. Não estou nem 100% certo de que a maneira que sugeri seja 100% confiável. Se eu quiser fazer um bom backtesting, eu vou obter um software de backtesting.
Sobre o mt4 vs mt3 para negociação ao vivo: pelo que reuni aqui e ali ;-) o mt4 não pode ser confiável. Às vezes, as ordens que o mt4 diz que não foram executadas, na verdade são executadas!! Isto foi relatado por corretores. Se isto for verdade, então os corretores que oferecem o mt4 ao vivo não são sérios. Ou, eles se certificaram de que os bugs mt4 não aconteciam em sua plataforma, também é possível.
Por outro lado, "eu me reuni aqui e ali" rs que negociar ao vivo com o mt3 é possível.
Converta este MT3 em MT4 para mim - muito fácil
Oi pessoal, eu apreciaria se alguém pudesse converter isto para o MT4 para mim - nosso corretor acabou de se atualizar para o MT4.
Aqui está o código:
/*[[
Name := TTM Stoch
Author := Scott Black
Link := http://www.tradethemajors.com
Separate Window := yes
First Color := Cyan
First Draw Type := Line
Use Second Data := yes
second Color := Magenta
second Draw Type := Line
Minimum Chart Limits := 0.000000
Maximum Chart Limits := 100.000000
]]*/
Inputs : Slw(8),Pds(13),Slwsignal(9);
Variables : AA(0),bb(0),aa1(0),cnt1(0);
Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);
Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);
Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");
Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);
SetLoopCount(0);
smconst = 2 / (1+SLW);
smconst1 = 2 / (1+slwsignal);
loopbegin = loopbegin+1;
For shift = 2000 Downto 0 Begin
prev = GetIndexValue2(shift+1);
AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));
MAValue2 = smconst * (aa-prev) + prev;
SetIndexValue2(shift,MAValue2);
loopbegin = loopbegin-1;
End;
loopbegin2 = loopbegin2+1;
For shift = 2000-pds downto 0 Begin
MyHigh = -999999;
MyLow = 99999999;
For counter = shift to pds + shift Begin
PRICE= GetIndexValue2(counter);
If Price > MyHigh Then
MyHigh = Price;
If pds <= 0 Then
MyHigh = Price;
If Price < MyLow Then
MyLow = Price;
If pds <= 0 Then
MyLow = Price;
end;
prev1 = GetIndexValue(shift+1);
aa1=GetIndexValue2(shift);
bb=100*(aa1-mylow)/(myhigh-mylow);
MAValue = smconst * (bb-prev1) + prev1;
SetIndexValue(shift,mavalue);
loopbegin2 = loopbegin2-1;
End;
loopbegin3 = loopbegin3+1;
For shift = 2000 downto 0 Begin
prev2=GetIndexValue2(shift+1);
prev3=GetIndexValue(shift);
MAValue3= smconst1 * (prev3-prev2) +Prev2;
SetIndexValue2(shift,mavalue3);
loopbegin3 = loopbegin3-1;
end;
/*[[
Muito obrigado!!
Olá pessoal, eu apreciaria se alguém pudesse converter isto para o MT4 para mim - nosso corretor acabou de fazer um upgrade para o MT4.
Aqui está o código:
/*[[
Name := TTM Stoch
Author := Scott Black
Link := http://www.tradethemajors.com
Separate Window := yes
First Color := Cyan
First Draw Type := Line
Use Second Data := yes
second Color := Magenta
second Draw Type := Line
Minimum Chart Limits := 0.000000
Maximum Chart Limits := 100.000000
]]*/
Inputs : Slw(8),Pds(13),Slwsignal(9);
Variables : AA(0),bb(0),aa1(0),cnt1(0);
Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);
Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);
Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");
Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);
SetLoopCount(0);
smconst = 2 / (1+SLW);
smconst1 = 2 / (1+slwsignal);
loopbegin = loopbegin+1;
For shift = 2000 Downto 0 Begin
prev = GetIndexValue2(shift+1);
AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));
MAValue2 = smconst * (aa-prev) + prev;
SetIndexValue2(shift,MAValue2);
loopbegin = loopbegin-1;
End;
loopbegin2 = loopbegin2+1;
For shift = 2000-pds downto 0 Begin
MyHigh = -999999;
MyLow = 99999999;
For counter = shift to pds + shift Begin
PRICE= GetIndexValue2(counter);
If Price > MyHigh Then
MyHigh = Price;
If pds <= 0 Then
MyHigh = Price;
If Price < MyLow Then
MyLow = Price;
If pds <= 0 Then
MyLow = Price;
end;
prev1 = GetIndexValue(shift+1);
aa1=GetIndexValue2(shift);
bb=100*(aa1-mylow)/(myhigh-mylow);
MAValue = smconst * (bb-prev1) + prev1;
SetIndexValue(shift,mavalue);
loopbegin2 = loopbegin2-1;
End;
loopbegin3 = loopbegin3+1;
For shift = 2000 downto 0 Begin
prev2=GetIndexValue2(shift+1);
prev3=GetIndexValue(shift);
MAValue3= smconst1 * (prev3-prev2) +Prev2;
SetIndexValue2(shift,mavalue3);
loopbegin3 = loopbegin3-1;
end;
/*[[
Olá Scott...
Tente esta....
Hellkas,
Receio que isso não tenha funcionado muito bem. Vá para www.compoundfx.com/mt3stoch.jpg para ver como deve ficar no gráfico MT3 - tentei carregar isto, mas não funcionou.
Obrigado por seus esforços, talvez isto ajude?
Quando o traço no MT4, vejo apenas uma linha magenta e não um ciano - embora eu veja que a entrada está lá.
scott
Hi,
Primeiramente hellkas
Eu vou agradecê-lo por manter meu cabeçalho de arquivo após converter o indicador mql com minha ferramenta Mql2Mq4 !!!
Então é normal que o convertido não funcione corretamente, se você olhar no Metatrade 4 na TabSheet (Painel) de Log de Mensagens Especializadas você verá "Exceção Zero Devide" como nesta foto. No roteiro do Indicador você usa o operador de divisão, com algumas vezes NULL:-( é por isso que este erro, e repito, no Metatrade 3, não houve exceções geradas para isso, no entanto no Metatrade 4.
Eu coloquei o convertido funcionando como no MT 3, e você pode ver que tipo de mudança eu fiz.
Tchau, tchau.
yousky,
Muito obrigado, parece perfeito! Fico-lhe grato.
-SB
yousky,
Ok, depois de mais revisões, ainda não está totalmente lá. Ainda me dá leituras falsas no MT4, ou seja, as linhas não estão cruzando onde deveriam estar. Eu usei o código que você colocou aqui. Alguma idéia?
SB