예스스탁
예스스탁 답변
2021-11-29 15:44:42
안녕하세요
예스스탁입니다.
차트에 타주기 지표를 계산할 만큼 충분한 데이타가 있얻야 합니다.
또한 스토케스틱과 같이 지수이평을 사용하는 지표의 경우 과거봉수에 따라 현재값이 달라지므로
차트에 가능한 많은 봉을 조회하고 적용하셔야 합니다.
전략실행차트는 최대 1만개봉 까지 조회되므로 1만개봉 조회후에 적용하시기 바랍니다.
input : short(12),long(26),P(60);
input : daymaPeriod(20);
input : 분(240),sto1(10),sto2(5),sto3(5);
var : MACDV(0),mav(0),T(0);
var : cnt(0),sum(0),daymav(0);
var : S1(0),D1(0),TM(0),TF(0);
var : Hv(0), LV(0), FK(0), SK(0), SD(0);
var : Ep1(0), EP2(0), JISU(0), DINDEX(0), PreSK(0), PreSD(0);
Array : HH[50](0),LL[50](0);
MACDV = MACD(short,long);
mav = ma(C,P);
sum = 0;
For cnt = 0 to daymaPeriod-1
{
sum = sum + DayClose(cnt);
}
daymav = sum/daymaPeriod;
Ep1 = 2/(sto2+1);
Ep2 = 2/(sto3+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TimeToMinutes(stime)%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[sto1-1] > 0 and LL[sto1-1] > 0 then
{
if bdate != bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) or stime == 154500 Then
{
DINDEX = DINDEX+1;
PreSK = SK[1];
PreSD = SD[1];
}
Hv = HH[0];
LV = LL[0];
for cnt = 0 to sto1-1
{
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
FK = (C-LV)/(HV-LV)*100;
if DINDEX <= 1 then
{
SK = FK;
SD = SK;
}
else
{
SK = FK * EP1 + PreSK * (1-EP1);
SD = SK * EP2 + PreSD * (1-EP2);
}
if SK > SD and PreSK <= PreSD Then
{
T = 1;
}
if SK < SD and PreSK >= PreSD Then
{
T = -1;
if SK > 80 Then
T = -2;
}
if C < daymav and
T == -2 and SK < PreSK and
CrossDown(MACDV,0) Then
Sell("s",OnClose,DEF,2);
if MarketPosition == 1 and CrossUp(C,mav) Then
ExitLong();
}
}
즐거운 하루되세요
> 푸른파도1 님이 쓴 글입니다.
> 제목 : 60분봉에서 일봉챠트 참조
> 60분봉 챠트에서 일봉의 20이평선과 240분봉의 스토케스틱을 참조할수 있나요
할수 있다면 어떻게 해야 하나요
적용할 시스템트레이딩 챠트 : AUD 60분봉
매도조건
1. 가격이 일봉의 20 이평선 아래에 위치
2. 240 이평선에서 스토케스틱의 %K가 %D를 80선 위에서 데드크로스후 하강
3. 60분봉의 MACD가 0 점 아래로 이탈시 10계약 매도
청산조건
1. 60이평선의 스토케스틱이 골든크로스시 청산
청산후 반복진입 금지
푸른파도1
2021-11-29 20:26:06
프로그램 설명을 위한 주석을 달아주시면 감사하겠습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 60분봉에서 일봉챠트 참조
>
안녕하세요
예스스탁입니다.
차트에 타주기 지표를 계산할 만큼 충분한 데이타가 있얻야 합니다.
또한 스토케스틱과 같이 지수이평을 사용하는 지표의 경우 과거봉수에 따라 현재값이 달라지므로
차트에 가능한 많은 봉을 조회하고 적용하셔야 합니다.
전략실행차트는 최대 1만개봉 까지 조회되므로 1만개봉 조회후에 적용하시기 바랍니다.
input : short(12),long(26),P(60);
input : daymaPeriod(20);
input : 분(240),sto1(10),sto2(5),sto3(5);
var : MACDV(0),mav(0),T(0);
var : cnt(0),sum(0),daymav(0);
var : S1(0),D1(0),TM(0),TF(0);
var : Hv(0), LV(0), FK(0), SK(0), SD(0);
var : Ep1(0), EP2(0), JISU(0), DINDEX(0), PreSK(0), PreSD(0);
Array : HH[50](0),LL[50](0);
MACDV = MACD(short,long);
mav = ma(C,P);
sum = 0;
For cnt = 0 to daymaPeriod-1
{
sum = sum + DayClose(cnt);
}
daymav = sum/daymaPeriod;
Ep1 = 2/(sto2+1);
Ep2 = 2/(sto3+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TimeToMinutes(stime)%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[sto1-1] > 0 and LL[sto1-1] > 0 then
{
if bdate != bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) or stime == 154500 Then
{
DINDEX = DINDEX+1;
PreSK = SK[1];
PreSD = SD[1];
}
Hv = HH[0];
LV = LL[0];
for cnt = 0 to sto1-1
{
if HH[cnt] > Hv then
Hv = HH[cnt];
if LL[cnt] < LV then
LV = LL[cnt];
}
FK = (C-LV)/(HV-LV)*100;
if DINDEX <= 1 then
{
SK = FK;
SD = SK;
}
else
{
SK = FK * EP1 + PreSK * (1-EP1);
SD = SK * EP2 + PreSD * (1-EP2);
}
if SK > SD and PreSK <= PreSD Then
{
T = 1;
}
if SK < SD and PreSK >= PreSD Then
{
T = -1;
if SK > 80 Then
T = -2;
}
if C < daymav and
T == -2 and SK < PreSK and
CrossDown(MACDV,0) Then
Sell("s",OnClose,DEF,2);
if MarketPosition == 1 and CrossUp(C,mav) Then
ExitLong();
}
}
즐거운 하루되세요
> 푸른파도1 님이 쓴 글입니다.
> 제목 : 60분봉에서 일봉챠트 참조
> 60분봉 챠트에서 일봉의 20이평선과 240분봉의 스토케스틱을 참조할수 있나요
할수 있다면 어떻게 해야 하나요
적용할 시스템트레이딩 챠트 : AUD 60분봉
매도조건
1. 가격이 일봉의 20 이평선 아래에 위치
2. 240 이평선에서 스토케스틱의 %K가 %D를 80선 위에서 데드크로스후 하강
3. 60분봉의 MACD가 0 점 아래로 이탈시 10계약 매도
청산조건
1. 60이평선의 스토케스틱이 골든크로스시 청산
청산후 반복진입 금지