답변완료
간단한 질문입니다
data1에 코스피 선물 1분봉
data2에 코스피 선물 일봉
data3에 다우지수 일봉이 들어가 있습니다.
데이터의 기간은 오늘까지로 설정을 했는데,
실수로 data3의 경우 데이터를 작년 오늘(작년 5월 10일)로 설정을 했습니다.
이렇게 하고 기존의 전략을 돌리게 되었을때, data3을 이용한 수식의 계산이 어떻게 되는지 궁금합니다.
예를 들어 간단하게 다우지수의 전일 종가 상승률을 계산한다고 하면.
전일과 전전일 데이터가 없으니 그냥 0이 되는건지,
아니면 그래도 데이터가 있는 작년 5월 9일과 5월 10일의 종가를 이용해서 종가상승률을 구한 값이 찍히는 것인지 궁금합니다.
마찬가지로 data3의 20일 종가 평균을 구할때도, 그냥 0이 되는지,
아니면 작년의 20일간의 기간의 평균을 구하게 되는지 궁금합니다.
감사합니다.
2021-05-10
1105
글번호 148889
시스템
답변완료
수식 문의
안녕하세요?
120분봉의 신호를 필터로 그것보다 작은 봉들의 차트에 적용하려고 합니다.
봤더니 종가 기준 120분봉에서 2021년 4월 30일 17시부터 상방이라고 나옵니다.
그래서, 아래와 같이 수식을 써봤더니
if sdate >=20210430 && sTime == 170000 Then {up2 = true; dn2 = false;}
예컨데 30분봉, 10분봉 등에서는 17시부터 상방이라고 하면 17시가 된 적이 없으므로 안 먹힙니다.
그래서 울며 겨자먹기로
if sdate >=20210430 && sTime == 153000 Then {up2 = true; dn2 = false;}
으로 쓰니 30분봉에서는 오케이지만, 60분봉이나 20분봉 차트에서는 15시 30분이 없으니 여전히 먹히질 않습니다.
이 부분을 어떻게 해결할 방법이 있나요?
그러니까, 뭔가 인풋을 써도 좋은데,
input: 몇분봉(60);
적용차트가 60분봉이라면 즉, 몇분봉 = 60
10분봉이라면 몇분봉 = 10 등을 대입해서,
이 문제를 해결할 수 있는 방법이 있는지 궁금합니다.
현재는 120분봉에서 종가상 17시부터 트렌드가 바뀌는 경우, 17시를 15시로 바꾸어서
if sdate >=20210430 && sTime == 150000 Then {up2 = true; dn2 = false;}
으로 사용하고 있는데, 이건 좀 아닌 것 같아서 이참에 고치고 싶습니다.
참고로, 제가 매매를 고려하는 차트의 분봉은
60, 30, 20, 15, 10, 5, 3, 2, 1 분봉 입니다.
즉, 인풋값에 위의 숫자들을 대입하면, 가장 그럴듯하고 스무스하게 위의 문제를 해결 내지는 해결 비슷하게만 되어도 좋겠습니다.
문제는 그러니까 120분 차트에서 무슨 날 17:00 부터 상방이다 하방이다 라고 했을때, 이걸 하위 분봉차트에 필터로 적용하는 것을 테스트 해보려다 질문 드리는 것입니다.
감사합니다.
2021-05-11
1365
글번호 148888
지표
답변완료
도움 부탁드립니다.
항상 답변 달아주셔서 감사합니다. 코로나가 극성인 가운데 건강하셨으면 좋겠습니다.
수식에 대해 제가 이해를 잘 못해서 그런데 옆에 제가 나름 설명하게 맞는지 확인 부탁드리겠습니다 (__) 매뉴얼 열심히 읽어보며 최대한 노력했는데도 잘 이해가 가지 않습니다. 제대로 확실히 이해하면 다음부터 질문 빈도가 줄어들 것 같습니다. 부탁드립니다.
input : 미국시작(223000),미국종료(060000);
input : 아시아시작(70000),아시아종료(160000);
Input : 당일수익틱수(30);
Var : N1(0),dayPl(0),당일수익(0),Xcond(false),dd(0);
var : Tcond1(false),Tcond2(false),Trade(False),XT(0),XD(0);
if (sdate != sdate[1] and stime >= 미국종료) or //'0시 이후의 봉이 미국 종료 시간보다 같거나 큰 상황'이거나
(sdate == sdate[1] and stime >= 미국종료 and stime[1] < 미국종료) Then //해당 봉과 전 봉의 시작 날짜가 같고 전봉은 미국 종료시간 전에 완성되고 지금 봉은 미국 종료시간 보다 같거나 클 때 완성 될 때,
{
Tcond1 = False; //트레이드 컨디션 = 거짓
}
if (sdate != sdate[1] and stime >= 미국시작) or //위와 비슷
(sdate == sdate[1] and stime >= 미국시작 and stime[1] < 미국시작) Then //위와 비슷
{
dd = dd+1; // 여기서 부터 이해가 안갑니다. dd가 왜 나왔나요? 왜 트레이딩이 시작되면 dd라는 변수에 1을 더한게 dd가 되게 하신건가요?
Tcond1 = true; //트레이딩 시작
N1 = NetProfit; // N1이란 변수는 청산 완료된 거래의 최종 손익
if XD == 0 or (XD > 0 and XT == 1 and DD >= XD+1) or (XD > 0 and XT == 2 and DD >= XD+2) Then //여기도 이해가 안갑니다..XD는 이미 0인데 이 해당 수식들이 무엇을 의미하나요?
Xcond = false; //멈춤 컨디션 = 거래 중지??
}
if (sdate != sdate[1] and stime >= 아시아종료) or //위와 비슷
(sdate == sdate[1] and stime >= 아시아종료 and stime[1] < 아시아종료) Then //위와 비슷
{
Tcond2 = False; //거래 컨디션 2번 = 거짓
Trade = False; //거래 컨디션 거짓
}
if (sdate != sdate[1] and stime >= 아시아시작) or //위와 비슷
(sdate == sdate[1] and stime >= 아시아시작 and stime[1] < 아시아시작) Then
{
Tcond2 = true; //거래 컨디션 2번= 참
Trade = False; //거래 컨디션 거짓
}
당일수익 = PriceScale*당일수익틱수; //당일 수익을 틱에 맞춰 환산
daypl = NetProfit-N1; //아까 이미 넷프로핏과 N1은 같다고 했는데 왜 여기선 빼나요?
if TotalTrades > TotalTrades[1] then // 종결된 총 거래횟수가 그 전 횟수보다 많다면
{
if daypl >= 당일수익 Then //?
{
Xcond = true;
XD = dd; //??
XT = 0; //??
if Tcond1 == true Then
XT = 1;
if Tcond2 == true Then
XT = 2;
}
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
{
Xcond = true;
XD = dd;
XT = 0;
if Tcond1 == true Then
XT = 1;
if Tcond2 == true Then
XT = 2;
}
}
if Tcond2 == true and X Then
Trade = true;
if (Tcond1 == true or (Tcond2 == true and Trade == true)) and Xcond == False Then
ㅠㅠ 도와주십쇼
2021-05-10
1085
글번호 148887
시스템