Script MQL4 - aberto na nova questão do bar
Página 1 de 743 1 2 3 ÚltimaÚltima
Results 1 to 10 of 23

Thread: Script MQL4 - aberto na nova questão do bar

  1. #1
    Oi,

    Como há um EA já em execução no (s) meu (s) gráfico (s), quero ter meu script disponível em três (ou menos ou mais, não importa no entanto 1 n, ngt; = 0 negociações se implementadas), o primeiro quando Ele é implementado no gráfico junto com o restante, um por novo pub.

    Atualmente, esta é a maneira como a lógica se parece, no entanto, isso só abre o comércio inicial, permanece no gráfico, mas não abre os próximos poucos negócios.
    É provavelmente algo estúpido, mas estou cansado e apareci no código a maioria das minhas horas de vigília até agora e estou sentindo falta dele.
    Ou posso perder completamente a lógica.

    De qualquer forma, qualquer ajuda será muito apreciada.


    Código inserido int ExtraTrades = 3; datetime stopper = Hora # 91; 0 # 93 ;; int contador = 1;/p ----------------------------------------------- ------------------- /| É novo bar |/p ----------------------------------------------- ------------------- bool IsNewBar () if (stopper == Tempo # 91; 1 # 93; -RRB- stopper = Tempo # 91; 0 # 93; ; return true; senão retorna false;/ --------------------------------------- --------------------------- void start () while (contador lt; = ExtraTrades) if (contador == 1) OpenIt () ; contador ; if (IsNewBar ()) OpenIt (); contador ; contador = 1;

  2. #2
    Bem, depois de alguma depuração, parece que o IsNewBar () não está avaliando corretamente. Eu não sei porque. Funcionaria para um EA, mas talvez não para um script? Código agora aparece assim Código inserido/ ---------------------------------------- -------------------------- /| é novo bar |/ ----------------------------------------------- ------------------- bool IsNewBar () if (stopper == Tempo # 91; 1 # 93; -RRB- stopper = Tempo # 91; 0 # 93; ; return true; senão retorna false;/ --------------------------------------- --------------------------- void start () OpenIt (); while (contador lt; = ExtraTrades) if (IsNewBar ()) Abra();

  3. #3

    Por que pode funcionar para um EA, mas não para obter um script?
    Scripts são (muito mais) planejados como executar uma vez. AFAIK eles não recebem (preço etc) atualizações. Se você precisar de dados, você precisa fazer um levantamento. Tente algo em conjunto este (pseudo) código: Tempo de código inserido = 0 count = 0 while count lt; meta se tempo! = iTime (..., 0) se disponível () count time = iTime (..., 0) Sleep (100)

  4. #4

    Os scripts são (mais) significados como uma vez. AFAIK eles não recebem (preço etc) atualizações. Se você precisar de dados atualizados, será necessário fazer uma pesquisa. Tente algo ao longo deste (pseudo) código: period = 0 count = 0 while count lt; meta se tempo! = iTime (..., 0) se disponível () count período = iTime (..., 0) Sleep (100)
    Obrigado por responder. Eu substitui o IsNewBar com rolha! = iTime (Symbol (), PERIOD_CURRENT, 0) mas ainda assim, não está passando pela atualização if ou talvez. Eu não consigo dormir porque vai rodar Renko, eu posso perder um barentrada quando o sono for grande o suficiente.

  5. #5

    citação Obrigado por responder. Eu substituí o IsNewBar com rolha! = iTime (Symbol (), PERIOD_CURRENT, 0), mas, no entanto, não está passando pelo if ou talvez pela atualização. Quando o sono é grande 26, eu não posso dormir, porque ele vai correr em Renko, eu poderia perder um barentrada.
    Lamentavelmente, temos que agir com força bruta com RefreshRates (). O MetaTrader é ruim. Isso funciona: Inserido Código #property strict void OnStart () datetime time = 0; int count = 0; int target = 3; while ((count lt; target)! IsStopped ()) if (tempo! = iTime (_Symbol, PERIOD_CURRENT, 0)) contagem ; Imprimir (hora alterada:, contar); time = iTime (_Symbol, PERIOD_CURRENT, 0); Sono (1); RefreshRates ();

  6. #6

    Citação Lamentavelmente, devemos agir com força bruta junto com RefreshRates (). O MetaTrader é horrível. Isso funciona: #property strict void OnStart () datetime period = 0; int count = 0; int target = 3; while ((count lt; target)! IsStopped ()) if (tempo! = iTime (_Symbol, PERIOD_CURRENT, 0)) contagem ; Imprimir (hora alterada:, contar); period = iTime (_Symbol, PERIOD_CURRENT, 0); Sono (1); RefreshRates ();
    Obrigado por isso, se eu tivesse visto isso mais cedo, pode ter me salvado a cabeça contra tudo o que veio antes que eu descobrisse que o RefreshRates () era o infrator. Eu fiz isso usando o trabalho Bares, não tenho certeza se é à prova de bala, mas acho que é o truque, também Código Inserido void start () OpenIt (); RefreshRates (); int nBars = Barras (símbolo (), PERIOD_CURRENT); while (contador lt; = ExtraTrades) RefreshRates (); deve (nBars lt; Barras (símbolo (), PERIOD_CURRENT)) OpenIt (); nBars = Barras (símbolo (), PERIOD_CURRENT);

  7. #7
    Código inserido datetime estático T0;/p ----------------------------------------------- ------------------- int OnInit () T0 = Hora # 91; 0 # 93 ;;/ou T0 = 0; ??? Retorno (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- void OnTick () if (T0!) = Tempo # 91; 0 # 93; -RRB- T0 = Tempo # 91; 0 # 93 ;; RefreshRates (); Abra(); ...

  8. #8

    datetime estático T0;/p ----------------------------------------------- ------------------- int OnInit () T0 = Timing [0];/ou T0 = 0; ??? Retorno (INIT_SUCCEEDED);/ ----------------------------------------------- ------------------- void OnTick () if (T0! = Timing [0]) T0 = Timing [0]; RefreshRates (); Abra(); ...
    Obrigado, estou fazendo algo parecido com o meu EA, mas não tenho certeza se o OnTick é válido para um script.

  9. #9

    Citação Obrigado, estou fazendo algo similar no meu EA, mas não tenho certeza se o OnTick é legítimo para um script.
    Use OnStart () em vez OnTick (), todas as funções em vez disso

  10. #10
    Código Inserido #property strictent #property show_inputs enter int ExtraTrades = 10; datetime estático T0;/ ----------------------------------------------- ------------------- void OnStart () int contador = 0; T0 = ​​0; while (! IsStopped () counterlt; ExtraTrades) if (T0!) = Tempo # 91; 0 # 93; -RRB- T0 = Tempo # 91; 0 # 93 ;; RefreshRates (); Abra(); deslocamento ; Sono (1000);/ ----------------------------------------------- -------------------

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.