Menos código, mais ação... escrever um EA - página 7

 
Maxim Kuznetsov:

para qual componente Ishimock você quer um embrulho? e, mais importante ainda, por que e que tipo de...
apenas conversando ? você pode, porque não...

PS/ Você já viu o Exxel ? Na visão DataFrame, os Ishimocks terão o mesmo aspecto... Assim como todos os outros... Os comerciantes trabalham com mesas, na verdade. Um gráfico é apenas uma representação parcial (vista) de uma tabela de resumo. Portanto, estes dados devem ser tratados como tabelas.
Do ponto de vista do comerciante - o que é um objeto de programa? Não é nada. Não existem tais coisas em sua vida prática.

Então você está fazendo isso para programadores, até mesmo para iniciantes, ou para qualquer um?

 
Vladimir Simakov:

Escrevi isso com o controle de abertura dessas mesmas ordens.

Eu não entendo. Você já postou uma versão incompleta?

 
Vladimir Simakov:

Para o pensamento geral, exemplo de uma classe de embalagem para Ichimoku, mas em mql4.

por que tornar as coisas simples tão complicadas? O mt4 facilita o uso de indicadores escrevendo uma única linha

Eu costumava escrever dessa forma:

#define  ind1(int bar_) ind1(inp_param1, int... , int bar_) 
double ind1(int param1, int... , int bar)

{
тут можно предобработку описать, если необходимо
return(iCustom(,,,,,, bar))
}

OnTick()
{
 if(ind1(1) > ind1(2)) BUY();
}

Com esta abordagem, OnTick() leva 15-20 linhas de código, onde você pode ver toda a lógica e modificá-la rapidamente para modificações - as condições são reescritas ou indicadores são adicionados

imho, OOP você fez uma tarefa complicada a partir de uma simples, você precisa controlar a comutação TF, se os objetos são criados através de ponteiros, manipulação desnecessária a cada chamada, aumenta o consumo de memória.... por quê?

 
Vladimir Simakov:

Então você está fazendo para programadores, até mesmo para iniciantes, ou para qualquer um?

Eu o faço especificamente para iniciantes.

E para quem você citou o código? Ele repete completamente o indicador padrão e não permite nada novo; é como uma canção antiga com uma nova reviravolta. Com novas entidades, mais uma classe e mais uma inclui.

Por que foi feito o COD? Não pode ser aplicado ao S20, por exemplo... fisicamente não pode ser aplicado ao ohlc arbitrário. E que classe pode ser derivada dela, de onde crescer a partir dela?

 
fxsaber:

Eu não entendo. Você já postou uma versão incompleta?

Portanto, você não tem o controle de abrir/fechar um pedido, comigo tudo está bem. Ao menos funciona no Forex Club. Eu escrevi que hoje anexei CloseBy à biblioteca, ainda há um feedback a ser melhorado. Por exemplo, o mesmo bilhete muda ou não? O Clube Forex não, mas outros? Ou seja, temos que implementar o controle disto, para mudar os campos de classe necessários, etc. Mas quando tudo isso é finalizado e depurado, é um verdadeiro prazer escrever.

 
Vladimir Simakov:

Portanto, é você que não tem controle de abrir/fechar uma ordem, comigo está tudo bem. Pelo menos no Forex Club ele funciona. Eu lhe disse que CloseBy foi anexado à biblioteca em um arranhão hoje, ainda há um feedback a ser completado e a ser completado. Por exemplo, o mesmo bilhete muda ou não? O Clube Forex não, mas outros? Ou seja, temos que implementar o controle disto, para mudar os campos de classe necessários, etc. Mas quando tudo isso é finalizado e depurado, é um verdadeiro prazer escrevê-lo.

Repito mais uma vez, seu código não funciona, o segundo código funciona.

 
Maxim Kuznetsov:

Estou fazendo isto especificamente para iniciantes.

Mas para quem você citou o código? Ele repete completamente o indicador padrão, e não permite nada novo; é uma canção antiga com uma nova reviravolta. Com novas entidades, mais uma classe e mais uma inlude.

