예스스탁
예스스탁 답변
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 차트로 적용이 안되는 것 같습니다. 실수한 부분이 있으면 알려주시면 감사하겠습니다.
감사합니다.