[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 1012

 
boris.45:

GRAZIE

Quindi scaricate i dati. Premere F2, selezionare una coppia e scaricare l'intera storia su M1
 

Ciao!

Potete per favore consigliarmi come implementare un confronto dei valori dell'indicatore con il prezzo di diversi intervalli di tempo (timeframe???????) in un EA. Sto incollando il codice. Ricerca non ha dato nulla, per quanto ho potuto leggere questo thread (con 940). Grazie in anticipo!!!

//+------------------------------------------------------------------+
//|                                        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);
  }
//+------------------------------------------------------------------+
 
Salve, stimati programmatori!
Ho un Expert Advisor che fa trading in base alle scale. Il problema è che non sempre apre e chiude correttamente le posizioni, credo a causa dello slippage. Si prega di aggiungere il parametro Slippage all'EA. Grazie
File:
 

Ciao a tutti!

Potresti dirmi come impostare questo EA? https://www.mql5.com/ru/code/9434

Voglio che apra la posizione di copertura o chiuda la posizione con profitto se raggiunge un certo meno o più.

Non so dove cambiare i parametri.

Ci sono dei parametri: profitplus 1.0

profitto negativo -1,0

profitto 1.0

Non so dove cambiarlo.

Non so dove cambiare i parametri, grazie.

 

Potete dirmi dove trovare un EA che apre una posizione all'apertura di una candela giornaliera?

cp.

 
glasha:
Salve, stimati programmatori!
Ho un Expert Advisor che fa trading in base alle scale. Il problema è che non sempre apre e chiude correttamente le posizioni, credo a causa dello slippage. Si prega di aggiungere il parametro Slippage all'EA. Grazie
File:
 
igrok2008:

Ciao!

Si prega di consigliare come implementare un confronto dei valori dell'indicatore con il prezzo di diversi intervalli di tempo (timeframe???????) in un EA. Sto incollando il codice. Ricerca non ha dato nulla, per quanto ho potuto leggere questo thread (con 940). Grazie in anticipo!

Per quanto ho capito, è qui che si confronta. Se mi sbaglio, che mi correggano.

if(
(sar10>Open[0])&& // SAR 1 // confronta con il prezzo di apertura
(sar11>Close[0+1])&& // confronta con il prezzo di chiusura
(sar50>Open[0])&& // SAR 5
(sar51>Close[0+1])&& // minuti
(sar150>Open[0])&& // SAR 15
(sar151>Close[0+1])&& // minuti
(sar152<Close[0+2]) // inizio tendenza
)

 

1. come il programma è coordinato in tempi diversi su un reale o un tester.

Esempio: sull'ora, guardiamo e cerchiamo una tendenza, sulla mezz'ora e sotto il (.) entrata/uscita.

Grazie.

 
Buon pomeriggio gente, mi consigliate per favore come posso fare questo indicatore di segnale EMA crossover in modo che ad ogni incrocio non emetta un bip ma quanti ne voglio?
 
x8profit:
Ciao ragazzi, potete dirmi come fare questo indicatore di segnale di crossover EMA in modo che ad ogni crossover non emetta un bip ma tutti i bip che voglio?

Non ho guardato il codice, ma la prima cosa che mi è venuta in mente: nella parte del codice in cui si genera un bip, fate un ciclo e date in uscita il numero delle sue iterazioni all'esterno. Il segnale sarà emesso tante volte quante ne avete impostate nelle impostazioni...

Anche se... Sarà una pausa nel lavoro dell'indicatore con la durata del segnale *numero di iterazioni del ciclo.