안녕하세요?
아래 전략에 대해 스크립트 작성 요청드립니다.
국내선물 1분봉으로 일중 거래를 하고자 합니다.
봉완성기준 현주가가 20일선 위에 있고(크다) 볼린저밴드 위드스가 2번연속 상승하면 익봉시가 매수 진입
봉완성기준 현주가가 20일선 아래에 있고(작다) 볼린저밴드 위드스가 2번연속 상승하면 익봉시가 매도 진입
진입 후 볼린저밴드 위드스가 2번 연속 하락하면 청산
2번 연속의 개념이 아래 글번호 81473에서 작성주신 로직입니다.
아래와 같이 작성해봤는데 신호가 생성이 안됩니다.
input : P(20),dv(2);
var : bbmd(0),bbup(0),bbdn(0),bwidth(0);
bbmd = ma(c,P);
bbup = bbmd+std(c,P)*dv;
bbdn = bbmd-std(c,P)*dv;
Bwidth = (bbup-bbdn)/bbmd;
if bdate != Bdate[1] Then
{
var1 = 0;
}
If var1 < 1 and c > ma(c,P)and CountIf(Bwidth>Bwidth[1],BarsSinceEntry) == 2 Then
{
Buy();
}
If var1 < 1 and c < ma(c,P) and CountIf(Bwidth>Bwidth[1],BarsSinceEntry) == 2 Then
{
Sell();
}
if MarketPosition == 1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitLong();
if MarketPosition == -1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitShort();
SetStopEndofday(152000);
답변 1
예스스탁
예스스탁 답변
2023-04-03 09:36:11
안녕하세요
예스스탁입니다.
기존 청산내용은 2번 연속 하락/상승이 아닙니다.
진입후 2번 하락/상승이 발생하면 청산하는 내용입니다.
2번연속 상승/하락시 진입은 아래와 같이 처리하시며 됩니다.
input : P(20),dv(2);
var : bbmd(0),bbup(0),bbdn(0),bwidth(0);
bbmd = ma(c,P);
bbup = bbmd+std(c,P)*dv;
bbdn = bbmd-std(c,P)*dv;
Bwidth = (bbup-bbdn)/bbmd;
If C > bbmd and CountIf(Bwidth>Bwidth[1],2) == 2 Then
{
Buy();
}
If C < bbmd and CountIf(Bwidth<Bwidth[1],2) == 2 Then
{
Sell();
}
if MarketPosition == 1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitLong();
if MarketPosition == -1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitShort();
SetStopEndofday(152000);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 전략에 대해 스크립트 작성 요청드립니다.
국내선물 1분봉으로 일중 거래를 하고자 합니다.
봉완성기준 현주가가 20일선 위에 있고(크다) 볼린저밴드 위드스가 2번연속 상승하면 익봉시가 매수 진입
봉완성기준 현주가가 20일선 아래에 있고(작다) 볼린저밴드 위드스가 2번연속 상승하면 익봉시가 매도 진입
진입 후 볼린저밴드 위드스가 2번 연속 하락하면 청산
2번 연속의 개념이 아래 글번호 81473에서 작성주신 로직입니다.
아래와 같이 작성해봤는데 신호가 생성이 안됩니다.
input : P(20),dv(2);
var : bbmd(0),bbup(0),bbdn(0),bwidth(0);
bbmd = ma(c,P);
bbup = bbmd+std(c,P)*dv;
bbdn = bbmd-std(c,P)*dv;
Bwidth = (bbup-bbdn)/bbmd;
if bdate != Bdate[1] Then
{
var1 = 0;
}
If var1 < 1 and c > ma(c,P)and CountIf(Bwidth>Bwidth[1],BarsSinceEntry) == 2 Then
{
Buy();
}
If var1 < 1 and c < ma(c,P) and CountIf(Bwidth>Bwidth[1],BarsSinceEntry) == 2 Then
{
Sell();
}
if MarketPosition == 1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitLong();
if MarketPosition == -1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitShort();
SetStopEndofday(152000);