커뮤니티
수식 수정 부탁드립니다.
2017-02-20 14:01:57
91
글번호 107007
안녕하세요.
항상 수고가 많으십니다.
---- 질문입니다 ------------------------------------------
data1은 옵션이고, data2 는 선물입니다.
참조 데이타 - data2가 갭상승한 경우와 갭하락 한 경우를 나누어서
전략식을 만들었는데, 매수1과 매도1만 신호가 나옵니다.
어찌된 영문인지 아무리 보고 또 보아도 모르겠습니다.
잘못된 부분이 있다면 수정 부탁드립니다.
input : exittime1(153000); // 거래 종료시간
input : stopper1(20); // 손절 틱 수
//////////////////////////////////////////
var10 = data2(ma(c, 5));
var20 = data2(ma(c, 10));
///////////////////////////////////////////////
// 전략식 시작
///////////////////////////////////////////////
if dayindex == 0 then
{
var1 = data2(o) - data2(DayClose(1)); // 당일 시가와 전일 종가와의 차이
}
if DayIndex >= 1 then
{
if var1 >= 0.3 Then // 선물이 0.3 이상 갭상승한 경우
{
if var10 > var10[1] then
{
buy("매수1");
}
if var10 < var10[1] then
{
sell("매도1");
}
}
if var1 <= -0.3 Then // 선물이 -0.3 이상 갭하락한 경우
{
if var20 > var20[1] then
{
buy("매수2");
}
if var20 < var20[1] then
{
sell("매도2");
}
}
}
SetStopLoss(stopper1*PriceScale, PointStop);
if stime == exittime1 or CrossUp(stime, exittime1) Then
{
exitlong("매수청산");
exitshort("매도청산");
}
--------------------------------
감사합니다.
항상 하시는 일에 좋은 결실 거두시기를 ~~
답변 1
예스스탁 예스스탁 답변
2017-02-21 11:27:59
안녕하세요
예스스탁입니다.
1
dayclose,dayhigh,daylow,dayopen함수는
주종목의 일간데이타만 리턴합니다.
참조데이터에서는 closed,highd,lowd,opend함수를 이용하셔야 합니다.
2
참조데이터를 이용한 수식에서는
변수의 이전값 참조를 할때 어떤 데이터의 주기로 이전값을 가져올지 정해야 하므로
가급적 내장변수가 아닌 직접 변수를 만들고
선언시에 데이터번호를 지정해서 사용하셔야 합니다.
3
아래는 수정한 식입니다.
input : exittime1(153000); // 거래 종료시간
input : stopper1(20); // 손절 틱 수
var : mav21(0,data2),mav22(0,data2),diff(0,data2);
//////////////////////////////////////////
mav21 = data2(ma(c, 5));
mav22 = data2(ma(c, 10));
///////////////////////////////////////////////
// 전략식 시작
///////////////////////////////////////////////
if data2(dayindex == 0) then
{
diff = data2(o) - data2(CloseD(1)); // 당일 시가와 전일 종가와의 차이
}
if data2(DayIndex >= 1) then
{
if diff >= 0.3 Then // 선물이 0.3 이상 갭상승한 경우
{
if mav21 > mav21[1] then
{
buy("매수1");
}
if mav21 < mav21[1] then
{
sell("매도1");
}
}
if diff <= -0.3 Then // 선물이 -0.3 이상 갭하락한 경우
{
if mav22 > mav22[1] then
{
buy("매수2");
}
if mav22 < mav22[1] then
{
sell("매도2");
}
}
}
SetStopLoss(stopper1*PriceScale, PointStop);
if stime == exittime1 or CrossUp(stime, exittime1) Then
{
exitlong("매수청산");
exitshort("매도청산");
}
즐거운 하루되세요
> 샐리짱 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다.
> 안녕하세요.
항상 수고가 많으십니다.
---- 질문입니다 ------------------------------------------
data1은 옵션이고, data2 는 선물입니다.
참조 데이타 - data2가 갭상승한 경우와 갭하락 한 경우를 나누어서
전략식을 만들었는데, 매수1과 매도1만 신호가 나옵니다.
어찌된 영문인지 아무리 보고 또 보아도 모르겠습니다.
잘못된 부분이 있다면 수정 부탁드립니다.
input : exittime1(153000); // 거래 종료시간
input : stopper1(20); // 손절 틱 수
//////////////////////////////////////////
var10 = data2(ma(c, 5));
var20 = data2(ma(c, 10));
///////////////////////////////////////////////
// 전략식 시작
///////////////////////////////////////////////
if dayindex == 0 then
{
var1 = data2(o) - data2(DayClose(1)); // 당일 시가와 전일 종가와의 차이
}
if DayIndex >= 1 then
{
if var1 >= 0.3 Then // 선물이 0.3 이상 갭상승한 경우
{
if var10 > var10[1] then
{
buy("매수1");
}
if var10 < var10[1] then
{
sell("매도1");
}
}
if var1 <= -0.3 Then // 선물이 -0.3 이상 갭하락한 경우
{
if var20 > var20[1] then
{
buy("매수2");
}
if var20 < var20[1] then
{
sell("매도2");
}
}
}
SetStopLoss(stopper1*PriceScale, PointStop);
if stime == exittime1 or CrossUp(stime, exittime1) Then
{
exitlong("매수청산");
exitshort("매도청산");
}
--------------------------------
감사합니다.
항상 하시는 일에 좋은 결실 거두시기를 ~~
다음글
이전글