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

 
boris.45:

OBRIGADO

Portanto, baixe os dados. Pressione F2, selecione um par e baixe todo o histórico no M1
 

Olá!

Favor aconselhar como implementar uma comparação de valores indicadores com o preço de diferentes intervalos de tempo (timeframe???????) em um EA. Estou colando o código. A busca não deu nada, tanto quanto pude ler este fio (com 940). Obrigado de antemão!!!

//+------------------------------------------------------------------+
//|                                        expert SAR_1_5_15 min.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.01;
extern int       StopLoss=300;
extern int       TakeProfit=150;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderCloseTime()>=Time[0]&&OrderType()==Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения Parabolic,на 0-ом, 1-ом и 2-м барах для 1,5-ти,15-ти минутн. графиков
    double sar10 = iSAR(NULL,1,0.02,0.2,0);
    double sar11 = iSAR(NULL,1,0.02,0.2,1);
    double sar50 = iSAR(NULL,5,0.02,0.2,0);
    double sar51 = iSAR(NULL,5,0.02,0.2,1);
    double sar150 = iSAR(NULL,15,0.02,0.2,0);
    double sar151 = iSAR(NULL,15,0.02,0.2,1);
    double sar152 = iSAR(NULL,15,0.02,0.2,2);
        
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open[0])&&    //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close[0+1])&&    // минута и сравниваем с ценой закрытия
    (sar50>Open[0])&&         //  SAR 5
    (sar51>Close[0+1])&&      // минут
    (sar150>Open[0])&&        //  SAR 15
    (sar151>Close[0+1])&&    // минут
    (sar152<Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    
    //-------------Открытие позиции Sell продажа----------------  
    if(
    (sar10<Open[0])&&       //  SAR 1
    (sar11<Close[0+1])&&    // минут
    (sar50<Open[0])&&       //  SAR 5
    (sar51<Close[0+1])&&    // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar153>Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+
 
Olá, respeitados programadores!
Tenho um consultor especializado que negocia pela balança. O problema é que nem sempre abre e fecha as posições corretamente, eu acho que por causa do escorregamento. Favor adicionar o parâmetro Slippage ao EA. Obrigado
Arquivos anexados:
 

Olá a todos!

Você pode me dizer como criar esta EA? https://www.mql5.com/ru/code/9434

Quero que ele abra posição de cobertura ou feche posição com lucro se ele atingir certo menos ou mais.

Eu não sei onde mudar os parâmetros.

Há parâmetros aí: profitplus 1.0

profitminus -1.0

lucro 1.0

Não sei onde mudá-lo.

Eu não sei onde mudar os parâmetros.

 

Você pode me dizer onde encontrar uma EA que abra uma posição na abertura de uma vela diária?

cp.

 
glasha:
Olá, respeitados programadores!
Eu tenho um EA que negocia junto aos vagões. O problema é que nem sempre abre e fecha as posições corretamente, eu acho que por causa do escorregamento. Favor adicionar o parâmetro Slippage ao EA. Obrigado
Arquivos anexados:
 
igrok2008:

Olá!

Você pode aconselhar como implementar uma comparação de valores indicadores com o preço de diferentes intervalos de tempo (timeframe???????) em um EA. Estou colando o código. A busca não deu nada, tanto quanto pude ler este fio (com 940). Obrigado de antemão!

Tanto quanto sei, é aqui que é comparado. Se eu estiver enganado, deixem que eles me corrijam.

if(
(sar10>Abrir[0]) &&/ SAR 1 // comparar com o preço de abertura
(sar11>Fechar[0+1])&&/ comparar com o preço de fechamento
(sar50>Abrir[0])&& // SAR 5
(sar51>Fechar[0+1])&& // minutos
(sar150>Abrir[0])&& // SAR 15
(sar151>Fechar[0+1])&& // minutos
(sar152<Fechar[0+2]) // tendência inicial
)

 

1. como o programa é coordenado em diferentes cronogramas em um real ou em um testador.

Exemplo: na hora, observamos e procuramos uma tendência, na meia hora e abaixo da (.) entrada/saída.

Obrigado.

 
Boa tarde pessoal, por favor, avisem-me como posso fazer este indicador de sinal de cruzamento EMA para que a cada cruzamento ele emita não um bip, mas tantos quantos eu quiser...
 
x8profit:
Olá, pessoal, vocês podem me dizer como fazer este indicador de sinal de crossover EMA para que em cada crossover ele emita não um bip, mas tantos bipes quantos eu quiser?

Não olhei para o código, mas a primeira coisa que me veio à mente: na parte do código onde um bip é gerado, fazer um loop e emitir o número de suas iterações para o externo. O sinal será emitido tantas vezes quanto você definir nos ajustes.

Embora... Será uma pausa no trabalho do indicador com a duração do sinal *número de iterações do ciclo.