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

 
splxgf >>:

Michey25


когда я отвечал код был несколько другим;)

хотя есть некоторые вопросы, результат опен(0) сильно зависит от текущего тайфрейма. непонятно откуда берутся cn и какого они типа.

Сделать Alert(Open[0],cn1,Open[0]<cn1,a,(a-cn1)<0.0008) религия не позволяет?

До кучи вместо i=1 лучше юзать break, это сделает выход из цикла сразу, а не будет прогонять все команды до конца.

int i=0;
   double a, b;
   while ( i==0)
   {
     a=MarketInfo("USDCAD", MODE_ASK);
     b=MarketInfo("USDCAD", MODE_BID); 
     if((Open[0]< cn1)&&(( a- cn1)<0.0008))
      {
       OrderSend("USDCAD",OP_BUY,1, a,1, SL, cn2);
       i=1;
       }
     if((Open[0]> cn11)&&(( cn11- b)<0.0008))
      {
       OrderSend("USDCAD",OP_SELL,1, b,1, SL1, cn21);
       i=1;
      }  
   }

cn, sl, cn2... Todos eles são duplos e são parâmetros de entrada, e eu os inseri quando anexei a EA ao gráfico. O que o Alert tem a ver com isso?

 
Rita >>:

В чем тут может быть причина, пож. подскажите ?

for(k = 0; k < iBars( Symbol_1,Period()); k++)

Ele executa um loop em todas as barras e depois tem mais um loop embutido onde na primeira chamada todas as barras são consideradas porque o valor limite é novamente igual ao número de barras na janela. No total, obtemos o ciclo pelo número de barras ao quadrado, que é um pouco redundante para uma tarefa tão simples
 
Michey25 >>:

cn, sl, cn2... все типа double и являются входными параметрами, я их ввожу когда прикрепляю советник к графику. И причем здесь Alert?


Você pode exibir valores variáveis e resultados de uma condição com um alerta, adicionar um "se" antes de cada um e ver o resultado. Este é um método comum para a depuração de programas para que você não tenha que adivinhar e pesquisar.

 

Obrigado. Então no início da função start() eu tenho que fazer algumas condições gerente, que define a chamada de funções que retornam o controle ao terminal e então, quando um novo tick é recebido, este gerente vai trabalhar novamente? Bem... Terei que retrabalhar completamente a lógica do programa...


Então o teste falha porque o testador fica esperando por um novo tick? Será que funcionará em tempo real? Um... É importante poder testá-lo sobre a história. Vou pensar sobre isso. Obrigado.

 
Jahspear >>:

Спасибо. То есть надо сделать в начале функции start() некий диспетчер условий, которые определяют вызов соответствующих ситуации функций, каждая из которые возвращают управление терминалу и дальше по получению нового тика этот диспетчер снова отрабатывает? Мдаа... придется полностью переделывать логику программы...


То есть тест не проходит, потому что тестер зависает в ожидании нового тика? А в реалтайме работать будет? Гм... все-таки возможностьоттестировать на истории это важно. Буду думать. Спасибо.

Deve funcionar em tempo real, o Expert Advisor é executado em uma linha separada e pode pensar o tempo que quiser, e o RefreshRates permite o acesso às cotações atuais.

 
ntmmm >>:

Добрый день!

Подскажите пожалуйчта, как написать простой индикатор, который бы выделял определенный бар (должно задаваться в опциях), например в 12.30 вертикальной линией и подписать дни недели на графике (скажем где-то над хаем каждого дня)?

Спасибо!

levar https://www.mql5.com/ru/articles/1382 e arquivá-lo

 
splxgf >>:

В реалтайме работать должно, эксперт выполняется отдельным потоком и может думать сколько ему взблагорассудится, а RefreshRates позволяет получать доступ к актуальным котировкам.

Obrigado. Estou atualmente reelaborando a lógica do programa para que ele não tenha loops. Há mais uma questão que não está muito clara.

Sleep(100);


É quanto tempo em segundos?

E ele pode ser usado em qualquer lugar, não apenas em laços?

Para que quando uma condição é cumprida, você não reaja imediatamente, mas espere por um tempo determinado e verifique novamente, e então execute.

E não vai pendurar o testador?

 

ntmmm писал(а) >>

...Você poderia me dizer como escrever um indicador simples que destacaria uma determinada barra (deve ser definido nas opções), por exemplo, às 12h30 com uma linha vertical e assinar os dias da semana no gráfico (digamos em algum lugar acima do hai de cada dia)?

Conjunto de indicadores iTime

 
Jahspear >>:

Это сколько по времени в секундах?

И может ли использоваться не только в циклах, а в любом месте?

Чтобы при выполнении условия не сразу реагировать, а подождать заданное время и снова проверить, а потом уже выполнять.

И не повесит ли это тестер?

1. 0,1 (ponto zero um décimo)

2. Pode estar em qualquer lugar

3. Não será enforcado por si só, mas se você se decidir por isso... :)

 
alsu >>:

Obrigado!