아래의 수식으로 항셍시장에 적용해 보았습니다.
포지션 진입을 하는 날과 하지 않는 날이 있는데요.
그 기준을 좀처럼 알기 어렵네요.
전일종가 대비 갭상승이면 매수, 갭하락이면 매도가 진행되게 할 방법이 없을까요?
점검 좀 부탁드리겠습니다.
1. 매수, 매도 포지션이 시초가에 정확하게 적용되었으면 좋겠습니다.
2. 봉 완성을 기다리지 않고 즉시 실행되길 바랍니다.
3. 손절 n틱 추가 바랍니다.
- 아 래 -
input : n1(10),n2(20);
var : DD(0),OO(0);
var : Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : StartTime(0);
if sdate != sdate[1] Then
{
DD = DayOfWeek(sdate);
if DD == 1 Then
OO = DayOpen;
Year = Floor(bdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
StartTime = 040000;
Else
StartTime = 101500;
}
if StartTime > 0 and
((NextBarSdate != sDate and NextBarStime >= StartTime) or
(NextBarSdate == sDate and NextBarStime >= StartTime and sTime < StartTime)) Then
{
if NextBarOpen > c Then
Buy("매수",AtMarket);
if NextBarOpen < c Then
Sell("매도",AtMarket);
}
if MarketPosition == 1 Then
ExitLong("매수청산",AtStop,Highest(H,BarsSinceEntry)-n1);
if MarketPosition == -1 Then
ExitShort("매도청산",AtStop,lowest(L,BarsSinceEntry)-n1);
SetStopProfittarget(n2*PriceScale,PointStop);
답변 1
예스스탁
예스스탁 답변
2021-10-05 09:10:13
안녕하세요
예스스탁입니다.
항셍은 사용자분이 시간을 지정할 수 밖에 없습니다.
시간을 외우변수로 처리해 드립니다.
input : ntime(101500),n1(10),n2(20),n3(20);
if ((NextBarSdate != sDate and NextBarStime >= ntime) or
(NextBarSdate == sDate and NextBarStime >= ntime and sTime < ntime)) Then
{
if NextBarOpen > c Then
Buy("매수",AtMarket);
if NextBarOpen < c Then
Sell("매도",AtMarket);
}
if MarketPosition == 1 Then
ExitLong("매수청산",AtStop,Highest(H,BarsSinceEntry)-n1);
if MarketPosition == -1 Then
ExitShort("매도청산",AtStop,lowest(L,BarsSinceEntry)-n1);
SetStopProfittarget(n2*PriceScale,PointStop);
SetStopLoss(n3*PriceScale,PointStop);
즐거운 하루되세요
> 승부사1 님이 쓴 글입니다.
> 제목 : 시초가 매매 수식 수정 부탁드립니다.
> 아래의 수식으로 항셍시장에 적용해 보았습니다.
포지션 진입을 하는 날과 하지 않는 날이 있는데요.
그 기준을 좀처럼 알기 어렵네요.
전일종가 대비 갭상승이면 매수, 갭하락이면 매도가 진행되게 할 방법이 없을까요?
점검 좀 부탁드리겠습니다.
1. 매수, 매도 포지션이 시초가에 정확하게 적용되었으면 좋겠습니다.
2. 봉 완성을 기다리지 않고 즉시 실행되길 바랍니다.
3. 손절 n틱 추가 바랍니다.
- 아 래 -
input : n1(10),n2(20);
var : DD(0),OO(0);
var : Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : StartTime(0);
if sdate != sdate[1] Then
{
DD = DayOfWeek(sdate);
if DD == 1 Then
OO = DayOpen;
Year = Floor(bdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = bdate > (10000 * Year) + (100 * 3) + v2
And bdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
StartTime = 040000;
Else
StartTime = 101500;
}
if StartTime > 0 and
((NextBarSdate != sDate and NextBarStime >= StartTime) or
(NextBarSdate == sDate and NextBarStime >= StartTime and sTime < StartTime)) Then
{
if NextBarOpen > c Then
Buy("매수",AtMarket);
if NextBarOpen < c Then
Sell("매도",AtMarket);
}
if MarketPosition == 1 Then
ExitLong("매수청산",AtStop,Highest(H,BarsSinceEntry)-n1);
if MarketPosition == -1 Then
ExitShort("매도청산",AtStop,lowest(L,BarsSinceEntry)-n1);
SetStopProfittarget(n2*PriceScale,PointStop);