커뮤니티
함수요청
2018-07-10 11:57:03
122
글번호 120425
안녕하세요?
아래 글번호 57530번 재질문 드립니다.
아래 전략으로 5분봉 항셍지수를 거래하고자 합니다.
한국투자증권에서 이용을 하는데 매일 아침마다 bad tick이 매일 발생하고 있습니다.
(10시 15분 개장이나 14분부터 거래와 무관한 틱데이타가 들어와서 봉이 생성됩니다.)
신호가 왜곡되는 바 매일 아침마다 생성되는 NN개의 봉을 제거하고 NN+1개봉 부터 진입이든 청산이든 신호를 탐색하고 자 합니다.
함수 수정요청드립니다.
답변주신 스크립트로는 bad tick이 제거되지 않습니다.
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2);
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 5));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF MarketPosition <= 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition >= 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL - TickSize);
if MarketPosition == 1 then
{
ExitLong("bl",AtStop,EntryPrice*0.99);
ExitLong("bp",Atlimit,EntryPrice*1.03);
}
if MarketPosition == -1 then
{
ExitShort("sl",AtStop,EntryPrice*1.01);
ExitShort("sp",Atlimit,EntryPrice*0.97);
}
SetStopInactivity(3,23,percentStop);
답변 1
예스스탁 예스스탁 답변
2018-07-11 13:12:04
안녕하세요
예스스탁입니다.
input : NN(5);
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2),idx(0,data1);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
idx = 0;
idx = idx+1;
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 5));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
if idx >= NN Then
{
IF MarketPosition <= 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition >= 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL - TickSize);
}
if MarketPosition == 1 then
{
ExitLong("bl",AtStop,EntryPrice*0.99);
ExitLong("bp",Atlimit,EntryPrice*1.03);
}
if MarketPosition == -1 then
{
ExitShort("sl",AtStop,EntryPrice*1.01);
ExitShort("sp",Atlimit,EntryPrice*0.97);
}
SetStopInactivity(3,23,percentStop);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 글번호 57530번 재질문 드립니다.
아래 전략으로 5분봉 항셍지수를 거래하고자 합니다.
한국투자증권에서 이용을 하는데 매일 아침마다 bad tick이 매일 발생하고 있습니다.
(10시 15분 개장이나 14분부터 거래와 무관한 틱데이타가 들어와서 봉이 생성됩니다.)
신호가 왜곡되는 바 매일 아침마다 생성되는 NN개의 봉을 제거하고 NN+1개봉 부터 진입이든 청산이든 신호를 탐색하고 자 합니다.
함수 수정요청드립니다.
답변주신 스크립트로는 bad tick이 제거되지 않습니다.
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2);
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 5));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF MarketPosition <= 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition >= 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL - TickSize);
if MarketPosition == 1 then
{
ExitLong("bl",AtStop,EntryPrice*0.99);
ExitLong("bp",Atlimit,EntryPrice*1.03);
}
if MarketPosition == -1 then
{
ExitShort("sl",AtStop,EntryPrice*1.01);
ExitShort("sp",Atlimit,EntryPrice*0.97);
}
SetStopInactivity(3,23,percentStop);