[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 995

 
Olá a todos, avisem se é possível (se o preço subir, o pedido permanece aberto, mas se o preço caiu em 2 pontos, fechem o pedido) avisem como fazê-lo corretamente
if (iMomentum(NULL,0,-2,PRICE_HIGH,0)) 
      {
      OrderClose(OrderTicket(),OrderLots(),0,Bid,Violet);
 
artmedia70:

Eu não entendo... Por que você precisa calcular o spread médio por n-número de barras da história na função de definir critérios comerciais?

Se você vai usar funções do livro didático do Reino Unido, então faria mais sentido fazê-lo na função Eventos().

É isso mesmo, veja como a SK sugere acompanhar a mudança no StopLevel do corretor. O que o impede de rastrear exatamente da mesma forma a mudança de spread e, se houver um, inserir o próximo valor na matriz. Bem, e ao preencher a matriz calcule sua "temperatura média no hospital" (c) SK ...

A idéia é que em diferentes momentos do dia há diferentes spreads e às vezes meu sistema de negociação negociará com sucesso em um spread médio de digamos 12 pontos, e no spread de 6 pontos estará perdendo e vice-versa, se eu ajustar o spread 6, então no spread 12 ele perderá dinheiro. Quero dizer, os níveis de ordens pendentes dependem deste parâmetro, postarei todas as minhas idéias mais tarde, mas agora tenho que fazer algo passo a passo para não fazer as pessoas rirem, Se eu abri uma ordem com um take e uma parada e ela está no mercado, ela está no plus por 100 pips em cinco dígitos e o take estava originalmente em 150 pips, mas agora está no plus, não posso parar o prejuízo ou ter lucro se eu estabelecer um stop-loss e take-take e se o preço estiver perto da zona não posso fechar o prejuízo ou ter lucro. como resultado, o sistema funcionou corretamente, dei um comando de inversão, mas o terminal falhou e o preço caiu sem tomar uma posição de Venda e sem tomar uma posição de Compra

Como você luta contra isso?

 
ex_kalibur:

A idéia é que em diferentes momentos do dia há diferentes spreads, e acontece que com um spread médio, meu sistema de negociação negociará com sucesso em um spread de, digamos, 12 pontos, e com um spread de 6 pontos perderá dinheiro. Se eu ajustar o spread para 6 então em 12 pontos ele perderá dinheiro, e este parâmetro depende dos níveis de ordens pendentes, postarei o plano inteiro mais tarde, mas agora tenho que fazer algo passo a passo para não fazer as pessoas rirem, Se eu abri uma ordem com um take e uma parada e ela está no mercado, ela está no plus por 100 pips em cinco dígitos e o take estava originalmente em 150 pips, mas agora está no plus, não posso parar o prejuízo ou ter lucro se eu estabelecer um stop-loss e take-take e se o preço estiver perto da zona não posso fechar o prejuízo ou ter lucro. como resultado, o sistema funcionou corretamente, dei um comando de inversão, mas o terminal falhou e o preço caiu sem tomar uma posição de Venda e sem tomar uma posição de Compra

Como posso lutar contra isso?

Parece que você está no lugar certo...
 
Só estou programando há três dias, não consigo descobrir como escrever a parte de parada de trilha do programa.

O problema é que tudo funciona, MAS! move o stop loss tanto para um lado quanto para o outro, o que devo acrescentar para que mova o stop loss somente para o lado do comércio aberto!?

Aqui é basicamente meu:

if (Ticket> 0)
{
if (Opn_B == verdadeiro)
{
SL = Ask - TS*Point;
Ticket= OrderModify(Ticket,Price,SL,TP,0);
}
if (Opn_S == verdadeiro)
{
SL = Ask + TS*Point;
Ticket= OrderModify(Ticket,Price,SL,TP,0);
}
}
 

ex_kalibur obrigado pela caixa de entrada, eu lhe enviarei um e-mail um dia destes.

 
ZahvatkiN:

ex_kalibur obrigado pela caixa de entrada, eu lhe enviarei um e-mail um dia destes.

Desculpe-me?
 

Boa noite!

Você pode me dizer como eu posso exportar dados de um gráfico(valores indicadores) do Metatrader 4 para o Exel?

Eu ficaria feliz em receber ajuda e dicas :)

 
Imprimir o ajudará :)
 

Caro artmedia70, estou muito grato por você estar ajudando ativamente neste tópico, os seguintes escritos são dirigidos principalmente a você, mas se houver mais profissionais, por favor, não passe por aqui e ajude, pois num conto de fadas, quanto mais longe na floresta, mais lenha, como resultado do enrolamento, eu bato numa parede, e realmente preciso de ajuda, espero que esta estratégia seja implementada e que muitos iniciantes ganhem experiência em uma programação consistente e eficaz

o problema é este:

1. encontrar as variáveis Baixa e Alta (o processo de encontrar cada uma delas permanece diferente)

2. é necessário calcular o spread médio para os últimos N ticks (a variável N no externo)

3. assumindo Alto - Baixo > do que a média espalhada em k partes da largura do canal (por exemplo, 2/3 ou no mínimo 1/3 da largura do canal)

4. uma vez satisfeitas estas condições, são feitas encomendas pendentes:

- acima da linha Alta - Venda

- abaixo da linha Low - Bay

As encomendas são feitas para ambos os lados usando a grade:

*O pedido de Venda mais próximo será o volume mínimo, e é colocado, se possível, no nível de Alta,

