커뮤니티
함수요청
2018-05-24 07:50:05
174
글번호 119147
안녕하세요?
함수요청드립니다.
아래 함수를 항셍지수로 거래를 하고자 합니다.
다만 5분봉거래시 진입기준 주문의 생성을 T장까지만 하고 포지션이 오버되지 않게 청산은 T+1장 시가에는 강제청산하고자 합니다.
여기서 주문의 생성은 그렇지만 주문생성을 위한 데이터는 T장과 T+1장을 모두 적용하고자합니다.
즉 모든 시세데이터를 신호에 적용하되 실제 주문생성은 T장에서만 거래를 하고 싶습니다.
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);
답변 1
예스스탁 예스스탁 답변
2018-05-25 11:51:39
안녕하세요
예스스탁입니다.
문의하신 내용은 수식에서 시간을 지정하셔야 합니다.
거래시작과 거래종료로 진입이 발생하는 시간대를 지정해 주시고
오버를 하지 않게 당일청산의 시간도 지정해 주시면 됩니다
input : 거래시작(101500),거래종료(163000),당일청산(171500);
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),tcond(false,data1);
if (sdate != sdate[1] and stime >= 거래시작) or
(sdate == sdate[1] and stime >= 거래시작 and stime[1] < 거래시작) Then
tcond = true;
if (sdate != sdate[1] and stime >= 거래종료) or
(sdate == sdate[1] and stime >= 거래종료 and stime[1] < 거래종료) Then
tcond = false;
if (sdate != sdate[1] and stime >= 당일청산) or
(sdate == sdate[1] and stime >= 당일청산 and stime[1] < 당일청산) Then
{
if MarketPosition == 1 then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
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 Tcond == true 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);
}
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
함수요청드립니다.
아래 함수를 항셍지수로 거래를 하고자 합니다.
다만 5분봉거래시 진입기준 주문의 생성을 T장까지만 하고 포지션이 오버되지 않게 청산은 T+1장 시가에는 강제청산하고자 합니다.
여기서 주문의 생성은 그렇지만 주문생성을 위한 데이터는 T장과 T+1장을 모두 적용하고자합니다.
즉 모든 시세데이터를 신호에 적용하되 실제 주문생성은 T장에서만 거래를 하고 싶습니다.
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);
다음글
이전글