예스스탁
예스스탁 답변
2021-01-04 10:19:59
안녕하세요
예스스탁입니다.
1
ma(C + 2*Data2(C) + 3*Data3(C), period)
모든 함수는 data번호 함수로 처리하셔야 합니다.
data1(ma(C + 2*Data2(C) + 3*Data3(C), period))
C + 2*Data2(C) + 3*Data3(C)를 모아 평균을 내는데 어떤 봉을 기준으로
period개를 모아 평균을 내야하는지 명시해야 합니다.
명시하지 않으면 모든 데이타를 기준으로 만들어지는 글로벌봉수로 세어 평균을 내므로
동일값이 중복으로 계산될수 있습니다.
마찬가지로 변수도 어떤 데이타를 기준으로 값을 저장하고 이전봉의 값을 리턴하는지 변수선언에 명시하셔야 합니다.
올리신 수식의 각 함수가 어떤 데이타를 기준으로 해야 할지 모르겠습니다.
해당 부분은 사용자분이 기준으로 지정하셔서 정해주셔야 합니다.
일반적으로 신호가 발생하는 기준데이타는 data1이므로 data1기준으로 작성해 드립니다.
Input: period1(20), p1(1), q1(1), b1(2), c1(3), n1(10); // 5분봉용
Input: period1(20), p2(1), q2(1), b2(2), c2(3), n2(10); // 60분봉용
Input: period1(20), p3(1), q3(1), b3(2), c3(3), n3(10); // 일봉용
Var: up1(false,Data1), dn1(false,Data1), up2(false,Data1), dn2(false,Data1);
Var: GG1(0,Data1), GG2(0,Data1), GG3(0,Data1), Filter(0,Data1), n1(1,Data1), n2(2,Data1);
var: var1(0,Data1),Var2(0,Data1),Var3(0,Data1);
GG1 = data1(ma(C + 2*Data2(C) + 3*Data3(C), period));
GG2 = data1(ma(Data4(C) + 2*Data5(C) + 3*Data6(C), period));
GG3 = data1(ma(Data7(C) + 2*Data8(C) + 3*Data9(C), period));
Var1 = data1(a1*Fct1(GG1, C, Data2(H), Data3(L), b1) + a2*Fct2(GG1, C, Data2(H), Data3(L), c1));
Var2 = data1(a11*Fct1(GG2, Data4(C), Data5(H), Data6(L), b11) + a12*Fct2(GG2, Data4(C), Data5(H), Data6(L), c11));
Var3 = data1(a21*Fct1(GG3, Data7(C), Data8(H), Data9(L), b21) + a22*Fct2(GG3, Data7(C), Data8(H), Data9(L), c21));
Filter = var2 + var3;
If Filter >= n2 then {up2 = true; dn2 = false;} // 일봉과 60분봉 필터는 상방!
If Filter <= -n2 then {up2 = false; dn2 = true;} // 일봉과 60분봉 필터는 하방!
2
data번호 함수로 처리하시여 합니다.
함수는 기분으로 data2(함수)로 작성되어야 합니다.
3
시스템 중간에 외부변수를 조정하면
시스템은 다시 적용되고 변경전과 변경후에 이전에 발생한 신호가 다를수 있습니다.
그러므로 신호를 연계해서 갈수 없는 경우가 생길수 있습니다.
4.5
시스템의 포지션관련 함수들은 신호 수량은 차트 신호상의 수량만 인지합니다.
수동주문여부는 시스템에서 감지를 하지 못합니다.
6
차트에 적용된 각 수식은 모두 별도로 계산하고 동작합니다.
동일계산이라도 시스템에서 계산한것을 지표에서 이용하지 않습니다.
7
참조데이타의 시작위치 때문일것으로 판단됩니다.
수식에서 사용된 계산내용에 따라 기본차트와 참조데이타의 시작위치가 다르면
기본차트봉을 기준으로 참조데이타의 값이 없거나
반대로 참조데이타의 봉은 있는데 기본차트의 봉이 없는 구간이면
계산식에서 n/a가 저장되어 이후 신호에 영향을 줄수 있습니다.
시뮬레이션 차트는 일반적으로 기준을 지정해 데이타를 호출해서
같은 위치에서 데이타가 시작되어 해당 문제가 없지만 전략실행차트는
모든 데이타가 n개봉으로 시작위치가 다르게 됩니다.
아래와 같은 조건을 수식전체에 주어 각 데이타가 최소 1개이상 발생한 후부터 계산되게
처리해 보시기 바랍니다.
if Data1(Index) >= 0 and Data2(Index) >= 0 and Data3(Index) >= 0 and Data4(Index) >= 0 Then
즐거운 하루되세요
> 에구머니 님이 쓴 글입니다.
> 제목 : 수식 문의
> 안녕하세요?
수식 정정 부탁 드립니다.
감사드리며, 멋진 2021 되길 기원합니다.