커뮤니티

시스템식 문의 드립니다.

프로필 이미지
산본드래곤
2022-04-25 19:18:17
1314
글번호 158324
답변완료
안녕하세요. 전에 시스템식 가이드 해주신대로 data5 차트에서 countIf 수식을 사용하기 위해 다음과 같이 사용하였으나 적용이 안돼 재문의드립니다. [원하는 수식] Data5(3분 차트)의 현재 시점에서 3봉 내에 이평1선이 선행스팬1을 크로스다운하지 않거나(or) 3봉 내에 이평1선이 선행스팬1과 같은 적이 없을 때 ~ 실행. [사용한 수식] Variables : 이평1선(0, data5), 선행스팬1(0, data5); 전환선 = (Data5(Highest(Data5(High), TurnLen)) + Data5(Lowest(Data5(Low), TurnLen))) / 2; 기준선 = (Data5(Highest(Data5(High), StdLen)) + Data5(Lowest(Data5(Low), StdLen))) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 이평1선 = Data5(Ma(Close,1)); Condition1 = (CrossDown(이평1선, 선행스팬1[25]) || (이평1선 == 선행스팬1[25]); Condition2 = Data5(Countif(Condition1, 3)) < 1; if Condition2 Then { ~실행 } [결과] Data5 차트로 적용이 안되는 것 같습니다. 실수한 부분이 있으면 알려주시면 감사하겠습니다. 감사합니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2022-04-26 11:09:11

안녕하세요 예스스탁입니다. Condition1,Condition2도 다른 변수와 같이 데이타번호 지정해서 선언하셔야 합니다. Variables : 이평1선(0, data5), 선행스팬1(0, data5); var : cond1(False,data5),cond2(False,data5); 전환선 = (Data5(Highest(Data5(High), TurnLen)) + Data5(Lowest(Data5(Low), TurnLen))) / 2; 기준선 = (Data5(Highest(Data5(High), StdLen)) + Data5(Lowest(Data5(Low), StdLen))) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 이평1선 = Data5(Ma(Close,1)); Cond1 = (CrossDown(이평1선, 선행스팬1[25]) || (이평1선 == 선행스팬1[25]); Cond2 = Data5(Countif(cond1, 3)) < 1; if Cond2 Then { ~실행 } 즐거운 하루되세요 > 산본드래곤 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 안녕하세요. 전에 시스템식 가이드 해주신대로 data5 차트에서 countIf 수식을 사용하기 위해 다음과 같이 사용하였으나 적용이 안돼 재문의드립니다. [원하는 수식] Data5(3분 차트)의 현재 시점에서 3봉 내에 이평1선이 선행스팬1을 크로스다운하지 않거나(or) 3봉 내에 이평1선이 선행스팬1과 같은 적이 없을 때 ~ 실행. [사용한 수식] Variables : 이평1선(0, data5), 선행스팬1(0, data5); 전환선 = (Data5(Highest(Data5(High), TurnLen)) + Data5(Lowest(Data5(Low), TurnLen))) / 2; 기준선 = (Data5(Highest(Data5(High), StdLen)) + Data5(Lowest(Data5(Low), StdLen))) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 이평1선 = Data5(Ma(Close,1)); Condition1 = (CrossDown(이평1선, 선행스팬1[25]) || (이평1선 == 선행스팬1[25]); Condition2 = Data5(Countif(Condition1, 3)) < 1; if Condition2 Then { ~실행 } [결과] Data5 차트로 적용이 안되는 것 같습니다. 실수한 부분이 있으면 알려주시면 감사하겠습니다. 감사합니다.
프로필 이미지

산본드래곤

2022-04-26 22:54:48

안녕하세요. 답변 주신대로 적용하였는데도 잘 되지 않아 문의 드립니다. 현재 제가 사용하는 Data1은 3분 차트이고 Data2는 5분 차트입니다. 혹시 3분과 5분 차트에서 발생되는 시간의 갭 때문에 재대로 적용이 안될 수도 있나요? 제가 원하는 식은 3분 차트에서 3봉전 내에서 2선과 60선이 Crossup이 됐을 경우 진입 금지 && 5분 차트에서 3봉전 내에서 1선과 30선이 Crossup이 됐을 경우 진입 금지 식은 아래와 같이 적용하였습니다. Vars : Cond29(False,Data1),Cond30(False,Data1),Cond31(False,Data2),Cond32(False,Data2); vars : Ma1(0,data1), Ma2(0,data1), Ma3(0,data2), Ma4(0,data2); Ma1 = Data1(Ma(close,2)); Ma2 = Data1(Ma(close,60)); Ma3 = Data2(Ma(close,1)); Ma4 = Data2(Ma(close,30)); Cond29 = CrossUp(Ma1, Ma2); Cond30 = Data1(CountIF(Cond29, 3)) < 1; Cond31 = CrossUp(Ma3, Ma4); Cond32 = Data2(CountIF(Cond31, 3)) < 1; if Cond30 && Cond32 Then { ~실행 } 제가 어떤 부분을 놓쳤는지 확인해주시면 감사하겠습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 문의 드립니다. > 안녕하세요 예스스탁입니다. Condition1,Condition2도 다른 변수와 같이 데이타번호 지정해서 선언하셔야 합니다. Variables : 이평1선(0, data5), 선행스팬1(0, data5); var : cond1(False,data5),cond2(False,data5); 전환선 = (Data5(Highest(Data5(High), TurnLen)) + Data5(Lowest(Data5(Low), TurnLen))) / 2; 기준선 = (Data5(Highest(Data5(High), StdLen)) + Data5(Lowest(Data5(Low), StdLen))) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 이평1선 = Data5(Ma(Close,1)); Cond1 = (CrossDown(이평1선, 선행스팬1[25]) || (이평1선 == 선행스팬1[25]); Cond2 = Data5(Countif(cond1, 3)) < 1; if Cond2 Then { ~실행 } 즐거운 하루되세요 > 산본드래곤 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 안녕하세요. 전에 시스템식 가이드 해주신대로 data5 차트에서 countIf 수식을 사용하기 위해 다음과 같이 사용하였으나 적용이 안돼 재문의드립니다. [원하는 수식] Data5(3분 차트)의 현재 시점에서 3봉 내에 이평1선이 선행스팬1을 크로스다운하지 않거나(or) 3봉 내에 이평1선이 선행스팬1과 같은 적이 없을 때 ~ 실행. [사용한 수식] Variables : 이평1선(0, data5), 선행스팬1(0, data5); 전환선 = (Data5(Highest(Data5(High), TurnLen)) + Data5(Lowest(Data5(Low), TurnLen))) / 2; 기준선 = (Data5(Highest(Data5(High), StdLen)) + Data5(Lowest(Data5(Low), StdLen))) / 2; 선행스팬1 = (전환선 + 기준선) / 2 ; 이평1선 = Data5(Ma(Close,1)); Condition1 = (CrossDown(이평1선, 선행스팬1[25]) || (이평1선 == 선행스팬1[25]); Condition2 = Data5(Countif(Condition1, 3)) < 1; if Condition2 Then { ~실행 } [결과] Data5 차트로 적용이 안되는 것 같습니다. 실수한 부분이 있으면 알려주시면 감사하겠습니다. 감사합니다.