Por que foi feito o COD? Não pode ser aplicado ao S20, por exemplo... fisicamente não pode ser aplicado ao ohlc arbitrário. E que classe pode ser derivada dela, de onde crescer a partir dela?

É puramente por uma questão de conveniência.

No segmento de dados:

CIchimoku ind1(EURUSD,PERÍODO_M5,5,10,15);

CIchimoku ind1(GBPUSD,0,10,25,30,2);

Como resultado, temos dois indicadores, o primeiro no intervalo de tempo m5, mas o segundo será sempre deslocado por +2 intervalos de tempo a partir do intervalo de tempo atual do gráfico.

 
fxsaber:

Mais uma vez, seu código não funciona, o segundo código funciona.

 
Vladimir Simakov:
expert Test (EURUSD,M1) loaded successfully
'35286172': market buy 0.20 EURUSD
'35286172': accepted market buy 0.20 EURUSD
'35286172': market buy 0.20 EURUSD placed for execution
'35286172': order #2214667209 buy 0.20 / 0.20 EURUSD at market done in 172.415 ms
'35286172': market sell 0.10 EURUSD
'35286172': deal #2211904952 buy 0.20 EURUSD at 1.12941 done (based on order #2214667209)
'35286172': accepted market sell 0.10 EURUSD
'35286172': market sell 0.10 EURUSD placed for execution
'35286172': order #2214667210 sell 0.10 / 0.10 EURUSD at market done in 171.843 ms
'35286172': deal #2211904953 sell 0.10 EURUSD at 1.12936 done (based on order #2214667210)
expert Test (EURUSD,M1) removed

Não está funcionando.


E este é o segundo código

script Test4 (EURUSD,M1) loaded successfully
'35286172': market sell 1.00 EURUSD
'35286172': accepted market sell 1.00 EURUSD
'35286172': market sell 1.00 EURUSD placed for execution
'35286172': order #2214667234 sell 1.00 / 1.00 EURUSD at market done in 174.294 ms
'35286172': deal #2211904975 sell 1.00 EURUSD at 1.12936 done (based on order #2214667234)
'35286172': market buy 1.00 EURUSD
'35286172': accepted market buy 1.00 EURUSD
'35286172': market buy 1.00 EURUSD placed for execution
'35286172': order #2214667235 buy 1.00 / 1.00 EURUSD at market done in 175.016 ms
'35286172': deal #2211904976 buy 1.00 EURUSD at 1.12941 done (based on order #2214667235)
'35286172': close position #2214667235 buy 1.00 EURUSD by position #2214667234 sell 1.00 EURUSD
'35286172': accepted close position #2214667235 buy 1.00 EURUSD by position #2214667234
'35286172': deal #2211904977 sell 1.00 EURUSD at 1.12936 done (based on order #2214667236)
'35286172': close position #2214667235 buy 1.00 EURUSD by position #2214667234 done in 67.893 ms
script Test4 (EURUSD,M1) removed
Está funcionando.
 
Vladimir Simakov:

Isto é puramente por conveniência.

No segmento de dados:

CIchimoku ind1(EURUSD,PERÍODO_M5,5,10,15);

CIchimoku ind1(GBPUSD,0,10,25,30,2);

Como resultado, temos dois indicadores, o primeiro no intervalo de tempo m5, enquanto o segundo será sempre deslocado por +2 intervalos de tempo a partir do intervalo de tempo atual do gráfico.

Mas será que antes de acessar indicadores de diferentes prazos, você tem que bater em um pandeiro e fazer alguma dança?

Quem o fará ... bem, aparentemente o usuário - deixe-o aprender zen e o poder do não-chinês simultaneamente :-)

A plataforma representa interfaces convenientes de indicadores e sua decomposição em amortecedores. Então, por que repetir algo que já foi feito e que foi bem feito? Para mostrar que você está familiarizado com a palavra "classe", algo de fato.