예스스탁
예스스탁 답변
2020-02-18 13:31:40
안녕하세요
예스스탁입니다.
input : n(3);
var : cnt(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0),entry(0);
Array : OO[10](0),HH[10](0),LL[10](0),CC[10](0);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
entry = 0;
OO[0] = O;
HH[0] = O;
LL[0] = O;
for cnt = 1 to 9
{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if HH[0] > 0 and H > HH[0] Then
HH[0] = H;
if LL[0] > 0 and L < LL[0] Then
LL[0] = L;
CC[0] = C;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if HH[1] > 0 and LL[1] > 0 then
{
Pivot = (HH[1]+LL[1]+CC[1])/3;
R1 = 2*Pivot-LL[1];
R2 = Pivot+HH[1]-LL[1];
S1 = 2*Pivot-HH[1];
S2 = Pivot-HH[1]+LL[1];
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
var1 = iff(Pivot > Pivot[1],1,0)+iff(R1 > R1[1],1,0)+iff(R2 > R2[1],1,0)+iff(S1 > S1[1],1,0)+iff(S2 > S2[1],1,0);
var2 = iff(Pivot < Pivot[1],1,0)+iff(R1 < R1[1],1,0)+iff(R2 < R2[1],1,0)+iff(S1 < S1[1],1,0)+iff(S2 < S2[1],1,0);
}
if entry < n and stime >= 101500 and stime < 170000 then
{
if var1 >= 3 then
{
if MarketPosition >= 0 and CrossDown(c,R1) Then
sell("s1",AtMarket);
if MarketPosition == -1 and IsEntryName("s1") == true then
{
if CrossDown(c,pivot) Then
ExitShort("sx11",AtMarket);
if CrossUp(c,R2) Then
ExitShort("sx12",AtMarket);
}
if MarketPosition >= 0 and CrossDown(c,S1) Then
sell("s2",AtMarket);
if MarketPosition == -1 and IsEntryName("s2") == true then
{
if CrossDown(c,S2) Then
ExitShort("sx21",AtMarket);
if CrossUp(c,Pivot) Then
ExitShort("sx22",AtMarket);
}
}
if var2 >= 3 then
{
if MarketPosition <= 0 and CrossUp(c,R1) Then
Buy("b1",AtMarket);
if MarketPosition == 1 and IsEntryName("b1") == true then
{
if CrossUp(c,R2) Then
ExitLong("bx11",AtMarket);
if CrossDown(c,Pivot) Then
ExitLong("bx12",AtMarket);
}
if MarketPosition <= 0 and CrossUp(c,S1) Then
Buy("b2",AtMarket);
if MarketPosition == 1 and IsEntryName("b2") == true then
{
if CrossUp(c,Pivot) Then
ExitLong("bx21",AtMarket);
if CrossDown(c,S2) Then
ExitLong("bx22",AtMarket);
}
}
}
}
SetStopEndofday(170000);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 작성주셨던 글번호 65977번 스크립트에서 전략을 수정하고자 합니다.
당일 T장에 10시 15분에 시가봉이 들어오면 피봇지표 값이 전일(T+1장까지) 대비 달라집니다.
1. 전일대비하여 5개의 값(2차 저항, 1차 저항, 피봇, 1차 지지, 2차 지지) 가운데 3개 이상 상승하면
가. 매도1: 현재가가 1차 저항선을 이탈할 때 봉완성 익봉 시가에 진입
나. 매도청산1: 현재가가 피봇선을 이탈할 때 봉완성 익봉 시가에 청산
다. 손절1: 현재가가 2차 저항선을 돌파할 때 봉완성 익봉 시가에 손절
라. 매도2: 현재가가 1차 지지선을 이탈할 때 봉완성 익봉 시가에 진입
마. 매도청산2: 현재가가 1차 지지선을 이탈할 때 봉완성 익봉 시가에 청산
바. 손절2: 현재가가 피봇선을 돌파할 때 봉완성 익봉 시가에 손절
2. 전일대비하여 5개의 값(2차저항, 1차저항, 피봇, 1차지지, 2차지지) 가운데 3개 이상 하락하면
가. 매수1: 현재가가 1차 저항선을 돌파할 때 봉완성 익봉 시가에 진입
나. 매수청산1: 현재가가 2차 저항선을 돌파할 때 봉완성 익봉 시가에 청산
다. 손절1: 현재가가 피봇을 이탈할 때 봉완성 익봉 시가에 손절
라. 매수2: 현재가가 1차 지지선을 돌파할 때 봉완성 익봉 시가에 진입
마. 매수청산2: 현재가가 피봇을 돌파할 때 봉완성 익봉 시가에 청산
바. 손절2: 현재가가 2차 지지선을 이탈할 때 봉완성 익봉 시가에 손절
돌파는 종가가 라인 아래에서 라인 위로
이탈은 종가가 라인 위에서 라인 아래로 값이 변경되는 개념입니다.
스크립트 수정 요청부탁드립니다.
input : n(3);
var : cnt(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0),entry(0);
Array : OO[10](0),HH[10](0),LL[10](0),CC[10](0);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
entry = 0;
OO[0] = O;
HH[0] = O;
LL[0] = O;
for cnt = 1 to 9
{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if HH[0] > 0 and H > HH[0] Then
HH[0] = H;
if LL[0] > 0 and L < LL[0] Then
LL[0] = L;
CC[0] = C;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if HH[1] > 0 and LL[1] > 0 then
{
Pivot = (HH[1]+LL[1]+CC[1])/3;
R1 = 2*Pivot-LL[1];
R2 = Pivot+HH[1]-LL[1];
S1 = 2*Pivot-HH[1];
S2 = Pivot-HH[1]+LL[1];
if entry < n and stime >= 101500 and stime < 170000 then
{
if CrossDown(c,s2) Then
buy("b",AtMarket);
if CrossUp(c,r2) Then
sell("s",AtMarket);
if Crossup(c,r1) Then
ExitLong("bx",AtMarket);
if CrossDown(c,s1) Then
ExitShort("sx",AtMarket);
}
}
SetStopEndofday(170000);