커뮤니티
수식질문 드립니다.
2012-01-04 16:34:02
372
글번호 46300
초보라 쉽지가 않아서 자꾸 질문드려 죄송합니다
ETF를 선물지수 참조해서 매매할려고 하는데
몇가지 문제점이 있네요
ETF는 kodex와 인버스가 매수 매도 나누어져 있어서
선물 매매식을 두개의 ETF에 나누어서 적용해야하는데
식적용이 쉽지 않네요 다음을 두개로 나누어서 하려고 하는데
도와주세요
if crossup(data2(c),ma(c,20)) then buy("b1");
if crossdown(data2(c),ma(c,20)) then sell("s1");
var : d2H(0,data2),d2L(0,data2);
d2H = data2(H);
d2L = data2(L);
If marketposition==1 highest(d2H,BarsSinceEntry)>= (entryprice+3) then {
//-->이부분에서 entryprice가 ETF가격이 아닌 선물이 선물 진입가격보다 3pt클때를 코딩하려 하는데 힘드네요
if data2(L) <= highest(d2H,barsSinceEntry+1)-atr(20)*2) then {
if data2(c)<data2(o) and data2(bids)<data2(asks) then
sell("s2");
else ExitLong("bx1");
}
If marketposition==-1 lowest(d2H,BarsSinceEntry)<= (entryprice-3) then {
//-->이부분에서 entryprice가 ETF가격이 아닌 선물이 선물 진입가격보다 3pt 작을때
if data2(H) >=lowest(d2L,barsSinceEntry+1)-atr(20)*2)then {
if data2(c)>data2(o) and data2(bids)>data2(asks) then
buy("b2"); ////----->부분 A
else
Exitshort("sx1");
}
또하나 문제점은 이 매매식이 선물에서는 매수 매도가 번갈아서 되는 리버스이기 때문에
매수만 되는 kodex에서는 매도 s1일때는 매수청산이 되고 s1에서 비록 KODEX에서는 매수만 되므로 매도진입은 하지
않았지만 부분 A와 같이 ATR전환시 양봉이고 호가필터적용해서 선물 매매식에서 리버스 진입될때 즉 s1의 가격을 기억하고 있다가 atr 청산식이 적용될때 리버스식으로 매수진입이 되게 하려고 하는데 코딩이 힘드네요.
또한 매수나 매도 진입시 ETF의 진입가격이 아닌 선물가격을 저장하여서 다시 쓰려고 하는데
entryprice가격 함수처럼 특정 선물가격을 불러올려면 어떻게 해야 할지요
예를 들면 kodex에서 b1에서 선물가격을 저장해서 다시 불러 쓰려고 하는데...
가능하면 kodex, 인버스에 적용할 수 있도록 나누어서 변환 좀 해주세요.
답변 2
예스스탁 예스스탁 답변
2012-01-04 17:39:03
안녕하세요
예스스탁입니다.
식을 수정했습니다.
의도와 다른 부분 있으시면 다시 글 올려주시기 바랍니다.
1. kodex200
var : d2H(0,data1),d2L(0,data1),D2C(0,data1);
if data2(crossup(c,ma(c,20))) then
buy("b1");
if data2(crossdown(c,ma(c,20))) then
ExitLong("s1");
d2H = data2(H);
d2L = data2(L);
D2C = data2(c);
If marketposition==1 and highest(d2H,BarsSinceEntry)>= (d2C[BarsSinceEntry]+3) then {
if data2(L) <= highest(d2H,barsSinceEntry+1)-data2(atr(20))*2 then {
if !(data2(c)<data2(o) and data2(bids)<data2(asks)) then
ExitLong("bx1");
}
}
If ExitDate(1) == sdate and marketposition == 0 and lowest(d2H,BarsSinceEntry)<= (d2C[BarsSinceEntry]-3) then {
if data2(H) >=lowest(d2L,barsSinceEntry+1)-data2(atr(20))*2 then {
if data2(c)>data2(o) and data2(bids)>data2(asks) then
buy("b2");
}
}
2. kodex 인버스
var : d2H(0,data1),d2L(0,data1),D2C(0,data1);
if data2(crossup(c,ma(c,20))) then
exitlong("b1");
if data2(crossdown(c,ma(c,20))) then
buy("s1");
d2H = data2(H);
d2L = data2(L);
D2C = data2(c);
If ExitDate(1) == sdate and marketposition==0 and highest(d2H,BarsSinceEntry)>= (d2C[BarsSinceEntry]+3) then {
if data2(L) <= highest(d2H,barsSinceEntry+1)-data2(atr(20))*2 then {
if data2(c)<data2(o) and data2(bids)<data2(asks) then
buy("s2");
}
}
If marketposition== 1 and lowest(d2H,BarsSinceEntry)<= (d2C[BarsSinceEntry]-3) then {
if data2(H) >=lowest(d2L,barsSinceEntry+1)-data2(atr(20))*2 then {
if !(data2(c)>data2(o) and data2(bids)>data2(asks)) then
ExitLong("sx1");
}
}
즐거운 하루되세요
> 피셔킹 님이 쓴 글입니다.
> 제목 : 수식질문 드립니다.
> 초보라 쉽지가 않아서 자꾸 질문드려 죄송합니다
ETF를 선물지수 참조해서 매매할려고 하는데
몇가지 문제점이 있네요
ETF는 kodex와 인버스가 매수 매도 나누어져 있어서
선물 매매식을 두개의 ETF에 나누어서 적용해야하는데
식적용이 쉽지 않네요 다음을 두개로 나누어서 하려고 하는데
도와주세요
if crossup(data2(c),ma(c,20)) then buy("b1");
if crossdown(data2(c),ma(c,20)) then sell("s1");
var : d2H(0,data2),d2L(0,data2);
d2H = data2(H);
d2L = data2(L);
If marketposition==1 highest(d2H,BarsSinceEntry)>= (entryprice+3) then {
//-->이부분에서 entryprice가 ETF가격이 아닌 선물이 선물 진입가격보다 3pt클때를 코딩하려 하는데 힘드네요
if data2(L) <= highest(d2H,barsSinceEntry+1)-atr(20)*2) then {
if data2(c)<data2(o) and data2(bids)<data2(asks) then
sell("s2");
else ExitLong("bx1");
}
If marketposition==-1 lowest(d2H,BarsSinceEntry)<= (entryprice-3) then {
//-->이부분에서 entryprice가 ETF가격이 아닌 선물이 선물 진입가격보다 3pt 작을때
if data2(H) >=lowest(d2L,barsSinceEntry+1)-atr(20)*2)then {
if data2(c)>data2(o) and data2(bids)>data2(asks) then
buy("b2"); ////----->부분 A
else
Exitshort("sx1");
}
또하나 문제점은 이 매매식이 선물에서는 매수 매도가 번갈아서 되는 리버스이기 때문에
매수만 되는 kodex에서는 매도 s1일때는 매수청산이 되고 s1에서 비록 KODEX에서는 매수만 되므로 매도진입은 하지
않았지만 부분 A와 같이 ATR전환시 양봉이고 호가필터적용해서 선물 매매식에서 리버스 진입될때 즉 s1의 가격을 기억하고 있다가 atr 청산식이 적용될때 리버스식으로 매수진입이 되게 하려고 하는데 코딩이 힘드네요.
또한 매수나 매도 진입시 ETF의 진입가격이 아닌 선물가격을 저장하여서 다시 쓰려고 하는데
entryprice가격 함수처럼 특정 선물가격을 불러올려면 어떻게 해야 할지요
예를 들면 kodex에서 b1에서 선물가격을 저장해서 다시 불러 쓰려고 하는데...
가능하면 kodex, 인버스에 적용할 수 있도록 나누어서 변환 좀 해주세요.
피셔킹
2012-01-04 21:44:21
정말 감사합니다.
고민하던 부분이 해결됬습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식질문 드립니다.
> 안녕하세요
예스스탁입니다.
식을 수정했습니다.
의도와 다른 부분 있으시면 다시 글 올려주시기 바랍니다.
1. kodex200
var : d2H(0,data1),d2L(0,data1),D2C(0,data1);
if data2(crossup(c,ma(c,20))) then
buy("b1");
if data2(crossdown(c,ma(c,20))) then
ExitLong("s1");
d2H = data2(H);
d2L = data2(L);
D2C = data2(c);
If marketposition==1 and highest(d2H,BarsSinceEntry)>= (d2C[BarsSinceEntry]+3) then {
if data2(L) <= highest(d2H,barsSinceEntry+1)-data2(atr(20))*2 then {
if !(data2(c)<data2(o) and data2(bids)<data2(asks)) then
ExitLong("bx1");
}
}
If ExitDate(1) == sdate and marketposition == 0 and lowest(d2H,BarsSinceEntry)<= (d2C[BarsSinceEntry]-3) then {
if data2(H) >=lowest(d2L,barsSinceEntry+1)-data2(atr(20))*2 then {
if data2(c)>data2(o) and data2(bids)>data2(asks) then
buy("b2");
}
}
2. kodex 인버스
var : d2H(0,data1),d2L(0,data1),D2C(0,data1);
if data2(crossup(c,ma(c,20))) then
exitlong("b1");
if data2(crossdown(c,ma(c,20))) then
buy("s1");
d2H = data2(H);
d2L = data2(L);
D2C = data2(c);
If ExitDate(1) == sdate and marketposition==0 and highest(d2H,BarsSinceEntry)>= (d2C[BarsSinceEntry]+3) then {
if data2(L) <= highest(d2H,barsSinceEntry+1)-data2(atr(20))*2 then {
if data2(c)<data2(o) and data2(bids)<data2(asks) then
buy("s2");
}
}
If marketposition== 1 and lowest(d2H,BarsSinceEntry)<= (d2C[BarsSinceEntry]-3) then {
if data2(H) >=lowest(d2L,barsSinceEntry+1)-data2(atr(20))*2 then {
if !(data2(c)>data2(o) and data2(bids)>data2(asks)) then
ExitLong("sx1");
}
}
즐거운 하루되세요
> 피셔킹 님이 쓴 글입니다.
> 제목 : 수식질문 드립니다.
> 초보라 쉽지가 않아서 자꾸 질문드려 죄송합니다
ETF를 선물지수 참조해서 매매할려고 하는데
몇가지 문제점이 있네요
ETF는 kodex와 인버스가 매수 매도 나누어져 있어서
선물 매매식을 두개의 ETF에 나누어서 적용해야하는데
식적용이 쉽지 않네요 다음을 두개로 나누어서 하려고 하는데
도와주세요
if crossup(data2(c),ma(c,20)) then buy("b1");
if crossdown(data2(c),ma(c,20)) then sell("s1");
var : d2H(0,data2),d2L(0,data2);
d2H = data2(H);
d2L = data2(L);
If marketposition==1 highest(d2H,BarsSinceEntry)>= (entryprice+3) then {
//-->이부분에서 entryprice가 ETF가격이 아닌 선물이 선물 진입가격보다 3pt클때를 코딩하려 하는데 힘드네요
if data2(L) <= highest(d2H,barsSinceEntry+1)-atr(20)*2) then {
if data2(c)<data2(o) and data2(bids)<data2(asks) then
sell("s2");
else ExitLong("bx1");
}
If marketposition==-1 lowest(d2H,BarsSinceEntry)<= (entryprice-3) then {
//-->이부분에서 entryprice가 ETF가격이 아닌 선물이 선물 진입가격보다 3pt 작을때
if data2(H) >=lowest(d2L,barsSinceEntry+1)-atr(20)*2)then {
if data2(c)>data2(o) and data2(bids)>data2(asks) then
buy("b2"); ////----->부분 A
else
Exitshort("sx1");
}
또하나 문제점은 이 매매식이 선물에서는 매수 매도가 번갈아서 되는 리버스이기 때문에
매수만 되는 kodex에서는 매도 s1일때는 매수청산이 되고 s1에서 비록 KODEX에서는 매수만 되므로 매도진입은 하지
않았지만 부분 A와 같이 ATR전환시 양봉이고 호가필터적용해서 선물 매매식에서 리버스 진입될때 즉 s1의 가격을 기억하고 있다가 atr 청산식이 적용될때 리버스식으로 매수진입이 되게 하려고 하는데 코딩이 힘드네요.
또한 매수나 매도 진입시 ETF의 진입가격이 아닌 선물가격을 저장하여서 다시 쓰려고 하는데
entryprice가격 함수처럼 특정 선물가격을 불러올려면 어떻게 해야 할지요
예를 들면 kodex에서 b1에서 선물가격을 저장해서 다시 불러 쓰려고 하는데...
가능하면 kodex, 인버스에 적용할 수 있도록 나누어서 변환 좀 해주세요.