라이브러리를 MQL5로 변환할 때입니다. - 페이지 6

 
victorg :

사실 데이터에 직접 접근하는 데는 아무런 문제가 없습니다.

좋아, 이야기꾼. 무엇보다 안전이 최우선입니다. 특히 조언자와 표시기가 있는 터미널 이 24시간 작동하는 상황에서 모든 것이 실제 돈과 액세스에 "중단"됩니다. 그리고 타사 dll은 일반적으로 "트로이 목마"이며 이러한 dll을 "맹목적으로" 사용하는 사람은 "하라-키리"입니다.
 

'하지 않는 것보다 과하게 하는 것이 낫다'는 말이 실제로 적용되고 편리한 부분을 구분할 필요가 있다.

제 생각에는 "안전 제일" 원칙은 시장과 클라우드에만 적용되어야 한다고 생각합니다. 자연적으로 보호되어 폐쇄된 제품에 대해 구매자가 비용을 지불하고 제품의 안전성을 확인할 방법이 없습니다. 따라서 시장은 구매자에게 모든 제품의 안전성을 100% 보장할 의무가 있습니다. 그리고 클라우드의 경우 모든 클라우드 컴퓨터는 맬웨어로부터 100% 보호되어야 합니다.

그리고 다른 모든 경우에는 시장을 통한 소프트웨어 제품의 배포 및 본 서비스를 통한 이러한 제품의 획득 및 클라우드 사용과 관련이 없는 모든 경우에 검증되지 않은 dll의 사용에 대한 모든 책임은 전적으로 사용자에게 있습니다.

이 접근 방식을 사용하면 "안전 우선"으로 인한 MQL5 언어의 성능 및 기능 저하와 관련된 많은 현재 문제를 피할 수 있습니다.

 
joo :

따라서 시장은 구매자에게 모든 제품의 안전성을 100% 보장할 의무가 있습니다.

어떻게 상상하십니까? 판매자로서 귀하는 MK에서 마켓플레이스를 임대하고 임대인이 귀하의 제품 사용 안전에 대해 100% 책임을 지도록 요구하고 dll에서 코드의 일부를 닫을 수도 있습니다. 터무니없는.
 
abolk :
어떻게 상상하십니까? 판매자로서 귀하는 MK에서 마켓플레이스를 임대하고 임대인이 귀하의 제품 사용 안전에 대해 100% 책임을 지도록 요구합니다. 터무니없는.

시장은 이미 외부 dll 제품의 사용을 금지하여 제품의 안전성을 보장하고 있습니다. 그리고 MQL5 프로그램 자체는 터미널의 안전한 내부 샌드박스에서 작동합니다.

당신은 그것에 대해 몰랐어요?

 
victorg :

고칠게 많을 것 같아요.

그리고 당신은 시도합니다.

합리적인 DLL은 원래 다른 시스템과의 통합을 위해 작성되었으므로 원시 기능의 형태로 간단한 외부 인터페이스 를 가지고 있습니다. 헤더 파일은 간단합니다.


사실 데이터에 직접 접근하는 데는 아무런 문제가 없습니다. 결국 MetaTrader 자체 아마도 C / C ++로 작성되었을 것이고 아무것도 없을 것입니다. 게다가 일반적으로 링커를 사용하면 어셈블러 삽입도 할 수 있고 아무 것도 할 수 없습니다. MetaTrader 를 기억하십시오 Windows에서 직접 또는 간접적으로 실행하는 것은 엄청난 수의 시스템 dll을 사용하며 그것도 괜찮습니다.

보안에 관한 대화 주제에 전혀 관심이 없으시며 그것이 무엇에 관한 것인지 전혀 모르실 것 같습니다.


사용자의 선택권을 박탈하는 것은 불가능한 것 같습니다. 예를 들어 ALGLIB - dll 및 해당 기본 헤더 파일(파일)을 선택하고 "비뚤어진 핸들"로 이를 건드리지 않고 신뢰할 수 있는 디버그된 라이브러리를 사용할 수 있지만 단순히 MQL 컴파일러에 이것이 MQL 이 아닌 C ++의 헤더 파일입니다.

라이브러리를 가져오고 필요한 경우 사소한 변경으로 헤더에서 내보낸 기능 을 사용합니다.

안전하지 않은 C/C++ 언어에서 *.H 파일을 가져와서 다른(더욱이 안전한) 다른 언어로 사용할 수 있다고 생각하는 것은 언어에 대한 완전한 오해입니다. 꿈을 꿀 수는 있지만 요구할 수는 없습니다.

