[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 35

 
keep87:

double get_extrem(int n) {

   for(int i=1;;i++) {

      double ind=iCustom(Symbol(),0,"indicator_name",0,i);

      if(n>1)  

         if(ind!=0) n--;

         else

         if(ind!=0) return(ind);

      }

   }


Se você precisar do número de barra do pico, mude o tipo de função para int e ao invés de return(ind); escreva return(i);

É nisto que estou pensando no momento. Todas as funções dos tipos duplo e int sempre retornam valores fixos concretos. Por exemplo, 1, 0, -1 e, neste caso, a condição deve ser tratada com esta função de uma maneira diferente da que eu fiz antes, por exemplo

if(FindOrders() > 1)

{

   Ordersend(...........); 

} 

Neste caso, temos que comparar, por exemplo, para 3 tribos:

if (get_extrem(3) == ind)
{
   // Делаем что-то при выполнении заданного условия
}

É esta a forma lógica de escrevê-lo? Talvez seja mais razoável definir o tipo de bool para esta função? Como: se encontramos o terceiro joelho, então ao preço (abaixo ou acima do ind) compramos ou vendemos.

E neste caso, comparamos a função com seu parâmetro de n-limiar com o preço a este joelho, e depois?

 
hoz:

Estou pensando sobre isso no momento. Todas as minhas funções do tipo duplo e int sempre retornam valores fixos específicos. Por exemplo, 1, 0, -1, mas neste caso a condição deve ser realizada com esta função de uma maneira diferente da que eu fazia antes, como por exemplo:

Neste caso, temos que comparar, por exemplo, para 3 tribos:

É esta a forma lógica de escrevê-lo? Talvez seja mais razoável definir o tipo de bool para esta função? Como: se encontramos o terceiro joelho, compramos ou vendemos a um preço (menor ou maior que o ind).

Neste caso, comparamos a função com seu parâmetro n joelho com o preço a este joelho, e depois?



double ind=iCustom(Symbol(),0,"indicator_name",0,i);

Duplo ind pode retornar -2, -3 e assim por diante e até Pi 3.14159......

E neste caso, estamos comparando a função com seus parâmetros n-knee com o preço a este joelho, e depois? Não é bem claro....

 
hoz:

Estou pensando sobre isso no momento. Todas as minhas funções do tipo duplo e int sempre retornam valores fixos específicos. Por exemplo, 1, 0, -1, mas neste caso a condição deve ser realizada com esta função de uma maneira diferente da que eu fazia antes, como por exemplo:

Neste caso, temos que comparar, por exemplo, para 3 tribos:

É esta a forma lógica de escrevê-lo? Talvez seja mais razoável definir o tipo de bool para esta função? Como: se encontramos o terceiro joelho, compramos ou vendemos a um preço (menor ou maior que o ind).

E neste caso, comparamos a função com seu parâmetro n-knee com o preço a este joelho, e depois?



Bem, não, tente fazer experiências...... é tudo besteira......
 
Sepulca:


Duplo ind pode retornar -2, -3 e assim por diante e até Pi 3.14159......

E neste caso, comparamos a função com seus parâmetros n-knee com o preço a este joelho, e depois?


Por que devemos fazer isso de repente? O ind duplo devolverá um número fracionário... e -2, -3 ... são números inteiros. E, pelo que entendi, oind duplo é o preço no joelho no parâmetroget_extrem(int n)
 
Sepulca:



Este site não é para negociação... É dedicado principalmente à programação MQL. Se você prestasse atenção em muitos códigos, eles até advertiam "Não para comércio real".

E onde está o prof. que negocia como um prof. E se os administradores descobrissem desta forma, acho que não se dariam ao trabalho de manter o site ...)

Como ervilhas em uma parede ).

O que precisamos é de um exemplo de compra adequada, em qualquer período de tempo escolhido aleatoriamente.

Sim, eles não escrevem para o comércio real... E daí, e por quê?

Por que não mostrar um exemplo para um comércio real, sem anunciar a estratégia?

Ou, em princípio, não há um exemplo adequado.

 

Boa tarde. Você pode me dizer como obter o parâmetro Heiken Ashi(HA) Hi-Lo (amplitude) do indicador correspondente . Eu tentei lidar com as variáveis globais, mas não é tão fácil. No código HA eu tenho embutido o seguinte modo

int start()

