Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 374

 
 while (Count < FindPeak)
   {
// - 2 - ======================== Поиск одного экстремума ЗЗ ============================ 
    double ZZCur = 0;
    while(ZZCur == 0 && i < Bars)
      {
       if(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);
       i++;
      }
// - 2 - ============================ Окончание блока ===================================

// - 3 - ======================== Анализ найденного экстремума ========================== 
    if (ZZCur == 0)
      return(False);           // Если ни один из экстремумов не определен, то это ошибка
 
Novaja:

Aqui está outra variante semelhante à sua ... O título do for loop diz i++, então eu removi o aparelho na parte inferior. Eu removi o aparelho porque só há um operador no laço (caso contrário)

 while (Count < FindPeak)
 {
    double ZZCur;
    for(i=0,ZZCur=0; ZZCur==0 && i<Bars; i++)
       if      (iCustom(NULL, 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(NULL, 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);

    if (ZZCur == 0) return(False);   // Если ни один из экстремумов не определен, то это ошибка
.......
}
 
STARIJ:

Aqui está outra variante semelhante à sua ... O cabeçalho do for loop diz i++ então eu os removi na parte inferior. Removido o aparelho de frisar porque há apenas um operador no laço (caso contrário)


Muito obrigado pela alternativa, todos no porquinho mealheiro, precisam ganhar experiência. Então eu também tinha razão, só que as corujas não querem abrir negócios, vou continuar procurando.

 

Olá! Há uma variedade de preços de pedido aberto. Conhecendo o índice desta ordem, como posso determinar seu tipo?

if(index_elementa_masiva=OP_BUY)???
 
vikzip:

Olá! Há uma variedade de preços de pedido aberto. Conhecendo o índice desta ordem, como podemos determinar seu tipo?

Para este tipo de tarefa, não é muito desejável ter uma gama de preços de abertura, pois poderia haver hipoteticamente mais de um pedido com o mesmo preço de abertura.

Mas, em geral, devemos pegar o preço aberto conhecido, percorrer todos os pedidos e selecionar aqueles cujo preço aberto é igual ao da matriz com o índice conhecido.

Então, se houver mais de uma dessas ordens, temos que compará-las por outros critérios, por exemplo, pelo tempo, para entender que esta é a ordem que você precisa.

E se houver apenas uma ordem, então é a ordem certa - sem outra seleção por outros critérios.

 
Artyom Trishkin:

Não é desejável ter uma gama de preços abertos para esta tarefa, pois poderia haver hipoteticamente mais de um pedido com o mesmo preço aberto.

Mas, em geral, devemos pegar o preço aberto conhecido, percorrer todos os pedidos e selecionar aqueles cujo preço aberto é igual ao da matriz pelo índice que você conhece.

Então, se houver mais de uma ordem, devemos compará-las por outros critérios, por exemplo, pelo tempo, para entender que esta é a ordem correta.

E se houver apenas um, então é o correto - sem outra seleção por outros critérios.


Obrigado!

 
Você pode me dizer como escrever uma condição que diga: se os tipos de pedidos são os mesmos?
 bool TYP_A=OrderType;
 bool TYP_B=OrderType;
 if (TYP_A=TYP_B)????
double PriceBlizkoA;                          // Цена выбранного ордера
         bool TYP_A; 
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:  
        if (OrderOpenPrice=PriceBlizkoA);                                     //если цена ордера равна цене заданого   и вот здесь ошибка. Догадываюсь неверно записано условие. Подскажите, что исправить?
         TYP_A=OrderType;   
 
vikzip:
Você pode me dizer como escrever uma condição que soe assim: se os tipos de pedidos forem os mesmos?
Leia o que é um operador de comparação e o que é um operador de tarefas e como elas são escritas.
 
vikzip:
Você poderia me dizer como escrever a condição que soa assim: se os tipos de pedidos são os mesmos?

Isto equivale à mesma coisa:

bool TYP_A=OrderType;
bool TYP_B=OrderType;

bool TYP_A=0; // Buy
bool TYP_B=1; // Sell

Como resultado, obtemos

if(TYP_A) // false
if(TYP_B) // true
Leia o que o Artiom aconselhou.
 

Bom dia a todos!

Por favor, dê-me uma ordem para que o robô não abra mais de 1 pedido por 1 vela.

Mesmo que ele tenha aceitado esta vela - não para abrir a próxima ordem na mesma vela.

Agora, se as condições dos indicadores forem cumpridas - abrir um comércio.

Quando um acordo sobre o take é fechado, ele abre imediatamente um novo negócio no mesmo castiçal, e aqui ele não é mais necessário e cria problemas para mim.

Sinto que é importante dar algum feedback.

Precisa estritamente de 1 vela - 1 negócio.

Muito obrigado de antemão!