IDm=ffll_new_model(); // 모델 생성 모델 인덱스 반환 if(IDm<0){ string txt=ffll_get_msg_textA(IDm); // 오류 메시지를 가져옵니다. Alert("생성된 모델 없음"+txt);return(0);}
2. 프로그램과 함께 파일을 로드합니다(오류가 발생함). 파일은 dir. \전문가\파일 . 확장자 .fcl .txt로 시도했습니다.
h=ffll_load_fcl_file(IDm, "Histo.txt"); // 퍼지 모델링 언어 프로그램 로드 if(h<0){ txt=ffll_get_msg_textA(IDm); // 오류 메시지를 가져옵니다. Alert("프로그램 파일이 로드되지 않았습니다"+txt);return(0);}
3.딸을 생성합니다.
ID1=ffll_new_child(IDm); // 주어진 모델에 대한 자식 모델 생성 모델 인덱스 반환 if(ID1<0){ txt=ffll_get_msg_textA(IDm); // 오류 메시지를 가져옵니다. Alert("딸이 생성되지 않았습니다"+txt);return(0);}
4. 입력 데이터를 하나씩 피드합니다. 즉.
IN=ffll_set_value(IDm,ID1,0,X); // 첫 번째 입력 변수의 값을 설정 IN=ffll_set_value(IDm,ID1,1,Y); // 두 번째 입력 변수에 대한 값을 설정합니다.
등
5. 출력을 가져옵니다.
Res=ffll_get_output_value(IDm,ID1); // 출력 변수의 값을 가져옵니다.
그렇지 않습니다. 함수는 -1을 반환하는데, 이는 파일을 찾지 못했음을 의미합니다. 라이브러리 자체에 문제가 있다고 생각했고 C++에서 dll로 확인했는데 모든 것이 작동합니다. 사이트의 예제에서 샘플 코드와 모델을 가져 왔습니다(샘플 다운로드에서). fcl 파일의 구조에 관해서는 로직에 오류가 있으면 모델이로드되지 않고 심각한 오류와 같은 것이 있습니다. 적어도 C++에서는 명시적인 오류가 있는 모델을 지정하면 프로그램이 충돌합니다:
terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid
TO: SergeyVP/ 자식 모델이 생성되지 않았고 변수도 입력되지 않았습니다. 로딩 가능성을 테스트하고 있었다고 이해했나요?
네, 지금은 로딩만 가능합니다. 모델이 로드되지 않으면 하위 모델을 생성할 필요가 없습니다.
프로그램을 바꿔서 확인해 볼까요?
저는 어떤 방식으로도 fcl 모델이 올바른지 확인하지 않습니다. MATLAB에서 모델을 만들고 fis 파일을 가져옵니다. 그런 다음 퍼질라이트 프로그램을 사용하여 fis를 fcl로 변환합니다.
퍼지 로직의 세 가지 기본 함수를 직접 코드에 작성하는 것보다 라이브러리를 다루는 데 더 많은 시간이 걸립니다:
정확히는 아닙니다. 함수가 -1을 반환하는데, 이는 파일을 찾지 못했음을 의미합니다. 라이브러리 자체에 문제가 있다고 생각했고 dll로 C++를 확인했는데 모든 것이 작동합니다. 사이트의 예제에서 샘플 코드와 모델을 가져 왔습니다(샘플 다운로드에서). fcl 파일의 구조에 관해서는 로직에 오류가 있으면 모델이로드되지 않고 심각한 오류와 같은 것이 있습니다. 적어도 C++에서는 명시적인 오류가 있는 모델을 지정하면 프로그램이 충돌하여 오류가 발생합니다:
terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid
예, 지금은 로드 중입니다. 모델이 로드되지 않으면 자식을 만들 필요가 없습니다.
저는 어떤 식으로든 fcl 모델이 올바른지 확인하지 않습니다. MATLAB에서 모델을 만들고 fis 파일을 가져옵니다. 그런 다음 퍼질라이트 프로그램을 사용하여 fis를 fcl로 변환합니다. 안타깝게도 이런 방식이 될 것 같습니다. 제가 직접 작성해야겠네요.
MT4에서 라이브러리를 사용한 적이 있는 사람이 있다면 FCL 파일의 확장명과 어디에 넣어야 하는지 알려주세요.
나는지표를 작성했습니다. 순서는 기사에서와 같습니다.
1. 모델 생성(오류 없음)
IDm=ffll_new_model(); // 모델 생성 모델 인덱스 반환
if(IDm<0){
string txt=ffll_get_msg_textA(IDm); // 오류 메시지를 가져옵니다.
Alert("생성된 모델 없음"+txt);return(0);}
2. 프로그램과 함께 파일을 로드합니다(오류가 발생함). 파일은 dir. \전문가\파일 . 확장자 .fcl .txt로 시도했습니다.
h=ffll_load_fcl_file(IDm, "Histo.txt"); // 퍼지 모델링 언어 프로그램 로드
if(h<0){
txt=ffll_get_msg_textA(IDm); // 오류 메시지를 가져옵니다.
Alert("프로그램 파일이 로드되지 않았습니다"+txt);return(0);}
3.딸을 생성합니다.
ID1=ffll_new_child(IDm); // 주어진 모델에 대한 자식 모델 생성 모델 인덱스 반환
if(ID1<0){
txt=ffll_get_msg_textA(IDm); // 오류 메시지를 가져옵니다.
Alert("딸이 생성되지 않았습니다"+txt);return(0);}
4. 입력 데이터를 하나씩 피드합니다. 즉.
IN=ffll_set_value(IDm,ID1,0,X); // 첫 번째 입력 변수의 값을 설정
IN=ffll_set_value(IDm,ID1,1,Y); // 두 번째 입력 변수에 대한 값을 설정합니다.
등
5. 출력을 가져옵니다.
Res=ffll_get_output_value(IDm,ID1); // 출력 변수의 값을 가져옵니다.
경험을 공유하세요.
MT5에서도 비슷한 문제가 발생합니다. 파일이 열리지 않습니다. 예제 코드:
#property tester_file "model.fcl"
int OnInit()
{
string filename = "model.fcl";
// Считываю строку из файла и убеждаюсь, что его можно открыть.
int filehandle = FileOpen(filename,FILE_READ|FILE_ANSI);
if(filehandle < 0)
{
Print("Error code ",GetLastError());
Print(filename);
}
else
{
Print("Open success");
Print(FileReadString(filehandle));
FileClose(filehandle);
}
// FFCL
int model = ffll_new_model();
if(model < 0)
{
Print("Ошибка создания модели!");
}
int ret_val = ffll_load_fcl_file(model,filename);
if(ret_val < 0)
{
string txt = ffll_get_msg_textW(model);
Print("Ошибка: " + txt);
}
ffll_close_model(model);
return(0);
}
void OnDeinit(const int reason){}
void OnTick(){}
다음과 같은 출력이 나옵니다:
FUNCTION_BLOCK
Open success
왜 오류가 발생하나요? 제가 알기로는 ffll_load_fcl_file 함수에 매개 변수를 전달하는 데 문제가 있는 것 같습니다. (아마도 인코딩 또는 유형 변환과 관련된 것일 수 있습니다.)
이 라이브러리로 작업하신 분들의 답변 부탁드립니다.
.fcl 파일의 구조와 관련이 있을 수 있습니다/ 올바른지 확인할 수 있는 프로그램을 찾지 못했습니다. 텍스트의 링크가 작동하지 않습니다. 이미이 갈퀴를 통과 한 사람이 저에게 답장을 보내 주시기 바랍니다.
원칙적으로 라이브러리는 매우 흥미 롭습니다 (그리고 작동하는 경우). 저자는 불행히도 엿보고 사라졌습니다. 질문에 대답하고 싶지 않습니다. 이해할 수없는 수수께끼 (또는 고용)가 아닙니다.
에: SergeyVP / 딸 모델이 생성되지 않았고 변수가 입력되지 않았습니다. 그래서 로딩 가능성을 확인했다고 이해합니까?
확인을 위해 프로그램을 교환할까요?
코드에서 세 가지 기본 퍼지 논리 함수를 직접 작성하는 것보다 라이브러리를 다루는 데 더 많은 시간이 걸립니다:
그뿐만이 아닙니다. 액세서리 기능, 털 제거 등. 이보다 더 쉬울 수는 없습니다.
그렇지 않습니다. 함수는 -1을 반환하는데, 이는 파일을 찾지 못했음을 의미합니다. 라이브러리 자체에 문제가 있다고 생각했고 C++에서 dll로 확인했는데 모든 것이 작동합니다. 사이트의 예제에서 샘플 코드와 모델을 가져 왔습니다(샘플 다운로드에서). fcl 파일의 구조에 관해서는 로직에 오류가 있으면 모델이로드되지 않고 심각한 오류와 같은 것이 있습니다. 적어도 C++에서는 명시적인 오류가 있는 모델을 지정하면 프로그램이 충돌합니다:
what(): basic_string::_S_construct null not valid
TO: SergeyVP/ 자식 모델이 생성되지 않았고 변수도 입력되지 않았습니다. 로딩 가능성을 테스트하고 있었다고 이해했나요?
네, 지금은 로딩만 가능합니다. 모델이 로드되지 않으면 하위 모델을 생성할 필요가 없습니다.
프로그램을 바꿔서 확인해 볼까요?
퍼지 로직의 세 가지 기본 함수를 직접 코드에 작성하는 것보다 라이브러리를 다루는 데 더 많은 시간이 걸립니다:
정확히는 아닙니다. 함수가 -1을 반환하는데, 이는 파일을 찾지 못했음을 의미합니다. 라이브러리 자체에 문제가 있다고 생각했고 dll로 C++를 확인했는데 모든 것이 작동합니다. 사이트의 예제에서 샘플 코드와 모델을 가져 왔습니다(샘플 다운로드에서). fcl 파일의 구조에 관해서는 로직에 오류가 있으면 모델이로드되지 않고 심각한 오류와 같은 것이 있습니다. 적어도 C++에서는 명시적인 오류가 있는 모델을 지정하면 프로그램이 충돌하여 오류가 발생합니다:
what(): basic_string::_S_construct null not valid
예, 지금은 로드 중입니다. 모델이 로드되지 않으면 자식을 만들 필요가 없습니다.
저는 어떤 식으로든 fcl 모델이 올바른지 확인하지 않습니다. MATLAB에서 모델을 만들고 fis 파일을 가져옵니다. 그런 다음 퍼질라이트 프로그램을 사용하여 fis를 fcl로 변환합니다.안타깝게도 이런 방식이 될 것 같습니다. 제가 직접 작성해야겠네요.
알겠습니다. 고마워요.
"샘플 코드와 모델은 사이트의 예제(샘플 다운로드)에서 가져온 것입니다.".
어느 사이트의 예제에서 가져온 건가요? 알려주세요.
그렇다면 MATLAB과 MT4/MT5를 연결하는 것이 더 쉬울까요? 더 많은 솔루션이 이미 제공되었습니다.
이 라이브러리가 작동하지 않으면이 방향으로 이동할 것입니다.
Тут не понял, с какого сайта? Ткните плз.
라이브러리의 공식 사이트 - ffll.sourceforge.net에서.
더 정확하게는: http://ffll.sourceforge.net/downloads.htm -> FFLL을 사용하는 샘플 애플리케이션을 다운로드하세요.
C++ 코드와 간단한 fcl 모델이 있습니다.
그렇다면 MATLAB과 MT4/MT5를 연결하는 것이 더 쉬울까요? 특히 솔루션이 이미 제안되어 있습니다.
라이브러리의 공식 사이트 - ffll.sourceforge.net에서.
더 정확하게는: http://ffll.sourceforge.net/downloads.htm -> FFLL을 사용하는 샘플 애플리케이션을 다운로드하세요.
C++ 코드와 간단한 fcl 모델이 있습니다.
어디서 읽을 수 있나요?이 주제를 발표하고 MT4에서 모든 것이 훌륭하게 작동한다고 쓴 "운송 상점의 책임자"의 말을 듣고 싶습니다.
문제는 .fcl 파일이 로드되지 않는다는 것입니다.
그건 그렇고 : 라이브러리가 표준을 완전히 지원하지 않습니다. 예외, 제한 사항 등이 있습니다. 그리고 출력은 단일 요소 집합뿐입니다.