Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 932

 

Sto scrivendo un EA. Non lo sto testando in un tester, ma nel trading reale.

È possibile cancellare il file di log (scheda "Experts") quando si avvia un Expert Advisor?

Al momento, l'unico modo per rimuovere questo file è chiudere il terminale. Il modo di cancellare il file con il terminale aperto andrebbe bene.

 
pivomoe:

È possibile cancellare il file di log (scheda "Experts") quando si avvia un Expert?

È possibile farlo manualmente: sulla scheda, (tasto destro del mouse) -> "Clear"

 
Ivan Ivanov:

Puoi farlo manualmente: sulla scheda, (clic destro) -> "Cancella".

Solo il testo della scheda Expert scomparirà. Il file rimarrà al suo posto. Ho bisogno di eliminare o cancellare il file.

 

Voglio insegnare alla macchina a trovare un piano esatto. Le sue condizioni sono le seguenti: quindi c'è una barra sul grafico


Per formare un piatto, che voglio trovare ha bisogno di formare 3 barreopposte alla 1a barra tra la sua altezza HL (cioè solo 4 barre che si trovano in una gamma) per confrontare le barre e trovare livelli ha scritto questa condizione

        if(
        Bar_Op[qt+2]<=Bar_Hi[qt+3]&&Bar_Cl[qt+2]>=Bar_Lo[qt+3]&& 
        Bar_Op[qt+2]>=Bar_Lo[qt+3]&&Bar_Cl[qt+2]<=Bar_Hi[qt+3]&&
        Bar_Op[qt+1]<=Bar_Hi[qt+3]&&Bar_Cl[qt+1]>=Bar_Lo[qt+3]&&
        Bar_Op[qt+1]>=Bar_Lo[qt+3]&&Bar_Cl[qt+1]<=Bar_Hi[qt+3]&&
        Bar_Op[qt+0]<=Bar_Hi[qt+3]&&Bar_Cl[qt+0]>=Bar_Lo[qt+3]&&
        Bar_Op[qt+0]>=Bar_Lo[qt+3]&&Bar_Cl[qt+0]<=Bar_Hi[qt+3])         
        {

Da quanto ho capito, il confronto va avanti, ma ho un problema con il disegno dei livelli

double Price_Ur = Bar_Cl[qt+2];

Voglio costruire un livello che passi attraverso il prezzo di chiusura della 2a barra.


Ho una domanda: come restituire il prezzo più basso dalla condizione o come trovarlo, forse la mia condizione non restituisce il prezzo ma confronta solo i top delle candele che passano attraverso il PO e il CL? Ho usato la seguente notazione

int iLwCL=iLowest(_Symbol,PERIOD_D1,MODE_CLOSE,3,qt+1); int iLwOP=iLowest(_Symbol,PERIOD_D1,MODE_OPEN,3,qt+1);
double Price_Ur = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP];

La funzioneiLowest determina il top più basso rispetto alla 0a barra, ma nel mio caso non trova il prezzo più basso. Come posso restituire il prezzo più basso dalla condizione per costruire un livello come nel caso didouble Price_Ur = Bar_Cl[qt+2];?

 
Potete dirmi se c'è un modo per trasferire un array da un EA a un altro?
Le variabili GV sono molto scomode per questo.
 
User_mt5:
Potete dirmi se c'è un modo per trasferire un array da un EA a un altro?
Le variabili GV sono molto scomode per questo.

Forse questo aiuterà https://www.mql5.com/ru/code/818. Io non l'ho mai usato.

 
User_mt5:
Potete dirmi se c'è un modo per trasferire un array da un EA a un altro?
Le variabili GV sono molto scomode per questo.

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

Biblioteche: TradeTransactions

fxsaber, 2018.09.20 16:23

// Пример хранения/обмена данными через Ресурсы внутри Терминала
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

void OnStart()
{  
  const RESOURCEDATA<int> ResourceINT("::int"); // Ресурс для обмена int-ами. const - как доказательство, что ничего не пишется в объект класса
  
  int ArrayINT[] = {1, 2, 3};
  int Num = 5;
  
  ResourceINT = ArrayINT;  // Ресурс хранит массив.
  ResourceINT += Num;      // Добавили в ресурс еще значение.
  ResourceINT += ArrayINT; // Добавили массив.
  
  int ArrayINT2[];  
  ResourceINT.Get(ArrayINT2); // Считали данные из ресурса.
  ArrayPrint(ArrayINT2);      // Вывели: 1 2 3 5 1 2 3

  ResourceINT.Free();                // Удалили данные из ресурса
  Print(ResourceINT.Get(ArrayINT2)); // Убедились, что данных нет: 0

  const RESOURCEDATA<MqlTick> ResourceTicks("::Ticks"); // Ресурс для обмена тиками. const - как доказательство, что ничего не пишется в объект класса
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    for (int i = 0; i < 3; i++)
      ResourceTicks += Tick; // Добавили в ресурс тики

  MqlTick Ticks[];
  ResourceTicks.Get(Ticks); // Считали данные из ресурса.
  ArrayPrint(Ticks);        // Вывели.
  
  // Это полное имя ресурса для обращения из другой программы
  const string NameOut = StringSubstr(MQLInfoString(MQL_PROGRAM_PATH), StringLen(TerminalInfoString(TERMINAL_PATH)) + 5) + "::Ticks";  
  Print(NameOut); // Вывели полное имя ресурса.
  
  const RESOURCEDATA<MqlTick> Resource(NameOut); // Ресурс для доступа к данным (read-only) из другой программы
  
  MqlTick TicksOut[];
  Resource.Get(TicksOut); // Считали данные из ресурса.
  ArrayPrint(TicksOut);   // Вывели.
  
  Resource.Free();   // Не получится повлиять на данные read-only-ресурса.
  Print(_LastError); // ERR_INVALID_PARAMETER - Ошибочный параметр при вызове системной функции.
}
 
pivomoe, @fxsabe, grazie. Ci darò un'occhiata.
 

Non capisco come in questo consigliere

https://www.mql5.com/ru/code/20254

Non riesco a capire come evitare che la barra attuale (non ancora formata) venga disegnata. Qualcuno può darmi un suggerimento?

Renko 2.0 Offline
Renko 2.0 Offline
  • www.mql5.com
Неторгующий советник Renko 2.0 Offline генерирует информацию по пользовательскому символу на минутном графике. Полный график Ренко с фитилями. Доступен и оффлайн! Ссылается на библиотеку Symbol для MetaTrader 5, написанную пользователем fxsaber. Настраивается с...
 
EgorKim:

Non capisco come in questo consigliere

https://www.mql5.com/ru/code/20254

Non riesco a capire come evitare che la barra attuale (non ancora formata) venga disegnata. Qualcuno può darmi un suggerimento?

Dovresti chiedere nel thread di discussione di Expert Advisor).

Motivazione: