[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 459

 
kara100 >>:

Здравствуйте, все! Подскажите, плз, как вытащить из индикатора +МР, сами значения уровней для использования в советнике?

Você pode tentar usar ObjectGet(). Observe a linha DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false);

 
Necron писал(а) >>

Você pode tentar usar ObjectGet(). Observe a linha DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false);

Obrigado

 
Andrew_Filinsky >>:

Здравствуйте. Я начинающий трейдер, придумал торговую стратегию, написал советника, при его работе на демосчёте возникла следующая проблема:

Советник иногда зависает во время выполнения операции OrderSend(). Выглядит это так: в вечером запустил советник, утром обнаруживаю, что советник завис в 3 часа ночи. В логе присутствует сообщение "Выполнение команды началось ...", сообщения "... Выполнение команды закончилось" нет. Терминал MT4 работает, получение котировок происходит, котировки отображаются на графике инструмента, на котором работает советник, советник висит. Ситуация возникает неоднократно, после перезапуска терминала ошибка может повториться через несколько часов.

Вопросы:

В чём причина зависания советника? Как устранить зависание?

Вот фрагмент соответствующего кода:

Дополнительная информация: использую GPRS-модем, включён круглосуточно, обрывов связи с потерей коннекта в течение работы советника не наблюдается, программ для анализа сетевого трафика специально не устанавливал, работает только стандартный брандмауэр WinXP.

Поискал по форуму, подходящего описания такой проблемы, её причин и способов их устранения не нашёл.

( Такое ощущение, что проблема возникла на ровном месте. Вообще не представляю, как такие фундаментальные вещи могут не работать )

Tente executar um script em loop paralelo ao EA que será atualizado se houver um erro com uma freqüência de 3000 deslizes (3 segundos).

Acho que o problema pode ser resolvido por um pedido regular (independentemente de carrapatos).

Você atualiza se houver um carrapato, mas se houver um carrapato, por que atualizar?

portanto, somente um roteiro em loop pode ajudar.

int start()
{//+----------------------------------------------+
 while(!IsStopped())
   {if(!IsConnected())RefreshRates();
    Sleep(3000);
   }
return(0);
}//+----------------------------------------------+

Escrevi-o diretamente no Mozilla sem verificar se funciona).

 
Rover82 >>:

вот.

Verifique, meu indicador não é exibido (há um .csv necessário lá). A definição dos rótulos deve ser verdadeira

Arquivos anexados:
optlev_1.mq4  15 kb
 
Necron >>:

Проверьте, у меня не отображается индикатор (там .csv нужен какой-то). В настройках labels должно быть true

Necron, muito obrigado, funciona... Sim Sei que o próprio indicador requer dados externos....

 
Por favor, ajude-me a fechar uma posição!!! Tenho 3 pedidos de COMPRA, sai um sinal para fechar uma posição de COMPRA e o último pedido que abri está fechado, mas preciso fechar o primeiro (o mais antigo) Muito obrigado!
 

No MT4 há duas janelas abertas horizontalmente (em diferentes períodos de tempo) para cada par de moedas.

- Existe alguma forma de ligá-los? - Quando pressiono uma, a segunda sobe junto com a primeira.

(ouvi dizer que há programas que permitem ligar janelas, mas não sei se funcionam com MT)

 
splxgf писал(а) >>

É melhor mudar para ADSL ou outro tipo de conexão. Não vejo como você pode trabalhar com gprs de maneira alguma.

Oassessor às vezes fica pendurado durante a OrderSend() ...

... Uso modem GPRS, está ligado 24 horas por dia, sem interrupções de conexão com perda de conectividade durante o trabalho EA, não instalei nenhum software para analisar o tráfego de rede, apenas o firewall padrão WinXP.

[Na verdade, 10MB de tráfego por dia e 0,8 (sic!) kilobits por segundo, que é 50 vezes menor que a largura de banda da classe 10 da gprs, é suficiente para trabalhar on-line em seis grandes pares de moedas. É importante que não haja conexões descartadas, e que haja pouco atraso na entrega de um pacote de e para o corretor. Do telefone via GPRS a largura de banda era suficiente, mas houve interrupções. Agora via modem fixo GPRS/EDGE minha conexão é boa por 24 horas sem interrupções, a largura de banda para o terminal MT4 é ainda melhor. [Fim da digressão lírica]

Encontrei e corrigi experimentalmente a fonte do problema. A fonte era apenas um firewall WinXP, que parecia interferir no processo de transmissão de dados do terminal MT para o servidor DC e distorcê-lo. E o que é interessante, as posições foram abertas, fechadas e modificadas manualmente, mas o roteiro do Expert Advisor - poof. O problema com as pendências foi resolvido depois de adicionar o MetaTrader à lista de exceções do firewall WinXP.

Obrigado a todos vocês, obrigado pela ajuda potencial.

 
Советник иногда зависает во время выполнения операции OrderSend().

Urain escreveu :>>

Tente executar o script em loop paralelo à EA que se atualiza em caso de não comprometimento com freqüência de 3000 deslizes (3 seg). Acho que o problema pode ser resolvido por um pedido regular (independentemente de carrapatos).

Obrigado, eu já encontrei a causa do problema e a solução. Na verdade, a conexão não foi a lugar algum, ela tem se mantido estável sem interrupções por vários dias. O problema acabou sendo causado pela atividade do firewall WinXP, e é resolvido pela adição do MetaEditor a sua lista de exceções.

 
Boa noite a todos! Alguém pode me dizer como fechar um pedido, selecionar o primeiro pedido e fechá-lo?
while(true)                                  // Цикл закрытия орд.
     {
      if ( Tip==0 && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         
         Ans=OrderClose( Ticket, Lot,Bid,2);      // Закрытие Buy
         if ( Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }

POR FAVOR AJUDA!!!