Надеюсь каритнка всем знакома, кто читал Л. Уильямса.
Так вот до меня ни как не дойдет, как научить индикатор читать данные из csv файла?
Я уже и инет гуглил и по форумам ходил - как записать данные в файл расписано, а как считывать данные из файла для работы индикатора ни чего не нашел.
Подскажите, пожалуйста, как это сделать или где поискать.
Заранее спасибо!
Читаем файл в строчный массив : //+------------------------------------------------------------------+ //| Function : ReadFileToArr | //| Copyright © 2010, XrustSolution. | //| mail: xrustx@gmail.com | //+------------------------------------------------------------------+ int ReadFileToArray(string fn, string &in[],string del="^"){int i,x,y,hd,res=0; x = ArraySize(in); hd = FileOpen(fn,FILE_READ|FILE_CSV,del); if(hd<1){return(-GetLastError());} while(!FileIsEnding(hd)){ in[i] = FileReadString(hd); i++; if(i>=x){ FileClose(hd); return(-4002); break; } } FileClose(hd); ArrayResize(in,i-1); return(i); } Разбиваем строки массива по ячейкам : //+------------------------------------------------------------------+ //| Function :GetContentFromScvCell | //| Copyright © 2010, XrustSolution. | //| mail: xrustx@gmail.com | //+------------------------------------------------------------------+ string GetContentFromScvCell(string in,int pos,string del){int i=-1,x,y; string det=";",out=""; while(i<pos){ x = StringFind(in,del,0); out = StringSubstr(in,0,x); in = StringSubstr(in,x+1); i++; if(x<0){break;} } if(StringFind(out,del)>=0){out="";} return(out); }
Спасибо Модератор!:)
Если сам не смогу разобраться с индикатором можно списаться по мылу?
Хорошо!:)
Идея такая сделать индикатор открытых позиций операторов.
Как пишет Ларри Уильямс нижний индикатор показывает фактическую чистую разность между длинными и короткими позициями операторов.
Где взять данные СОТ мы знаем http://www.cftc.gov/MarketReports/CommitmentsofTraders/HistoricalCompressed/index.htm
ДЦ который может представить недельный график http://www.gcitrading.com/ с 2001 года, был Broco, но похоже их закрыли, а у них были котироаки на по всем фьючерсам.
Значит скачиваем данные с сайта www.cftc.gov в Exel, берем из них дату и длинные и корткие позиции операторов, которые записать в csv файл не составит труда.
(Кстати, как его сюда прикрепить?)
А вот как сделать индикатор (либо линия либо гистограмма) для наглядности.
В Exel я составил таблицу показывающую в процентном отношении короткие и длинные позиции оператров и в противовес им позиции публики.
А вот как сделать индикатор ни как не врублюсь.:)
А на сайте Ларри Вильямса http://www.ireallytrade.com/ естественно все платное.:)
Денег то конечно можно заплатить, но будет ли от этого толк? И хотелось бы так сказать своими руками это все пощупать.:)
У меня данные собраны по серебру. Можно помочь? По образцу я и по другим иструментам индикаторов наделаю.:)
Вот мой код чтения котировок из файла csv (MT4/Сервис/Архив котировок/Экспорт):
//+------------------------------------------------------------------+ //| Загрузка истории котировок из файла | //| (c) Murad Ismayilov (https://www.mql5.com/ru/users/wmlab) | //+------------------------------------------------------------------+ void LoadHistoryFromCsvFile(string filename) { HistoryBars = -1; int handleCsv = FileOpen(filename, FILE_CSV | FILE_READ, ','); if (handleCsv < 1) { return; } HistoryBars = 0; while (!FileIsEnding(handleCsv)) { FileReadString(handleCsv); HistoryBars++; } HistoryBars /= 7; ArrayResize(HistoryTime, HistoryBars); ArrayResize(HistoryHigh, HistoryBars); ArrayResize(HistoryLow, HistoryBars); ArrayResize(HistoryMiddle, HistoryBars); FileSeek(handleCsv, 0, SEEK_SET); for (int index = (HistoryBars - 1); index >= 0; index--) { string csvDate = FileReadString(handleCsv); string csvTime = FileReadString(handleCsv); HistoryTime[index] = StrToTime(csvDate + " " + csvTime); string csvOpen = FileReadString(handleCsv); string csvHigh = FileReadString(handleCsv); HistoryHigh[index] = StrToDouble(csvHigh); string csvLow = FileReadString(handleCsv); HistoryLow[index] = StrToDouble(csvLow); string csvClose = FileReadString(handleCsv); string csvVolume = FileReadString(handleCsv); HistoryMiddle[index] = NormalizeDouble((HistoryHigh[index] + HistoryLow[index]) / 2.0, Digits); } FileClose(handleCsv); }
Люди спасибо!!!:)
Осталось на практике испытать!:)
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Надеюсь каритнка всем знакома, кто читал Л. Уильямса.
Так вот до меня ни как не дойдет, как научить индикатор читать данные из csv файла?
Я уже и инет гуглил и по форумам ходил - как записать данные в файл расписано, а как считывать данные из файла для работы индикатора ни чего не нашел.
Подскажите, пожалуйста, как это сделать или где поискать.
Заранее спасибо!