ALGLIB 라이브러리는 이미 MQL5로 이식되고 있으며 소스 코드에서 사용할 수 있습니다.


문제가 발생할 수 있습니다. 이 라이브러리가 악의적이고 위험한 경우에는 어떻게 됩니까? 그러나 나는 그것을 직접 사용하기로 결정했습니다.

MetaTrader의 최종 사용자 수를 깨닫고 이 수백만 응답자의 숙고의 질과 책임감을 높이 평가하려면 이 질문을 수백만 번 하십시오.

이것이 우리가 환경의 초기 보안에 신경을 쓰는 이유입니다.


즉, MQL 로 작성된 모든 것은 원하는 대로 안전하게 하되, 감히 외부에 연결하면 이는 제 개인적인 문제입니다.

DLL을 사용하십시오 - 개인적인 사용에는 문제가 없습니다.
 
Renat :

안전하지 않은 C/C++ 언어에서 *.H 파일을 가져와서 다른(더욱이 안전한) 언어로 사용할 수 있다고 생각하는 것은 언어에 대한 완전한 오해입니다. 꿈을 꿀 수는 있지만 요구할 수는 없습니다.

ALGLIB 라이브러리는 이미 MQL5로 이식되고 있으며 소스 코드에서 사용할 수 있습니다.

아마도 나는 내 의견을 헛되이 표현했습니다 (그런데 나는 아무 것도 요구하지 않았습니다). 그러나 언어에 대한 오해에 대해서는 여기 당신이 절대적으로 옳습니다. 더 많이 읽고 이해할수록 덜 이해하게 됩니다. ALGLIBmql 5로 다시 작성한 다음 외부 컴파일러( visualc )를 사용하여 DLL 로 컴파일하면 라이브러리가 라이브러리 자체의 원본 소스를 직접 컴파일하는 것보다 라이브러리가 더 안전해집니다. 즉시 DLL 로?

어쨌든. 그러면 그렇게 해.

 
victorg :

ALGLIBmql 5로 다시 작성한 다음 외부 컴파일러( visualc )를 사용하여 DLL 로 컴파일하면 왜 그런지 이해가 되지 않습니다.

당신이 조금 오해했습니다. MQL5에 대한 재작성은 DLL을 사용하지 않고 MQL5 소스에 직접 필요한 모든 수학적 패키지를 포함하기 위해 정확하게 고안되었습니다.
 
Renat :
우리는 다른 언어로 작성된 기존 라이브러리의 변환을 단순화하기 위해 MQL5 컴파일러를 미세 조정하는 데 많은 작업을 수행했습니다.

또한 MQL5 언어의 개발은 계속됩니다. 강력한 코드 프로파일러를 포함하여 더 많은 기능이 곧 제공될 예정입니다.

이제 두 가지 작업이 있습니다.
1) 변환을 위한 유용한 오픈 소스 라이브러리 선택
2) 전환 프로젝트를 구현하기 위해 자원 봉사자를 모으십시오 (이 비용은 우리가 부담합니다)

우선, 잠재적인 프로젝트 목록을 수집하고 싶습니다. 링크와 간단한 설명을 도와주세요.

ALGLIB가 이미 이식되고 있기 때문에 분명히 주제의 주요 질문은 " 사용자가 보고 싶어하는 다른 오픈 소스 라이브러리는 무엇입니까? "입니다.

 
Urain :
ALGLIB는 이미 이식되고 있기 때문에 분명히 주제의 주요 질문은 "사용자가 보고 싶어하는 다른 오픈 소스 라이브러리는 무엇입니까?"입니다.

예, 첫 번째 게시물에서 분명히 했습니다.

이제 두 가지 작업이 있습니다.
1) 변환을 위한 유용한 오픈 소스 라이브러리 선택

 
Rosh :
당신이 조금 잘못 이해했습니다. MQL5에 대한 재작성은 DLL을 사용하지 않고 MQL5 소스에 직접 필요한 모든 수학적 패키지를 포함하기 위해 정확하게 고안되었습니다.

죄송합니다. C / C ++ 코드를 메타 편집기에서 직접 dll로 컴파일하는 약속된 기능에 대해 정말 혼란스러웠습니다.

그러나 나에게 여전히 명확하지 않습니다. 라이브러리(라이브러리)가 이미 DLL로 사용할 준비가 되었을 때 이식하는 이유는 무엇입니까? 결과적으로 나는 상점에서 책을 샀고 그것을 읽기 전에 먼저 노트북에 복사했습니다.

내가 또 뭔가를 엉망으로 만든 게 틀림없어. 더 이상 쓰지 않겠습니다.