set это текстовый файл. структура <имя переменной> = <значение>. т.е. нужно найти текстовое имя переменной, а за ней будет значение.
в коде выглядит так:
double ReadDouble(string strSec) { if(!FileSeek(handle,0,SEEK_SET)) {Print(strSec," read failed!!! Empty file!");return(EMPTY_VALUE);} while(!FileIsEnding(handle)) { string read=FileReadString(handle); if(StringFind(read,strSec+"=")==0) { double res=StringToDouble(StringSubstr(read,StringFind(read,"=")+1)); Print(strSec,"=",res); return (res); } } Print(strSec," read failed!!! Data not found"); return(EMPTY_VALUE); }
это пример для чтения значения типа double. читать так:
deviation2=ReadDouble("deviation2d");
для полноты примера, хэндл получаю так:
handle=FileOpen("your_name.set",FILE_COMMON|FILE_TXT|FILE_SHARE_READ|FILE_ANSI,"\r\n");
set это текстовый файл. структура <имя переменной> = <значение>. т.е. нужно найти текстовое имя переменной, а за ней будет значение.
в коде выглядит так:
это пример для чтения значения типа double. читать так:
для полноты примера, хэндл получаю так:
Спасибо, сейчас попробую
set это текстовый файл. структура <имя переменной> = <значение>. т.е. нужно найти текстовое имя переменной, а за ней будет значение.
в коде выглядит так:
это пример для чтения значения типа double. читать так:
для полноты примера, хэндл получаю так:
При таком запросе
handle=FileOpen("your_name.set",FILE_COMMON|FILE_TXT|FILE_SHARE_READ|FILE_ANSI,"\r\n");
выдает ошибку.
2019.11.08 15:43:50.568 Buldozer_v4.0 (EURUSD_i,M30) Не удалось открыть файл AUDCAD_M30_10000_13_P.set, Код ошибки = 5004
Можно более точный пример
Можно более точный пример
Из рабочего кода выдернуто, не могу предположить, что не так :(
Попробуйте убедиться, что
bool FileIsExist( const string file_name, // имя файла int common_flag=0 // зона поиска );
находит его.
Извиняюсь не тот файл скинул, сами файлы кидаю сюда C:\Users\Aser\AppData\Roaming\MetaQuotes\Terminal\Common\Files
в этом файле
; saved on 2019.11.07 21:31:56 ; this file contains input parameters for testing/optimizing Buldozer_v3.0 expert advisor ; to use it in the strategy tester, click Load in the context menu of the Inputs tab ; Magic=1||0||1||10||N CommentDeals=Buldozer_v3.0 Deposit_Load=50||0.0||0.000000||0.000000||N Risk=0.01||0.0||0.000000||0.000000||N Ret=15||0.0||0.000000||0.000000||N s1= ma_of_on=false||false||0||true||Y ma_revers=true||false||0||true||Y ma_type_signal=3||0||1||6||Y ma_period_slow=32||0||1||10||N ma_period_fast=16||0||1||10||N ma_method=0||0||0||0||N ma_price=1||0||0||0||N s2= bb_of_on=true||false||0||true||Y bb_revers=false||false||0||true||Y bb_type_signal=0||0||1||7||Y bb_period=20||0||1||10||N bb_deviation=2||0.0||0.000000||0.000000||N bb_price=1||0||0||0||N s3= st_of_on=false||false||0||true||Y st_revers=false||false||0||true||Y st_type_signal=2||0||1||9||Y st_k_period=5||0||1||10||N st_d_period=3||0||1||10||N st_slowing=2||0||1||10||N st_method=0||0||0||0||N st_price=0||0||0||0||N st_level_up=80||0||1||10||N st_level_dw=20||0||1||10||N s4= rsi_of_on=false||false||0||true||Y rsi_revers=false||false||0||true||Y rsi_type_signal=0||0||1||3||Y rsi_period=14||0||1||10||N rsi_applied_price=1||0||0||0||N rsi_level_up=70||0||1||10||N rsi_level_dw=30||0||1||10||N s5= cci_of_on=true||false||0||true||Y cci_revers=true||false||0||true||Y cci_type_signal=2||0||1||3||Y cci_period=13||0||1||10||N cci_price=1||0||0||0||N cci_level_up=100||0.0||0.000000||0.000000||N cci_level_dw=-100||0.0||0.000000||0.000000||N
в этом файле
я знаю что в этом файле, у меня задача прочитать эти данные из файла в советнике и загрузить, но ни как не получается
Из рабочего кода выдернуто, не могу предположить, что не так :(
Попробуйте убедиться, что
находит его.
Да находит, вот лог
2019.11.08 16:36:04.437 Buldozer_v4.0 (EURUSD_i,M30) 1 : File name = AUDCAD_M30_10000_13_P.set 2019.11.08 16:36:04.437 Buldozer_v4.0 (EURUSD_i,M30) Получено строк: 5. Использован разделитель '_' с кодом 95 2019.11.08 16:36:04.437 Buldozer_v4.0 (EURUSD_i,M30) Symbols[1]="AUDCAD" 2019.11.08 16:36:04.437 Buldozer_v4.0 (EURUSD_i,M30) TimeFrames[1]="M30" 2019.11.08 16:36:04.437 Buldozer_v4.0 (EURUSD_i,M30) StartDepo[1]="10000" 2019.11.08 16:36:04.437 Buldozer_v4.0 (EURUSD_i,M30) Procent[1]="13" 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Файл AUDCAD_M30_10000_13_P.set открыт для чтения 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) deviation2d read failed!!! Data not found 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Текст строки -1 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Файл AUDCAD_M30_10000_13_P.set закрыт 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) 2 : File name = EURUSD_M30_10000_10_P.set 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Получено строк: 5. Использован разделитель '_' с кодом 95 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Symbols[2]="EURUSD" 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) TimeFrames[2]="M30" 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) StartDepo[2]="10000" 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Procent[2]="10" 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Файл EURUSD_M30_10000_10_P.set открыт для чтения 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) deviation2d read failed!!! Data not found 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Текст строки -1 2019.11.08 16:36:04.438 Buldozer_v4.0 (EURUSD_i,M30) Файл EURUSD_M30_10000_10_P.set закрыт
Да находит, вот лог
может не читает - версии разные у вас 4 а в сет 3
; this file contains input parameters for testing/optimizing Buldozer_v3.0 expert advisor
а у вас
//+------------------------------------------------------------------+ //| Buldozer_v4.0.mq5 |
Да находит, вот лог
судя по логу, открывает успешно, но у вас нет переменной deviation2d, этоо имя из моего примера. возьмите реальное имя переменной, например, bb_deviation (такая у вас есть)

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не могу разобраться как выдернуть данные из .set файла, пытаюсь таким способом ни чего не выходит, возвращает пустые строки, сам set файл прикрепил ниже