Como codificar? - página 333

 

HI Mladen,

Já o fiz,

mas quando colocado no MT4,

nada aparece na subjanela,

Por favor, verifique este código fonte.

Obrigado.

Arquivos anexados:
 
luffy:
HI Mladen,

Já o fiz,

mas quando colocado no MT4,

nada aparece na subjanela,

Por favor, verifique este código fonte.

Obrigado.

luffy

Duas coisas :

1. Adicionar se (R!=0) antes do S = (Q/ R);

2. Você está passando por todas as barras, mas suas arrays contêm apenas 14 elementos. Se você quiser usar as matrizes como tampões (tendo o mesmo número de elementos que as barras no gráfico), então o tamanho das matrizes deve ser sempre verificado e redimensionado de acordo). Você pode verificar este indicador : https://www.mql5.com/en/forum/174961/page22 (a função iHull()) para ver como as matrizes devem ser usadas em casos como este

 

Por favor, alguém faça isso para traçar linhas na subjanela.

Eu tentei e ainda não consigo fazer isto desenhar as linhas

Por favor, ajude.

 
luffy:
Por favor, alguém faça isso para traçar linhas na subjanela.

Eu tentei e ainda não consegui fazer com que traçasse as linhas

Por favor, ajudem.

luffy

Como você está tentando usar essas matrizes como amortecedores, declare-as na seção init tudo como amortecedores (não há mais nenhum limite de 8 amortecedores no novo metatrader 4) e ele funcionará

Essa é, de longe, a solução mais simples

 

Existe alguma forma de restringir o código para trabalhar em apenas um computador?

 
apprentice coder:
Existe alguma forma de restringir o código para trabalhar em apenas um computador?

Você poderia fazer isso limitando-se a C: número de série da partição (usando a função API do Windows GetVolumeInformation())

O formato da função é o seguinte :

BOOL WINAPI GetVolumeInformation(

lpRootPathName,

LPTSTR lpVolumeNameBuffer,

_Em_ DWORD nVolumeNameSizeSize,

_Out_opt_ LPDWORD lpVolumeSerialNumber,

_Out_opt_ LPDWORD lpMaximumComponentLength,

_Out_opt_ LPDWORD lpFileSystemFlags,

_Out_opt_ LPTSTR lpFileSystemNameBuffer,

_Em_ DWORD nFileSystemNameSizeSize

);

Está em kernel32.dll. Mas se o usuário formata sua partição C:, você terá que atualizar o código também

 
mladen:
Você poderia fazer isso limitando-se a C: número de série da partição (usando a função API do Windows GetVolumeInformation())

O formato da função é o seguinte :

Está em kernel32.dll. Mas se o usuário formata sua partição C:, você terá que atualizar o código também

Obrigado

Vai dar uma tentativa

 
mladen:
Você poderia fazer isso limitando-se ao número de série C: paritition (usando a função API do Windows GetVolumeInformation())

O formato da função é o seguinte :

Está em kernel32.dll. Mas se o usuário formata sua partição C:, você terá que atualizar o código também

Infelizmente, esta função não é suficiente por si só. Além disso, posso ver alguns poucos clientes com drive serial idêntico, a pior situação é com emuladores Windows rodando em Macs e linux, que sempre retornam zero para esta serial. Muitos usuários os utilizam.

 
Ovo:
Infelizmente, esta função não é suficiente sozinha. Além disso, posso ver alguns poucos clientes com drive serial idêntico, a pior situação é com emuladores Windows rodando em Macs e linux, que sempre retornam zero para esta serial. Muitos usuários os utilizam.

Não conhecia os emuladores

Então o dongle parece ser uma solução, mas já vi muitos dongles racharem, então ...

 
mladen:
Não conhecia os emuladores. Então o dongle parece ser uma solução, mas já vi muitos dongles racharem, então ...

Na verdade existem vários emuladores, e apenas alguns deles retornam zero (por exemplo, vinho)

Verifiquei minhas estatísticas - 290 dos 9000 registros do banco de dados MT4 tinham a série igual a zero, portanto, cerca de 3%. Em comum, os emuladores não implementam corretamente as funções relacionadas ao HW, e algumas chamadas até congelam o Terminal quando são invocadas. Portanto, não tenho certeza se o dongle pode resolvê-lo de forma confiável. Até agora, não encontrei uma solução que funcione em todos os emuladores.