Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Esta é uma classe puramente de teste ou você realmente vai usá-la?
Osegundo, estou escrevendo de qualquer forma no MT4, mesmo para mim mesmo - não funciona no testador por alguns símbolos, se eu vejo algo útil no MT4, eu vou mudar para o MT5 usando o MT4Orders - eu verifiquei meu "trabalho criativo" sem problemas com esta biblioteca
primeiro, quero ver a idéia de um OOP adequado - é por isso que estou testando, para ver o que vai sair, até agora está indo muito mal.... veremos, tenho tempo, aqui está o carregador que decidi fazer eu mesmo ))))
sei que não é a melhor maneira de inicializar antes do início do código principal, ou melhor, eu pensava assim, mas nunca o verifiquei, não importa quantas novas construções eu tivesse - na MQL tudo está sempre disponível, mesmo em nível de visibilidade global, vi as fontes que as pessoas vão diretamente ao topo e as escrevem dessa maneira:
e estas inicializações inválidas vêm trabalhando há anos de construção em construção. Assim, os desenvolvedores estragaram as pessoas até o osso ))))
SZZY: aqui em geral, como sempre quando se usa OOP - o principal é dividir corretamente o problema em elementos complexos e não herdar de tudo o que está à mão. Eu não sei onde "colar" erros de saída de texto - deve estar em toda parte, em qualquer classe e em qualquer lugar do programa, muito provavelmente você terá que criar uma classe base como@Vladimir Simakov mostrou acima de seu código
pp 1-3 todos solvíveis, MAS... OK, aqui com estática ajudou, que assim seja porque há uma ajuda, pelo menos algo para justificar sua decisão, agora o código é o seguinte:
criou 3 instâncias do Cdeal, entrou no log:
...
até agora tudo está funcionando como pretendido!
Mas, mesmo assim, sua versão original era melhor. Não sacrifique a confiabilidade para salvar uma linha de código )
Qual deles? - Tenho metade do tópico em minhas variações ))))
mas sim, você está cem por cento certo!
SZY:
a maneira mais simples e confiável - criar uma instância da classe via nova no OnInit() - e copiar todas as variáveis do ambiente terminal imediatamente, mas não é a melhor maneira - se eu planejo abrir uma ordem imediatamente na inicialização do construtor neste exemplo, então esta instância da classe provavelmente será apagada e então possivelmente recriada - isto já traz alguns problemas por causa de chamadas repetidas - eu começo a carregar o terminal novamente, novamente desperdiçando memória.... em geral, não é solvível desta forma
ZZZY: talvez mais um dia de experimentos, e eventualmente tomar@Vladimir Simakov exemplo - tudo é muito claro lá
Eu esbocei minha classe, que deveria inicializar os campos uma vez com valores constantes, e parece funcionar como pretendido:
Eu não gosto de 2 coisas:
1. repito a chamada SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP) - porque a ordem de inicialização não está definida, ou seja, não é certo que o VolumeSTEP será inicializado primeiro e só então GetDigitsInVolumeStep() será chamado
2. quero me livrar do método estático no GetDigitsInVolumeStep() - Vi um vídeo no youtube dizendo que no OOP puro não se deve usar métodos estáticos, e agora estou lutando contra moinhos de vento
o link para o vídeo, é essencialmente o mesmohttps://youtu.be/lfdAwl3-X_c ehttps://youtu.be/zME4SOCHT0I
como posso reescrever estes 2 pontos que não me agradam?
1. Não há nada de errado em chamar esta função duas vezes.
2) Não o confunde que aqueles que são contra o uso de funções estáticas não dão o menor argumento?
É melhor não assistir a vídeos de qualquer pessoa, mas ler livros.
2. Você não está confundido que aqueles que são contra o uso de funções estáticas não dão o menor argumento?
E você é o primeiro a me apoiar que o vídeo não corresponde a nada da prática, eu escrevi em outro fio minha opinião sobre o vídeo - o palestrante não pôde nem mesmo responder as perguntas dos alunos
e você é o primeiro a me apoiar que o vídeo não corresponde a nada da prática, escrevi em outro tópico minha opinião sobre o vídeo - o repórter não pôde nem mesmo responder as perguntas dos alunos
Eu não acho que o OOP seja sobre cortar as próprias capacidades para seguir cegamente os postulados infundados de alguns bocais da Internet, onde todos varrem à sua própria maneira.
Não creio que o OOP seja a redução das próprias capacidades para seguir cegamente os postulados infundados de alguns bocais da Internet, onde cada um varre à sua maneira.
se você já viu o vídeo, você deve entender que o alvo é .... bem, em geral, você também não entende nada e ainda não está maduro o suficiente - pelo menos foi assim que o A100 me explicou
SZZ: Experimentarei um pouco mais tarde com interfaces, talvez surjam algumas "entidades-instituições" ))))
Eu vi seu vídeo sobre estática, tudo por causa de escrever assim:
Bem, escrever uma embalagem por cima de uma estática é um problema, não é?
class Stateless_with_state { Stateless q; Data d; call() {q::call(d);} };
E, através de modelos, são claramente mais eficientes. Gostei da pergunta do público https://www.youtube.com/watch?v=75U9eefFYoU#t=33m25s
ZS: Experimentarei interfaces um pouco mais tarde, talvez apareça alguma "entidade-instituição" ))))
Verificado se "Padrão OOP - Padrões de comportamento - Estratégia" vai funcionar
2019.08.31 21:04:40.441 tst (EURUSD,H1) Strategy_1::Strategy_1
2019.08.31 21:04:40.442 tst (EURUSD,H1) Contexto::Contexto
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strategy_1::Algorithm
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strategy_2::Strategy_2
2019.08.31 21:04:40.442 tst (EURUSD,H1) Contexto::Contexto
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strategy_2::Algorithm
Funciona sem nenhum problema em minha opinião
verificou se o "Padrão OOP - Padrões de Comportamento - Estratégia (Estratégia)" vai funcionar
2019.08.31 21:04:40.441 tst (EURUSD,H1) Strategy_1::Strategy_1
2019.08.31 21:04:40.442 tst (EURUSD,H1) Contexto::Contexto
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strategy_1::Algorithm
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strategy_2::Strategy_2
2019.08.31 21:04:40.442 tst (EURUSD,H1) Contexto::Contexto
2019.08.31 21:04:40.442 tst (EURUSD,H1) Strategy_2::Algorithm
funciona sem nenhum problema para mim
O novo operador devolve um ponteiro. É claro que os desenvolvedores fizeram asneira com o desreferenciamento implícito e é por isso que sua versão funciona, mas prefiro não ficar preso a coisas não documentadas.
2. Certamente não é C++, mas é muito semelhante, então as listas de inicialização (eu não sei sobre eficiência) são kosher.