Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1021

 
Здравствуйте. Помогите советом. Тестирую советник, чувствительный к котировкам на реальном pro-ecn счете альпари. В итоге график значительно отличается на одном и том же интервале, даже после скачивания котировок и двух последовательных тестирований. Не знаю, чего ждать в реале.
 

поставьте фиксированный спред в тестере. Вообще советники чувствительные к таким вещам - в унитаз )

 

 
Да, все верно, спасибо большое. Насчет советника, не знаю. Автор как раз и предоставляет чувствительность советника как основное его преимущество. Так как описывает что советник не индикаторный, а основан на движении цены. Поэтому рекомендует работать на ecn счетах, и котировках от дукаскопи. Что вы об этом думаете?
 
Lians:
Здравствуйте, дорогие профи.

Есть такой скрипт для экспорта котировок в нужном мне формате за последние 100 баров или до определенного времени в прошлом. Работает как надо. Но если его накидывать на график визуализации тестера, то он сохраняет котировки, исходя из последнего времени, на которое есть котировка в истории, а не исходя из даты и времени тестера.

А можно ли его научить сохранять последние 100 баров, исходя из времени графика визуализации тестера?

Если да, то дайте, плиз, наводку как это сделать? Что-то не соображу.
PS: то, что он использует функцию Кима для замены, вместо StringReplace - так и задумано, не обращайте внимания.


Отвечаю сам себе. Если из этого скрипта сделать индикатор, то почему-то работает как надо.
Так что решение найдено. Хоть и на пару кликов менее удобное, но всё же лучше, чем ничего.
 

индикатор - ATS (Alpha Trend Spotter Price Action free)

CandleHigh=High[Highest(NULL, 0,2,3,i)];
CandleLowS=Low[Lowest(NULL,0,1,3,i)];
CandleOpenS=Open[i];
CandleHighF=High[Highest(NULL, 0, 2, 3, (i+3))];
CandleHighL=Low[Lowest(NULL,0,1,3,(i+3))];
CandleOpenL=Open[i+3];
//---
if((CandleHigh>CandleHighF) && (CandleOpenS<CandleHighL))
{
BufferMap1[i]=High[i+3]+0.0010;
}
//---
if((CandleLowS<CandleHighL) && (CandleOpenS>CandleHighF))
{
BufferMap2[i]=Low[i+3]-0.0010;

  Вопросы:

1. Сколько свечей анализируется?
2. На какой свече ставится стрелка?
3. Если не сложно расписать условия комбинации
типа O1>C2

 это код для mq5 этого же индикатора

{
CandleHigh=high[ArrayMaximum(high,bar,iPeriod)];
CandleLow=low[ArrayMinimum(low,bar,iPeriod)];
CandleOpen=open[bar];
CandleHigh1=high[ArrayMaximum(high,bar+iPeriod,iPeriod)];
CandleLow1=low[ArrayMinimum(low,bar+iPeriod,iPeriod)];
CandleOpen1=open[bar+iPeriod];
//---
BuyBuffer[bar]=0.0;
SellBuffer[bar]=0.0;
//---
if(CandleLow<CandleLow1 && CandleOpen>CandleHigh1) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8;
if(CandleHigh>CandleHigh1 && CandleOpen<CandleLow1) SellBuffer[bar]=high[bar]+ATR[bar]*3/8; }

  я mq5 так понял:

bool UP = Low[i+2] < Low[i+1] && Open[i+2] > High[i+1] ;

bool DOWN = High[i+2] > High[i+1] && Open[i+2] < Low[i+1] ;

 Я правильно понял?

==

ATS mq4 https://www.mql5.com/en/code/12941 

 
Здравствйте, форумчане.
Пытаюсь интегрировать библиотеку для работы с файлами вне файловой песочницы https://www.mql5.com/ru/code/11140 .
На начальном же этапе возникли проблемы с элементарным открытием файла. Может кто делал что-то на основе этой библиотеке, прошу помощи. Большое спасибо!
#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string name=StringConcatenate(Year(),TransformToFileName(Month()),TransformToFileName(Day()),".log");
//---
   string path=TerminalPath()+"\\MQL4\\Logs\\"+name;
//---
   if(FileCheckW(path))
     {
      //---
      int handle=-1;
      handle=FileOpenExistingW(path,GENERIC_READ,SHARE_READ);
      if(handle!=NULL)
        {
         Alert(handle);
         FileCloseHandle(handle);

        }
     }
//
  }