{

duplo haOpen, haHigh, haLow, haClose

...

GlobalVariableGet(pip);

...(este é o código padrão com cálculo de HA)

em seguida, obtemos os parâmetros dos castiçais Hi-Lo HA

resultado2=MathMin(ExtMapBuffer3[pos+1],ExtMapBuffer4[pos+1])

resultado22=MathMax(ExtMapBuffer3[pos+1],ExtMapBuffer4[pos+1])

resultado3=MathMin(Baixo[pos+1],resultado2);

resultado33=MathMax(Alta[pos+1],resultado22);

resultado0=resultado33-resultado3; / cálculo da amplitude HA

GlobalVariableSet(pip,resultado0);/assignar valor de amplitude a GlobalVariableSet (pip,resultado0)

pos--;

}

//----

retorno(0);

}

Então eu apenas inseriGlobalVariableGet(pip) na fórmula em EA,mas algo está totalmente errado, ou seja, o valor do pip não é o que deveria ser. Por favor, diga-me o que está errado. Ou talvez seja mais fácil obter a amplitude HA para a operação da EA.

 
Saudações a todos. Eu mesmo sou novo em programação, portanto, por favor, resolva o problema.

É necessário que vários EAs na mesma conta, abram um número limitado de pedidos.

Por exemplo: 10 EAs mas só pode abrir 5 pedidos, mas não mais de um por par de moedas.

Isto é implementado da seguinte forma, mas não funciona dessa forma.

extern int МаксКолОрдеров   = 5;

//+------------------------------------------------------------------+

int ПодсчетОткрОрдеров() {
  int k=OrdersTotal();
   if (Символ=="0") Символ=Symbol();
    for (int i=МаксКолОрдеров; i<k; i++) {
     if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Символ || Символ=="") {
       if (МагикНомер<0 || OrderMagicNumber()==МагикНомер) {
      if (OrderMagicNumber()<1) return(True);
     }
    }
   }
  }
 return;

}

//+------------------------------------------------------------------+
int start()
  {
   if(ПодсчетОткрОрдеров()==0)ПровТоргУсловий();
   }

 
evgenGX:

1. Fui questionado acima sobre variáveis globais, obrigado. Estou lendo a documentação. Em sua versão, como é feito ?

2. Quero que o Expert Advisor não volte a entrar no mercado depois de atingir um lucro, até a confirmação manual da autorização de comercialização.


1. O nível de lucro em cada barra é monitorado. Se exceder a porcentagem especificada do depósito, todos os negócios são fechados.

2. Veja e edite este Expert Advisor, adicione filtro no magik e tudo o que você precisar...


 

Ajude-me a completar o código. Tentei escrever um código que dizia:

-se MA50 cruzar MA200 de baixo para cima e depois

-se o preço descer para МА50

-dois linhas são desenhadas no gráfico, suporte e resistência (desenhadas para as últimas 15 barras);

É como se tudo funcionasse, mas não posso garantir que estas linhas tenham aparecido da primeira vez, depois permanecido no lugar, precisa do algoritmo comercial(e elas continuam a ser desenhadas).

Posso amarrá-los ao tempo ou à barra?

Aqui está o código. O que eu preciso acrescentar?

#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


bool  Fact_1 = false;                    // Глобальная перемен для бай.   
bool  Fact_2 = false;                    // Глобальная перемен для бай
bool  Fact_3 = false;                    // Глобальная перемен для бай

double support;
double resist;

 int timeFrame = 5;
 int numBars = 15;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

  ObjectsDeleteAll(); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----


   //---------------------------------------------------------------------------
if (Fact_3==true)                            //Если событие уже..
         
                                              //..было, то выходим
     return(0);
 
//----

  //---- БЛОК ОТКРЫТИЯ  BUY--------------------------------------------------------------
 
 if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true;       // Произошло событие 1 
//-
if (Fact_1 == true &&  Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
 Fact_2 = true; // Произошло событие 2 
 if (Fact_2 == true)

{
// Определяем линии поддержки\сопротивления
  support = 10000;
  resist = 0;
 
  for(int u = 1;u<=numBars;u++)
  {
   if(support>iLow(Symbol(),timeFrame,u))
     support = iLow(Symbol(),timeFrame,u);
   if(resist<iHigh(Symbol(),timeFrame,u))
     resist = iHigh(Symbol(),timeFrame,u);
  }  
   ObjectSet("lineSupport",OBJPROP_PRICE1,support);
  ObjectSet("lineResist",OBJPROP_PRICE1,resist);
 
 }


 //----
  {
    ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
    ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
   
    ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
    ObjectSet("lineResist",OBJPROP_COLOR,Red);
    }
//----

//что сюда добавить что бы линии появившись, оставались на месте?




//----
   return(0);
  }

 

O que vai acontecer, o que pode acontecer se

Normalmente são colocados +- 2 pontos.

A resposta é um requote.

E se não for definido um valor de deslizamento, é garantido comprar?