Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 878

 
Artyom Trishkin:
Ora descrivi a parole ciò che hai descritto graficamente. Usa alto, basso, aperto, chiuso.
Appena lo descrivi a parole, hai già scritto il tuo ToR :)
Non resta che sostituire le costruzioni verbali con il codice.
OK, lo farò ora)
 

Dimensione della candela = alto[i] - basso[i]

Ombra superiore = alto[i] - aperto[i]

Corpo della candela = aprire[i] - chiudere[i]

Ombra inferiore = chiusura[i] - basso[i]

Il rapporto tra il corpo della candela e la sua dimensione - (high[i] - low[i]) / (open[i] - close[i])

La dimensione dell'ombra corta non deve superare una certa soglia - ( close[i] - low[i]) <= close[i]

Orientamento delle candele - high[i] > open[i] > close[i] > low[i]

 
Artyom Trishkin:

Scommetto con il mouse.

  • Clicca sopra il prezzo+Ctrl - Limite di vendita
  • Clicca sotto il prezzo+Ctrl -Acquista limite
  • Clicca sopra il prezzo+Ctrl+Shift - Acquista Stop
  • Clicca sotto il prezzo+Ctrl+Shift - Vendi Stop
Si può anche mettere BuyStopLimit e SellStopLimit con lo shifft

È così che si piazzano gli ordini nel tester di MT5, nella modalità visiva? Come vengono gestiti gli eventi? OnChartEvent() non funziona, giusto?

 
Vladimir Karputov:

Il tester funziona correttamente. L'errore è nella logica del programma: due simboli sono come due vite di persone diverse (qui "persona" è analogo a "simbolo"). E la seconda persona non deve svegliarsi nello stesso momento della prima ("svegliarsi" è analogo a "nuova barra che appare").

Quindi devi aspettare che appaia una nuova barra E sul primo simbolo E sul secondo.


Aggiunto:gestore dell'evento "nuova barra" dell'articolo

Grazie per la pronta risposta. Penserò a come implementare tutto questo in modalità multi-valuta.
 

Tale domanda - l'ordine in cui le condizioni sono elencate è importante per trovare una combinazione di candele?

Esempio:

    if(((high[i-1]-low[i-1]) < (high[i]-low[i])) && (open[i-1] >= Lower1[i]) && ((close[i-1]-open[i-1]) >= 3*(close[i]-open[i])) &&
      (close[i-1 <= Base[i]]) && (high[i-1] <= 0.5*(high[i]-close[i])) && (close[i-1] <= open[i]) && ((close[i]-open[i])<= 0.33*(high[i]-close[i])) &&
      ((close[i]-open[i]) >= (open[i]-low[i])) && (close[i] <= Base[i])) // когда пин-бар ниже, либо равен линии Base
 

Salve. Netting account, voglio contare quanti ordini limite della stessa direzione sono diventati posizioni.

La funzione non calcola correttamente, perché?

int CurrentPos_sell_nettin()
  {
  string symb=_Symbol;
   int    total       =0;  // Всего сделок в списке выбранной истории
   int    count       =0;  // Счетчик сделок по символу позиции
//--- Если история позиции получена
   for(int i=0; i<PositionsTotal(); i++)
     {
      ulong pt=PositionGetTicket(i);
      long ID=PositionGetInteger(POSITION_IDENTIFIER);
      if(PositionGetString(POSITION_SYMBOL)==symb && HistorySelect(PositionGetInteger(POSITION_TIME),TimeCurrent()+60))
        {
         //--- Получим количество сделок в полученном списке
         total=HistoryDealsTotal();
         //--- Пройдем по всем сделкам в полученном списке
         for(int i=0; i<total; i++)
           {
            ulong dt = HistoryDealGetTicket(i);
            long did = HistoryDealGetInteger(dt, DEAL_POSITION_ID);
            ENUM_DEAL_ENTRY in_out=HistoryDealGetInteger(dt,DEAL_ENTRY);
            if(did==pt && in_out==DEAL_ENTRY_IN)
              {
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  count++;
                 }
              }
           }
        }
     }
//---
   return(count);
  }
 
lil_lil:

Salve. Netting account, voglio contare quanti ordini limite della stessa direzione sono diventati posizioni.

La funzione non conta correttamente, perché?

Inizia con HistorySelectByPosition. Allora otterrete solo i trade coinvolti in quella posizione.

 
clickaider:

Tale domanda - l'ordine in cui le condizioni sono elencate è importante per trovare una combinazione di candele?

Esempio:

Dateun'occhiata all'esempio: ci sono trenta modelli diversi.

 
Artyom Trishkin:

Artyom, ripeto la domanda, per favore rispondi:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Domande dai principianti MQL5 MT5 MetaTrader 5

Alexey Kozitsyn, 2018.06.03 15:39

È così che si piazzano gli ordini nel tester MT5, in modalità visiva? E come elabora gli eventi? OnChartEvent() non funziona, giusto?


 
Alexey Viktorov:

Inizia con HistorySelectByPosition. Allora otterrete solo i trade coinvolti in quella posizione.

Grazie.

Cosa c'è che non va ora?

int CurrentPos_sell_nettin()
  {
   string symb=_Symbol;
   int    total       =0;  // Всего сделок в списке выбранной истории
   int    count       =0;  // Счетчик сделок по символу позиции
//--- Если история позиции получена

   for(int i=0; i<PositionsTotal(); i++)
     {
      ulong pt=PositionGetTicket(i);
      long ID=PositionGetInteger(POSITION_IDENTIFIER);
      if(PositionGetString(POSITION_SYMBOL)==symb && HistorySelect(PositionGetInteger(POSITION_TIME),TimeCurrent()+60))
        {
         if(PositionSelect(symb))
           {
            long pos_id=long(PositionGetInteger(POSITION_IDENTIFIER));

            if(pos_id>0)
              {
               if(HistorySelectByPosition(ulong(pos_id)))
                  total=HistoryDealsTotal();
               //--- Пройдем по всем сделкам в полученном списке
               for(int i=0; i<total; i++)
                 {
                  ulong dt = HistoryDealGetTicket(i);
                  long did = HistoryDealGetInteger(dt, DEAL_POSITION_ID);
                  ENUM_DEAL_ENTRY in_out=HistoryDealGetInteger(dt,DEAL_ENTRY);
                  if(did==pt && in_out==DEAL_ENTRY_IN)
                    {
                     if(m_position.PositionType()==POSITION_TYPE_SELL)
                       {
                        count++;
                       }
                    }
                 }
              }
           }
        }
     }
//---
   return(count);
  }
Motivazione: