Помощь в кодировании - страница 701

 
AtApi:

Привет ребята и гуру кода,

Я ищу простой индикатор, который строит свои собственные значения из CSV файла. Кто-нибудь может мне помочь?

Заранее спасибо!

Что означает "собственное значение"?
 
mladen:
Что означает "собственное значение"?

Спасибо mladen,

Давайте объясню немного лучше: мне нужен индикатор, который считывает данные из CVS файла и строит график значений в подокне, CVS будет иметь 2 значения, разделенные запятыми, первое значение - это дата, а второе - фактическое значение, которое индикатор должен построить.

например

CVS выглядит следующим образом:

date,value
2016.10.26.05.55,126.845
2016.10.26.05.50,126.848
2016.10.26.05.45,126.844
2016.10.26.05.40,126.82
2016.10.26.05.35,126.816
2016.10.26.05.30,126.81

индикатор будет строить значение в соответствии с датой.

Надеюсь, теперь стало немного понятнее...

Спасибо за помощь, друг!

 

Дорогой друг,

мне нужно кодировать,

закрытие свечи, затем если свеча вверх, то предупреждениевверх, если свеча вниз, то предупреждениевниз на любом таймфрейме

если у вас есть, пожалуйста, поделитесь со мной,

спасибо за внимание,

- джезинг

 
AtApi:

Спасибо mladen,

Давайте объясню немного лучше: мне нужен индикатор, который считывает данные из CVS файла и строит график значений в подокне, CVS будет иметь 2 значения через запятую, первое значение - дата, а второе - фактическое значение, которое индикатор должен построить.

например

CVS выглядит следующим образом:

Время, значение

2016.10.26.21.20,127.765

2016.10.26.21.15,127.777

2016.10.26.21.10,127.777

2016.10.26.21.05,127.799

2016.10.26.21.00,127.791

2016.10.26.20.55,127.788

индикатор будет строить значение в соответствии с датой

Надеюсь, теперь стало немного понятнее...

Спасибо за помощь, друг!

Это то, чего я достиг на данный момент:

extern   string   FileName    = "AUDCAD.CSV";
datetime   dt[9999];
double     val[9999];

string     arr[2];    

int h = FileOpen(FileName, FILE_CSV|FILE_READ,'~');
  if (h==0)   Comment("File "+FileName+" not found.");

  
  for (int c=0; !FileIsEnding(h) && c<9999; c++)  {

  
    string tmp = FileReadString(h);
    if (FileIsEnding(h))  break;
    StrToStringArray(tmp,arr,",");
    dt[c]  = StrToTime(arr[0]);  // <==== This should convert the date value (in the format of "yyyy.mm.dd hh:mi") to datatime type and assign it to the array
    val[c] = StrToNumber(arr[1]); // <==== This will assign the value to the array
   

  }
  FileClose(h);

//+------------------------------------------------------------------+
void StrToStringArray(string str, string &a[], string delim=",")  {
//+------------------------------------------------------------------+
  int z1=-1, z2=0;
  for (int i=0; i<ArraySize(a); i++)  {
    z2 = StringFind(str,delim,z1+1);
    a[i] = StringSubstr(str,z1+1,z2-z1-1);
    if (z2 >= StringLen(str)-1)   break;
    z1 = z2;
    
  }
}
//+------------------------------------------------------------------+
double StrToNumber(string str)  {
//+------------------------------------------------------------------+
// Usage: strips all non-numeric characters out of a string
  int    dp   = -1;
  int    sgn  = 1;
  double num  = 0.0;
  for (int i=0; i<StringLen(str); i++)  {
    string s = StringSubstr(str,i,1);
    if (s == "-")  sgn = -sgn;   else
    if (s == ".")  dp = 0;       else
    if (s >= "0" && s <= "9")  {
      if (dp >= 0)  dp++;
      if (dp > 0)
        num = num + StrToInteger(s) / MathPow(10,dp);
      else
        num = num * 10 + StrToInteger(s);
    }
  }
  return(num*sgn);
}
Я не уверен, почему, если я печатаю dt[c], он всегда возвращает одно и то же значение... как будто время никогда не меняется, даже если arr[0] меняется на каждой итерации цикла...
после этого мы должны присвоить значение бару с этим временем... но я застрял...

	          
 
AtApi:
AtApi:

Спасибо mladen,

Давайте объясню немного лучше: мне нужен индикатор, который считывает данные из CVS файла и строит график значений в подокне, CVS будет иметь 2 значения, разделенные запятыми, первое значение - это дата, а второе - фактическое значение, которое индикатор должен построить.

например

CVS выглядит следующим образом:

Время, значение

2016.10.26.21.20,127.765

2016.10.26.21.15,127.777

2016.10.26.21.10,127.777

2016.10.26.21.05,127.799

2016.10.26.21.00,127.791

2016.10.26.20.55,127.788

индикатор будет строить значение в соответствии с датой

Надеюсь, теперь стало немного понятнее...

Спасибо за помощь, друг!

Вот чего я достиг на данный момент:

Неважно, я решил проблему....the SrtToTime принимает только строку с этим форматом: "yyyy.mm.dd hh:mi", что означает, что я загружал CSV с этим форматом вместо "yyyy.mm.dd hh.mi" и, очевидно, выдавал ошибку... в любом случае, я решил!!!
 

здравствуйте

господин Младен:

не могли бы вы обновить его для новой сборки mt4

наилучшие пожелания

Файлы:
 

Пожалуйста, может ли кто-нибудь помочь мне исправить эти 3 проблемы

1. исправить ошибку трейлинга

2.удалить фильтр второго таймфрейма, система будет работать на 30м чате

3.добавить прилагаемый индикатор в качестве фильтра на 1D чат

 

@Дорогие друзья,

Моя ea выдает следующую ошибку.

"EURUSD+,M5: неизвестный тикет 21847676 для функции OrderDelete".

Что означает это предложение? В чем проблема и что я могу сделать?

 
oguz:

@Дорогие друзья,

Моя ea выдает следующую проблему.

"EURUSD+,M5: неизвестный билет 21847676 для StringConcatenate(function"

Что означает это предложение? В чем проблема?

Что я могу сделать?

Это означает, что он не может найти ордер с номером тикета 21847676 , который он может удалить.

Либо :

  • номер заказа неверный
  • либо ордер уже был удален за прошедшее время (два советника, либо цикл не проверил должным образом, либо что-то подобное...)
 

здравствуйте господин младен

не могли бы вы помочь наложить этот индикатор на MTFотдельный график, подобный этой картинке.

с уважением

Файлы:
xb4d_2.mq4  4 kb