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

 
Craft:

O testador não relata nenhum erro, apenas não são feitos pedidos.

Por favor, aponte o erro, a lógica: se o valor de MA [0] da barra é maior que MA [1] você tem que comprar, ao contrário - vender (este código foi escrito como um exemplo para tentar entender uma condição simples e criar uma condição mais complicada).


Este código não usa MA[0] e MA[1] mas MA[j] e MA[j+1];

Após uma pequena revisão do código (muito pequena), apareceu o erro 4107

Posso fazer com que funcione, mas será uma EA totalmente diferente. Estou simplificando-o ao máximo. E aqui o código pode ser reduzido para mais da metade.

Se as Paradas e Aquisições forem iguais a zero, o Expert Advisor começa a abrir negócios

 
Vinin: Posso fazê-lo funcionar, mas será uma EA completamente diferente. Estou simplificando o máximo possível. E aqui o código pode ser reduzido em mais da metade.
Vinin, se você pode fazer com que funcione com fechamento em parada ou lucro, o principal para mim é sentir a filosofia da mql ao abordar diferentes barras na matriz.
 
Boa noite! Os indicadores MQL4 não estão funcionando quando os puxo para a tabela, mas nada! Por favor, ajude-me!
resposta


A questão é que os conselheiros trabalham e os indicadores não funcionam de forma alguma!
 
Craft:
Vinin, se você pode fazer com que funcione com fechamento em parada ou lucro, o principal é sentir a filosofia do mql ao abordar diferentes barras em uma matriz.

Eu o verifiquei. Funciona. O sinal é uma mudança de direção
Arquivos anexados:
15.2_1.mq4  18 kb
 
Craft:
Bom, mas como funciona em código (lógica): Se MA150+20 > MA5 > MA150-20 e MA150+20 > MA21 > MA150-20, então Tendência plana.
A lógica está em algum lugar por aqui... Eu fiz isso rápido, desculpe-me, se alguma coisa...


//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//------------------------------- Функция определения тренда по МАшкам ----------------------------
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
// Возврвщает 1 = тренд вверх, -1 = тренд вниз, 0 = флэт...
//------------------------------------------------------------
// -------------- Внешние переменные -------------
//============================================================
extern string  MATrendDetectorParameters = "Параметры детектора тренда";

extern double  Limit150 =20;
extern double  Limit21  =20;
extern double  Limit5   =20;

// ===============================================================
// ---------------------- Собственно сама функция ----------------
// ===============================================================
int   TrendDetectorMA (string sy, int tf)
{

double   MA150, MA150UP, MA150DN,
         MA21, MA21UP, MA21DN,
         MA5, MA5UP, MA5DN,
         
         pt;
// ---------------------------------------
   pt=Point;
   
   if (sy=="" || sy=="0") sy=Symbol();
      
   MA150    =iMA(sy,tf,150,0,MODE_SMA, PRICE_MEDIAN,1);
   MA21     =iMA(sy,tf,21,0,MODE_SMA, PRICE_MEDIAN,1);
   MA5      =iMA(sy,tf,5,0,MODE_SMA, PRICE_MEDIAN,1);
    
   MA150UP  =MA150+Limit150*pt;
   MA150DN  =MA150-Limit150*pt;
   
   MA21UP   =MA21+Limit21*pt;
   MA21DN   =MA21-Limit21*pt;
   
   MA5UP    =MA5+Limit5*pt;
   MA5DN    =MA5-Limit5*pt;
   
// --------------------------------------
// ------------- Рассчёт данных ---------

   if (
         MA5DN>MA21UP &&         // Если нижняя граница быстрой МАшки выше верхней границы средней МАшки и...
         MA21DN>MA150UP          // нижняя граница средней МАшки выше верхней границы медленной МАшки,
      )   
         return(1);              // значит тренд вверх, возвращаем 1
         
   if (
         MA5UP<MA21DN &&         // Если верхняя граница быстрой МАшки ниже нижней границы средней МАшки и...
         MA21UP<MA150DN          // верхняя граница средней МАшки ниже нижней границы медленной МАшки,
      )   
         return(-1);             // значит тренд вниз, возвращаем -1
         
   else  return(0);              // В остальных случаях у нас флэт, возвращаем 0
}

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
O desafio é algo parecido com isto:
int tr=TrendDetectorMA (NULL, 5);   // NULL, 0 = текущий символ, либо явно, напр. EURUSD
                                    // 5 = таймфрейм, можно 15, 30, 60, 240, 1440, 10080, 43200, хотя можно было 
                                    // и красивее сделать.
   
   Comment ("\n","Тренд = ", tr);
   return;
 

Quero usar os volumes Ramus em MT4, eles parecem ter volumes mais realistas.


 
IgorM:


meu sistema está configurado para sempre querer abrir uma ordem e eu a limito através de sinais de proibição, apenas sinais me dão permissão para negociar = ordem

Tenho um pequeno problema agora - não há negócios atrasados, mas há problemas com ordens aleatórias no apartamento noturno - até agora eu sonho em ensinar a EA a distinguir o apartamento, e não limitá-lo à hora do dia para trabalhar. Para a estimativa da tendência estou usando um TF mais alto na lógica EA, então sou capaz de colocá-lo à noite em um TF de hora em hora e parece ser menos teimoso do que em M15

Por que restringir? Você pode usar estratégias separadas para tendências e planos. Deixe-o sempre funcionar, desde que funcione ... ;)
 
Obrigado, Vinin, obrigado, artmedia70.
 
Dimka-novitsek:

Boa noite, eu não trabalho com indicadores MQL4, e nada! Por favor, ajude-me!
responda


O fato de que os conselheiros trabalham, e os indicadores não funcionam!


F1 ajuda - seção de indicadores técnicos
 

Como usar caixa de objetos e conjunto de objetos para desenhar uma linha horizontal em uma janela estocada, por exemplo?