* O próximo pedido será colocado a uma distância de Alto + um certo número de pontos (por exemplo: Alto + (Alto - Baixo))

* O número total de ordens deve ser definido em uma variável externa, neste caso cada ordem não tem um volume igual (por exemplo, o primeiro 0,1, o segundo 0,2, o terceiro 0,3 etc. Aqui assumimos diferentes métodos para aumentar os volumes em progressão aritmética ou em progressão geométrica, decidiremos aqui mais tarde, respectivamente, este bloco deve ser definido em uma função separada)

* StopLoss é exposto da seguinte forma: em configurações externas especificamos o SL desejado, então no primeiro SL (é o menor) é igual a StopLoss (das configurações), cada StopLoss subseqüente será igual ao mesmo valor do primeiro (para 0,1 = 60 pontos, para 0,2 = 40 pontos), ou seja, no caso de um acionamento de um StopLoss na menor ordem, todas as ordens serão fechadas de uma só vez

* Take Profit é igual a (Alto -Baixo)* Ponto + Preço Aberto

*Condições de fechamento do mercado:

baía aberta...

Se a ordem está em lucro, o Alto nível mudou e se tornou inferior ao valor anterior, Bid>= Alto, StopLewel permite fechar a ordem, então todas as ordens abertas do tipo Bay são fechadas, a partir do maior volume de nosso instrumento

*Condições de abertura de acordo com o mercado:

se Bay ==0, e ao mesmo tempo Bid < Low e ao mesmo tempo Ask < High + average spread, então abrimos com o volume mínimo permitido e apagamos a ordem pendente deste tipo com o volume mínimo (se as condições permitirem)

se durante a negociação, uma nova ordem pendente abrir com um valor maior do que a primeira e fechar pelo mesmo preço fechado, abrimos uma nova ordem pendente com o mesmo volume, pelo mesmo preço que foi fechado (se as condições permitirem) e se for impossível colocar uma ordem pendente, e após o fechamento da última ordem, o preço cruza novamente o preço aberto da última ordem fechada então

voltamos ao mercado com o mesmo volume e ao mesmo preço com + escorregamento

* Depois que a primeira ordem (é a ordem com o volume mínimo) for fechada, todas as ordens de compra pendentes serão apagadas, assume-se que não deve haver mais ordens abertas, então a ordem é recalculada e a grade está sendo lançada novamente.

* Todas as ordens abertas estão sendo calculadas para o tipo de ordem oposta e, respectivamente, uma grade com o tipo de ordem oposta está sendo atirada.

* Não é permitida a abertura de pedidos opostos enquanto o primeiro pedido (com o volume mínimo) estiver aberto.

5. Cálculo do volume do lote, permitido ou fixo ou percentual nas configurações:

Se todos os pedidos tiverem um volume fixo - todos os pedidos com um volume fixo

-com fixa - o volume total de todos os pedidos em caso de fechamento da grade (série) por um stop loss, não deve exceder a perda em % permitida.

de acordo com isso, os volumes são calculados na ordem em que o máximo é o mais distante do preço atual e com o mínimo de perda e os mais próximos do preço são os mínimos (

Exemplo de série 0.1\0.2\0.3\0.4\0.5 assim - se tivermos dinheiro suficiente e a % permite abrir nesta ordem

série 0.1\0.1\0.1\0.2\0.3 - neste caso não temos dinheiro suficiente para toda a série

6. bloco de cálculo do depósito mínimo

* em nenhum lugar ocorre o cálculo da possível perda máxima é calculada com base nos valores das variáveis Alta,Baixa é considerado que todas as ordens pendentes serão abertas, e serão fechadas no Stop Loss, de acordo com o que a perda dada deve fazer alguma porcentagem do depósito, sobre o que após os cálculos o trader recebe uma mensagem:

"com a % de risco escolhida, se as ordens forem fechadas por um stop loss, você incorrerá em uma perda de ...",

ou "não há dinheiro suficiente para implementar uma série stop, o Expert Advisor não está funcionando".

7. Eu tenho apenas uma função: acompanhar os eventos, informativo, gostaria de ver os erros como se estivessem em um livro.

8. e provavelmente o último, algum "botão" ou uma função especial que quando você clica nele (ou muda as configurações), todas as ordens pendentes do tipo oposto às abertas (se o mercado é comprado, então todas são removidas) são apagadas, e o especialista trabalha até que a série seja fechada

gostaria de pedir-lhe que escrevesse um programa de acordo com a estrutura do livro https://book.mql4.com/ru/build/index.

para fazer isso neste post, anexarei todos os arquivos do livro, e em cada um desses arquivos começará o trabalho, após a conclusão de cada arquivo individual será salvo e também anexado ao público, após a conclusão do programa de codificação também será postado neste fórum

aviso desde já que esta ideia é de natureza exclusivamente cognitiva e educativa, e não garante que, após a conclusão do perito, será lucrativa, diz respeito a todos os pólipos que passam dias e horas à procura de grãos, e querem esmagar o rabo de outro porco-espinho ))))

Meu objetivo pessoal ao completar a programação é aprender a codificar nesta estrutura, isto é, com todas as regras: comentários, funções individuais, arquivos externos, trabalho com as bibliotecas e coisas do gênero.

 

A primeira etapa é muito importante, acho que é até básica, é um termo de referência corretamente formulado, acessível, para que o programador entenda o que é necessário dele

Então estou esperando por comentários sobre meu esboço, vamos escrever um ToR correto e então vamos começar