//+------------------------------------------------------------------+
string TransformToFileName(int val)
  {
   string res;
//---
   if(val<10)
     {
      res=StringConcatenate(0,val);
     }
   else
     {
      res=StringConcatenate(val);
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
Ошибка
 
bistreevseh:
Здравствйте, форумчане.
Пытаюсь интегрировать библиотеку для работы с файлами вне файловой песочницы https://www.mql5.com/ru/code/11140 .
На начальном же этапе возникли проблемы с элементарным открытием файла. Может кто делал что-то на основе этой библиотеке, прошу помощи. Большое спасибо!

 Может, проблема в этом, для

StringConcatenate()

"Примечание

Параметры могут иметь любой тип. Количество параметров не может быть меньше 2 и не может превышать 64."

 
bistreevseh:
Здравствйте, форумчане.
Пытаюсь интегрировать библиотеку для работы с файлами вне файловой песочницы https://www.mql5.com/ru/code/11140 .
На начальном же этапе возникли проблемы с элементарным открытием файла. Может кто делал что-то на основе этой библиотеке, прошу помощи. Большое спасибо!

Тестовый скрипт работает правильно?

Права и владелец на системный диск?

У меня такой скрипт:

#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  string sName = TimeToString(TimeLocal(), TIME_DATE) + ".log";
  sName = StringSubstr(sName, 0, 4) + StringSubstr(sName, 5, 2) + StringSubstr(sName, 8);
  string sPath = TerminalPath() + "\\MQL4\\Logs\\" + sName;
  Print(sPath);
  if (FileCheckW(sPath))
   {
    int hFile = FileOpenExistingW(sPath, GENERIC_READ,SHARE_READ);
    if (hFile != NULL)
     {
      Print("hFile = ", hFile);
      FileCloseHandle(hFile);
     }
    else Print("Файл не открыт!");
   }
  else Print("Файл отсутствует!");
 }

работает:

0    07:46:55.195    Check_FileLib EURUSD,Daily: initialized
0    07:46:55.196    Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0    07:46:55.239    Check_FileLib EURUSD,Daily: hFile = 2020
0    07:46:55.240    Check_FileLib EURUSD,Daily: uninit reason 0
0    07:46:55.241    Script Check_FileLib EURUSD,Daily: removed

 
Zhunko:

Тестовый скрипт работает правильно?

Права и владелец на системный диск?

У меня такой скрипт:

работает:

0    07:46:55.195    Check_FileLib EURUSD,Daily: initialized
0    07:46:55.196    Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0    07:46:55.239    Check_FileLib EURUSD,Daily: hFile = 2020
0    07:46:55.240    Check_FileLib EURUSD,Daily: uninit reason 0
0    07:46:55.241    Script Check_FileLib EURUSD,Daily: removed


Большое спасибо! Работает странно права у меня админские, специально для папки терминала дал все разрушения владельцу, помогло, но потом перестало ратотать. Далее пытался прочитать файл лога функцией FileReadStrArrayW (если не ошибаюсь с названием) считываютсяпустые строки, в режиме ansi скрипт зависает . Получилось считать ansi коды только FileReadCharArr . Может у вас есть какой-то пример, как парсить файл лога с помощью вашей библиотекой? Буду очень признателен!
 
подскажите пожалуйста , как в индикаторе уйти от зависимости от поступления тика, таймер не спасает ситуацию. В индикаторе предпологается вести сравнительный расчёт использую цикл, в режиме реального времени в рыночные будни индикатор работает( хоть и медленно), а вот сегодня заметил что не ведется расчет.
Причина обращения: