MQL5에서, 그리고 MQL4에서는 더욱 그렇습니다. 이러한 알고리즘의 경우 코드 실행 속도가 너무 낮습니다. 어쨌든, 순수한 MQL에서는 아무 것도 작동하지 않으며 최소한 DLL을 생성해야 합니다. 그리고 이것으로부터 여전히 의미가 없을 것입니다. 왜냐하면. 매 틱 또는 작은 기간 막대에서 실시간으로 포트폴리오를 최적화할 필요가 없습니다.
유리, 이것은 사실이 아닙니다. mql5는 속도면에서 두꺼비보다 열등하지 않습니다.
예를 들어 Forex와 관련하여 사용의 의미에 관해서는 도구보다는 전략 포트폴리오를 최적화하는 데 더 관심이 있습니다. 그래서 ... 변명은 받아들여지지 않습니다. :)
하지만 좋은 소식은 mql5 코드를 작성할 때 함께할 수 있다는 것입니다. 나는 심지어 모든 것을 스스로 쓸 수 있습니다. 알고리즘에 대한 설명만 있으면 됩니다.
예를 들어 Forex와 관련하여 사용의 의미에 관해서는 도구보다는 전략 포트폴리오를 최적화하는 데 더 관심이 있습니다. 그래서 ... 변명은 받아들여지지 않습니다. :)
자, CSV 파일에서 지분 전략의 첫 번째 차이점을 버리고 최적화하십시오. MQL5가 네이티브 코드에서 실행되는 애플리케이션을 "추월"할 수 있다는 변명이 필요한 이유는 무엇입니까?
메타드라이버 :
하지만 좋은 소식은 mql5 코드를 작성할 때 여러분과 함께 할 수 있다는 것입니다. 나는 심지어 모든 것을 스스로 쓸 수 있습니다. 알고리즘에 대한 설명만 있으면 됩니다.
가세요. Brown-Robinson 알고리즘은 비밀이 아닙니다. 다음은 자바 코드입니다.
privateint [] optimization( double [][] a) {
Random rand = new Random();
int m = a.length;
int n = a[ 0 ].length;
int [] p = newint [m];
Arrays.fill(p, 0 );
int [] q = newint [n];
Arrays.fill(q, 0 );
double [] x = newdouble [m];
Arrays.fill(x, 0 d);
double [] y = newdouble [n];
Arrays.fill(y, 0 d);
int r = rand .nextInt(m);
int c = 0 ;
for ( int t = 0 ; t < 10000000 ; t++) {
for ( int j = 0 ; j < n; j++) {
y[j] = y[j] + a[r][j];
}
c = 0 ;
for ( int j = 1 ; j < n; j++) {
if ((y[j] == y[c]) && rand .nextBoolean()) {
c = j;
}
if (y[j] > y[c]) {
c = j;
}
}
q[c] = q[c] + 1 ;
for ( int i = 0 ; i < m; i++) {
x[i] = x[i] + a[i][c];
}
r = 0 ;
for ( int i = 1 ; i < m; i++) {
if ((x[i] == x[r]) && rand .nextBoolean()) {
r = i;
}
if (x[i] < x[r]) {
r = i;
}
}
p[r] = p[r] + 1 ;
}
return q;
}
나는 확인했다. 사실, 자바가 아니라 샤프와 비교했습니다. 같은 속도를 얻었습니다. Java가 Sharpe보다 30-40% 이상 빠르다고 생각하지 않습니다. 차이가 있다면 누구에게 유리한지는 아직 알려지지 않았습니다. Java와 비교하는 데 동의합니다. 비교 테스트에 어떤 코드를 추천하시겠습니까?
자, CSV 파일에서 지분 전략의 첫 번째 차이점을 버리고 최적화하십시오.
저는 이 옵션에 관심이 없습니다. 임베딩 가능한 코드를 원합니다. 그리고 나는 할 것이다.
MQL5가 네이티브 코드에서 실행되는 애플리케이션을 "추월"할 수 있다는 변명이 필요한 이유는 무엇입니까?
위 참조. 나는 추월에 의존하지 않고 정체성에 전적으로 의존합니다(플러스 또는 마이너스 10%).
가세요. Brown-Robinson 알고리즘은 비밀이 아닙니다. 다음은 자바 코드입니다.
예, 이 코드가 있습니다. 이미 게시하셨습니다. 나는 그를 배트에서 바로 니아실링했다. 나는 단지 잘못 행동하기 위해서가 아니라 정말로 이해하기 위해 적어도 댓글에 의존했습니다.
알겠습니다. 다시 시도하겠습니다. 인터넷에 알고리즘 아이디어에 대한 설명이 있습니다. 내가 알아낼께.
Yura, 이것은 뉴스인 것 같지만 mql5 가상 머신도 비슷한 방식으로 작동합니다. 컴파일러는 바이트코드를 만들고 시작하기 전에 네이티브로 추가 컴파일됩니다. 자바와 샤프에서처럼. mql5 포럼을 더 자주 읽으십시오.
나는 확인했다. 사실, 자바가 아니라 샤프와 비교했습니다. 같은 속도를 얻었습니다. Java가 Sharpe보다 30~40% 이상 빠르다고 생각하지 않습니다. 차이점이 있다면 누구에게 유리한지는 아직 알려지지 않았습니다. Java와 비교하는 데 동의합니다. 비교 테스트를 위해 어떤 코드를 추천하시겠습니까?
저는 이 옵션에 관심이 없습니다. 임베딩 가능한 코드를 원합니다. 그리고 나는 할 것이다.
위 참조. 나는 추월에 의존하지 않고 정체성에 전적으로 의존합니다(플러스 또는 마이너스 10%).
예, 이 코드가 있습니다. 이미 게시하셨습니다. 나는 그를 배트에서 바로 니아실링했다. 나는 단지 잘못 행동하기 위해서가 아니라 정말로 이해하기 위해 적어도 댓글에 의존했습니다.
알겠습니다. 다시 시도하겠습니다. 인터넷에 알고리즘 아이디어에 대한 설명이 있습니다. 내가 알아낼께.
예, 이 코드가 있습니다. 이미 게시하셨습니다. 나는 그를 배트에서 바로 니아실링했다. 나는 단지 잘못 행동하기 위해서가 아니라 정말로 이해하기 위해 적어도 댓글에 의존했습니다.
알겠습니다. 다시 시도하겠습니다. 인터넷에 알고리즘 아이디어에 대한 설명이 있습니다. 내가 알아낼께.
코드에는 복잡한 것이 없습니다. 지불 행렬은 인수로 전달됩니다 - a[][], 출력에서 지불 행렬의 열에 대한 플레이어의 최적 전략은 q입니다.
Random rand = new Random(); // Объект rand - генератор случайных чисел
int [] q = newint [n]; // Объявление целочисленного массива q размером n и выделение под него памяти
int m = a.length; // переменной m присваивается значение в виде количества строк в платежной матрице
int n = a[ 0 ].length; // переменной n присваивается значение в виде количества столбцов в платежной матрице
Arrays.fill(p, 0 ); // Массив p инициализируется нулевыми значениями
int r = rand .nextInt(m); // значению переменной r присваивается случайное число в диапазоне от 0 до m - 1
rand .nextBoolean() // с вероятностью 50% / 50% даст случайным образом значение true или false
C와 같은 언어를 아는 모든 프로그래머는 외부 도움 없이도 이해할 수 있습니다. Java와 C를 구별하는 유일한 점은 메모리 할당을 해제할 필요가 없다는 것입니다. 저것들. 변수가 중괄호 {} 블록 내부에 선언된 경우 이는 블록이 닫힌 후 블록 외부의 변수가 더 이상 유효하지 않고 Java 가상 머신 이 할당된 메모리를 독립적으로 해제함을 의미합니다. 블록 내부에서 선언된 변수를 참조하려고 할 때 바로 이 블록 외부에서 Java 컴파일러는 오류를 생성합니다.
Yuriy, 귀하의 프로그램에 의한 포트폴리오 구성에 대해 질문이 있습니다. "상관 고문" 스레드에서 질문했지만 이 스레드를 발견하고 여기에 질문합니다. 포트폴리오에 전공과 함께 금을 포함하지만 통화 쌍과 금은 다른 틱 가격을 갖습니다. 이것은 계산에서 어떻게 수정되며 포트폴리오에 직접 어떤 쌍을 사용합니까? 나는 이 주제에 관심이 있었고 경험 많은 전문가로부터 시스템 사용의 대략적인 결과를 알고 싶습니다.
FION : 유리님, 프로그램에 의한 포트폴리오 구성에 대해 질문이 있습니다. "상관관계 고문" 스레드에서 질문했는데 이 스레드를 발견하고 여기에서 질문합니다. 포트폴리오에 전공과 함께 금을 포함하지만 통화 쌍과 금은 다른 틱 가격을 갖습니다. 이것은 계산에서 어떻게 수정되며 포트폴리오에 직접 어떤 쌍을 사용합니까? 나는 이 주제에 관심이 있었고 경험 많은 전문가로부터 시스템 사용의 대략적인 결과를 알고 싶습니다.
MQL5에서, 그리고 MQL4에서는 더욱 그렇습니다. 이러한 알고리즘의 경우 코드 실행 속도가 너무 낮습니다. 어쨌든, 순수한 MQL에서는 아무 것도 작동하지 않으며 최소한 DLL을 생성해야 합니다. 그리고 이것으로부터 여전히 의미가 없을 것입니다. 왜냐하면. 매 틱 또는 작은 기간 막대에서 실시간으로 포트폴리오를 최적화할 필요가 없습니다.
유리, 이것은 사실이 아닙니다. mql5는 속도면에서 두꺼비보다 열등하지 않습니다.
예를 들어 Forex와 관련하여 사용의 의미에 관해서는 도구보다는 전략 포트폴리오를 최적화하는 데 더 관심이 있습니다. 그래서 ... 변명은 받아들여지지 않습니다. :)
하지만 좋은 소식은 mql5 코드를 작성할 때 함께할 수 있다는 것입니다. 나는 심지어 모든 것을 스스로 쓸 수 있습니다. 알고리즘에 대한 설명만 있으면 됩니다.
재미있을 것 같아요.
유리, 이것은 사실이 아닙니다. mql5는 속도면에서 두꺼비보다 열등하지 않습니다.
아이들에게 이 이야기를 들려주세요. Java 가상 머신은 JIT 컴파일을 수행합니다. 프로그램을 실행하기 전에 Java 코드를 기계어로 컴파일하십시오. 따라서 Java 애플리케이션의 실행은 네이티브 코드에서 발생합니다.
Java 및 C++에서 Quake2의 성능을 비교한 결과 보기: http://www.bytonic.de/html/benchmarks.html
다음은 주제에 대한 자세한 내용입니다. 벤치마크 C#, C++ , Java , Delphi
결국 자바와 MQL5로 작성된 동일한 벤치마크를 실행하면 이를 쉽게 확인할 수 있다.
예를 들어 Forex와 관련하여 사용의 의미에 관해서는 도구보다는 전략 포트폴리오를 최적화하는 데 더 관심이 있습니다. 그래서 ... 변명은 받아들여지지 않습니다. :)
자, CSV 파일에서 지분 전략의 첫 번째 차이점을 버리고 최적화하십시오. MQL5가 네이티브 코드에서 실행되는 애플리케이션을 "추월"할 수 있다는 변명이 필요한 이유는 무엇입니까?
하지만 좋은 소식은 mql5 코드를 작성할 때 여러분과 함께 할 수 있다는 것입니다. 나는 심지어 모든 것을 스스로 쓸 수 있습니다. 알고리즘에 대한 설명만 있으면 됩니다.
가세요. Brown-Robinson 알고리즘은 비밀이 아닙니다. 다음은 자바 코드입니다.
아이들에게 이 이야기를 들려주세요. Java 가상 머신은 JIT 컴파일을 수행합니다. 프로그램을 실행하기 전에 Java 코드를 기계어로 컴파일하십시오. 따라서 Java 애플리케이션의 실행은 네이티브 코드에서 발생합니다.
Yura, 이것은 뉴스인 것 같지만 mql5 가상 머신도 비슷한 방식으로 작동합니다. 컴파일러는 바이트코드를 만들고 시작하기 전에 네이티브로 추가 컴파일됩니다. 자바와 샤프에서처럼. mql5 포럼을 더 자주 읽으십시오.
Java 및 C++에서 Quake2의 성능을 비교한 결과 보기: http://www.bytonic.de/html/benchmarks.html
다음은 주제에 대한 자세한 내용입니다. 벤치마크 C#, C++ , Java , Delphi
결국 이것은 Java와 MQL5로 작성된 동일한 벤치마크를 실행하여 확인하기 쉽습니다.
나는 확인했다. 사실, 자바가 아니라 샤프와 비교했습니다. 같은 속도를 얻었습니다. Java가 Sharpe보다 30-40% 이상 빠르다고 생각하지 않습니다. 차이가 있다면 누구에게 유리한지는 아직 알려지지 않았습니다. Java와 비교하는 데 동의합니다. 비교 테스트에 어떤 코드를 추천하시겠습니까?
자, CSV 파일에서 지분 전략의 첫 번째 차이점을 버리고 최적화하십시오.
저는 이 옵션에 관심이 없습니다. 임베딩 가능한 코드를 원합니다. 그리고 나는 할 것이다.
MQL5가 네이티브 코드에서 실행되는 애플리케이션을 "추월"할 수 있다는 변명이 필요한 이유는 무엇입니까?
가세요. Brown-Robinson 알고리즘은 비밀이 아닙니다. 다음은 자바 코드입니다.
예, 이 코드가 있습니다. 이미 게시하셨습니다. 나는 그를 배트에서 바로 니아실링했다. 나는 단지 잘못 행동하기 위해서가 아니라 정말로 이해하기 위해 적어도 댓글에 의존했습니다.
알겠습니다. 다시 시도하겠습니다. 인터넷에 알고리즘 아이디어에 대한 설명이 있습니다. 내가 알아낼께.
Yura, 이것은 뉴스인 것 같지만 mql5 가상 머신도 비슷한 방식으로 작동합니다. 컴파일러는 바이트코드를 만들고 시작하기 전에 네이티브로 추가 컴파일됩니다. 자바와 샤프에서처럼. mql5 포럼을 더 자주 읽으십시오.
나는 확인했다. 사실, 자바가 아니라 샤프와 비교했습니다. 같은 속도를 얻었습니다. Java가 Sharpe보다 30~40% 이상 빠르다고 생각하지 않습니다. 차이점이 있다면 누구에게 유리한지는 아직 알려지지 않았습니다. Java와 비교하는 데 동의합니다. 비교 테스트를 위해 어떤 코드를 추천하시겠습니까?
저는 이 옵션에 관심이 없습니다. 임베딩 가능한 코드를 원합니다. 그리고 나는 할 것이다.
위 참조. 나는 추월에 의존하지 않고 정체성에 전적으로 의존합니다(플러스 또는 마이너스 10%).예, 이 코드가 있습니다. 이미 게시하셨습니다. 나는 그를 배트에서 바로 니아실링했다. 나는 단지 잘못 행동하기 위해서가 아니라 정말로 이해하기 위해 적어도 댓글에 의존했습니다.
알겠습니다. 다시 시도하겠습니다. 인터넷에 알고리즘 아이디어에 대한 설명이 있습니다. 내가 알아낼께.
아주 웃긴...
하지만
;)
예, 이 코드가 있습니다. 이미 게시하셨습니다. 나는 그를 배트에서 바로 니아실링했다. 나는 단지 잘못 행동하기 위해서가 아니라 정말로 이해하기 위해 적어도 댓글에 의존했습니다.
알겠습니다. 다시 시도하겠습니다. 인터넷에 알고리즘 아이디어에 대한 설명이 있습니다. 내가 알아낼께.
코드에는 복잡한 것이 없습니다. 지불 행렬은 인수로 전달됩니다 - a[][], 출력에서 지불 행렬의 열에 대한 플레이어의 최적 전략은 q입니다.
int m = a.length; // переменной m присваивается значение в виде количества строк в платежной матрице
Arrays.fill(p, 0 ); // Массив p инициализируется нулевыми значениями
rand .nextBoolean() // с вероятностью 50% / 50% даст случайным образом значение true или false
C와 같은 언어를 아는 모든 프로그래머는 외부 도움 없이도 이해할 수 있습니다. Java와 C를 구별하는 유일한 점은 메모리 할당을 해제할 필요가 없다는 것입니다. 저것들. 변수가 중괄호 {} 블록 내부에 선언된 경우 이는 블록이 닫힌 후 블록 외부의 변수가 더 이상 유효하지 않고 Java 가상 머신 이 할당된 메모리를 독립적으로 해제함을 의미합니다. 블록 내부에서 선언된 변수를 참조하려고 할 때 바로 이 블록 외부에서 Java 컴파일러는 오류를 생성합니다.이 모든 것을 mql5로 작성하고 소스 코드를 게시하지 않으시겠습니까?
http://r-portfolio.sourceforge.net/ 의 공개 도메인 소스
너무 많이 필요한 경우 프로그래밍 언어로 직접 다시 작성하거나 Job 에 문의할 수 있습니다. MQL 코드로 무언가를 구현해야 하는 사람들의 다양한 변덕과 욕망을 충족시킵니다.
유리님, 프로그램에 의한 포트폴리오 구성에 대해 질문이 있습니다. "상관관계 고문" 스레드에서 질문했는데 이 스레드를 발견하고 여기에서 질문합니다. 포트폴리오에 전공과 함께 금을 포함하지만 통화 쌍과 금은 다른 틱 가격을 갖습니다. 이것은 계산에서 어떻게 수정되며 포트폴리오에 직접 어떤 쌍을 사용합니까? 나는 이 주제에 관심이 있었고 경험 많은 전문가로부터 시스템 사용의 대략적인 결과를 알고 싶습니다.
Java 가상 머신은 JIT 컴파일을 수행합니다. 프로그램을 실행하기 전에 Java 코드를 기계어로 컴파일하십시오. 따라서 Java 애플리케이션의 실행은 네이티브 코드에서 발생합니다.
jit to java는 기본 코드로 청크로 컴파일됩니다. 내가 이해하는 한 mql5는 전체 프로그램을 한 번에 기계어로 컴파일합니다. 이것은 jit가 아니라 aot입니다.
Correlation EA 에서 답변 보기
.
http://sourceforge.net/projects/r-portfolio/ - 러시아어로 되어 있습니까?