예스스탁
예스스탁 답변
2020-04-23 17:43:35
안녕하세요
예스스탁입니다.
1
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
전환선 = (highest(H,전환선기간)+lowest(L,전환선기간))/2;
기준선 = (highest(H,기준선기간)+lowest(L,기준선기간))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,선행스팬2기간)[25]+lowest(L,선행스팬2기간)[25])/2;
if MarketPosition <= 0 and 선행스팬1 > 선행스팬2 and 전환선 > 전환선[1] Then
buy();
if MarketPosition == 1 then
{
if 선행스팬1 < 선행스팬2 Then
ExitLong();
if CrossDown(기준선, 전환선) Then
ExitLong();
if 전환선 < 전환선[1] Then
ExitLong();
}
if MarketPosition >= 0 and 선행스팬1 < 선행스팬2 and 전환선 < 전환선[1] Then
sell();
if MarketPosition == 1 then
{
if 선행스팬1 > 선행스팬2 Then
ExitShort();
if CrossUp(기준선, 전환선) Then
ExitShort();
if 전환선 > 전환선[1] Then
ExitShort();
}
2
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
전환선 = (highest(H,전환선기간)+lowest(L,전환선기간))/2;
기준선 = (highest(H,기준선기간)+lowest(L,기준선기간))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,선행스팬2기간)[25]+lowest(L,선행스팬2기간)[25])/2;
if MarketPosition <= 0 and crossup(기준선,전환선) and 전환선 > 전환선[1] Then
buy();
if MarketPosition == 1 then
{
if 선행스팬1 < 선행스팬2 Then
ExitLong();
if CrossDown(기준선, 전환선) Then
ExitLong();
if 전환선 < 전환선[1] Then
ExitLong();
}
if MarketPosition >= 0 and CrossDown(기준선,전환선) and 전환선 < 전환선[1] Then
sell();
if MarketPosition == 1 then
{
if 선행스팬1 > 선행스팬2 Then
ExitShort();
if CrossUp(기준선, 전환선) Then
ExitShort();
if 전환선 > 전환선[1] Then
ExitShort();
}
3
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
전환선 = (highest(H,전환선기간)+lowest(L,전환선기간))/2;
기준선 = (highest(H,기준선기간)+lowest(L,기준선기간))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,선행스팬2기간)[25]+lowest(L,선행스팬2기간)[25])/2;
if MarketPosition <= 0 and 선행스팬1 > 선행스팬2 and 전환선 > 전환선[1] Then
buy("b1");
if MarketPosition <= 0 and crossup(기준선,전환선) and 전환선 > 전환선[1] Then
buy("b2");
if MarketPosition == 1 then
{
if 선행스팬1 < 선행스팬2 Then
ExitLong();
if CrossDown(기준선, 전환선) Then
ExitLong();
if 전환선 < 전환선[1] Then
ExitLong();
}
if MarketPosition >= 0 and 선행스팬1 < 선행스팬2 and 전환선 < 전환선[1] Then
sell("s1");
if MarketPosition >= 0 and CrossDown(기준선,전환선) and 전환선 < 전환선[1] Then
sell("s2");
if MarketPosition == 1 then
{
if 선행스팬1 > 선행스팬2 Then
ExitShort();
if CrossUp(기준선, 전환선) Then
ExitShort();
if 전환선 > 전환선[1] Then
ExitShort();
}
4
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0),mav(0);
전환선 = (highest(H,전환선기간)+lowest(L,전환선기간))/2;
기준선 = (highest(H,기준선기간)+lowest(L,기준선기간))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,선행스팬2기간)[25]+lowest(L,선행스팬2기간)[25])/2;
mav = ma(C,60);
if crossup(선행스팬1,선행스팬2) Then
T = 1;
if CrossDown(선행스팬1,선행스팬2) Then
T = -1;
if T == 1 and L <= 선행스팬2 Then
T = 2;
if T == -1 and H >= 선행스팬2 Then
T = -2;
if MarketPosition <= 0 and T == 2 and c > 선행스팬2 Then
{
t = 3;
buy("b3");
}
if MarketPosition == 1 then
{
if 선행스팬1 > 선행스팬2 Then
ExitLong("bx1",atlimit,선행스팬1);
if NextBarOpen < 기준선 Then
ExitLong("bx21",atlimit,기준선);
Else
ExitLong("bx22",AtStop,기준선);
if NextBarOpen < mav Then
ExitLong("bx31",atlimit,mav);
Else
ExitLong("bx32",AtStop,mav);
if NextBarOpen < 전환선 Then
ExitLong("bl1",AtLimit,전환선);
Else
ExitLong("bl2",AtStop,전환선);
}
if MarketPosition >= 0 and T == -2 and c < 선행스팬2 Then
{
t = -3;
sell("s3");
}
if MarketPosition == -1 then
{
if 선행스팬1 < 선행스팬2 Then
ExitShort("sx1",atlimit,선행스팬1);
if NextBarOpen > 기준선 Then
ExitShort("sx21",atlimit,기준선);
Else
ExitShort("sx22",AtStop,기준선);
if NextBarOpen > mav Then
ExitShort("sx31",atlimit,mav);
Else
ExitShort("sx32",AtStop,mav);
if NextBarOpen > 전환선 Then
ExitShort("sl1",atlimit,전환선);
Else
ExitShort("sl2",AtStop,전환선);
}
5
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0),mav(0);
전환선 = (highest(H,전환선기간)+lowest(L,전환선기간))/2;
기준선 = (highest(H,기준선기간)+lowest(L,기준선기간))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,선행스팬2기간)[25]+lowest(L,선행스팬2기간)[25])/2;
mav = ma(C,60);
if MarketPosition <= 0 and 선행스팬1 > 선행스팬2 and 전환선 > 전환선[1] Then
buy("b1");
if MarketPosition <= 0 and crossup(기준선,전환선) and 전환선 > 전환선[1] Then
buy("b2");
if MarketPosition == 1 and (IsEntryName("b1") == true or IsEntryName("b2") == true) then
{
if 선행스팬1 < 선행스팬2 Then
ExitLong();
if CrossDown(기준선, 전환선) Then
ExitLong();
if 전환선 < 전환선[1] Then
ExitLong();
}
if MarketPosition >= 0 and 선행스팬1 < 선행스팬2 and 전환선 < 전환선[1] Then
sell("s1");
if MarketPosition >= 0 and CrossDown(기준선,전환선) and 전환선 < 전환선[1] Then
sell("s2");
if MarketPosition == 1 and (IsEntryName("s1") == true or IsEntryName("s2") == true) then
{
if 선행스팬1 > 선행스팬2 Then
ExitShort();
if CrossUp(기준선, 전환선) Then
ExitShort();
if 전환선 > 전환선[1] Then
ExitShort();
}
if crossup(선행스팬1,선행스팬2) Then
T = 1;
if CrossDown(선행스팬1,선행스팬2) Then
T = -1;
if T == 1 and L <= 선행스팬2 Then
T = 2;
if T == -1 and H >= 선행스팬2 Then
T = -2;
if MarketPosition <= 0 and T == 2 and c > 선행스팬2 Then
{
t = 3;
buy("b3");
}
if MarketPosition == 1 and IsEntryName("b3") == true then
{
if 선행스팬1 > 선행스팬2 Then
ExitLong("bx1",atlimit,선행스팬1);
if NextBarOpen < 기준선 Then
ExitLong("bx21",atlimit,기준선);
Else
ExitLong("bx22",AtStop,기준선);
if NextBarOpen < mav Then
ExitLong("bx31",atlimit,mav);
Else
ExitLong("bx32",AtStop,mav);
if NextBarOpen < 전환선 Then
ExitLong("bl1",AtLimit,전환선);
Else
ExitLong("bl2",AtStop,전환선);
}
if MarketPosition >= 0 and T == -2 and c < 선행스팬2 Then
{
t = -3;
sell("s3");
}
if MarketPosition == -1 and IsEntryName("s3") == true then
{
if 선행스팬1 < 선행스팬2 Then
ExitShort("sx1",atlimit,선행스팬1);
if NextBarOpen > 기준선 Then
ExitShort("sx21",atlimit,기준선);
Else
ExitShort("sx22",AtStop,기준선);
if NextBarOpen > mav Then
ExitShort("sx31",atlimit,mav);
Else
ExitShort("sx32",AtStop,mav);
if NextBarOpen > 전환선 Then
ExitShort("sl1",atlimit,전환선);
Else
ExitShort("sl2",AtStop,전환선);
}
6
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
input : ntime1(2);
var : a전환선(0),a기준선(0),a선행스팬1(0),a선행스팬2(0),T(0),mav(0);
var : TF(0),S1(0),D1(0),TM(0),cnt(0);
var : H1(0),L1(0),H11(0),L11(0),H2(0),L2(0),H22(0),L22(0),H3(0),L3(0);
var : b전환선(0),b기준선(0),b선행스팬1(0),b선행스팬2(0);
Array : HH[100](0),LL[100](0);
#기본차트 일목균형
a전환선 = (highest(H,전환선기간)+lowest(L,전환선기간))/2;
a기준선 = (highest(H,기준선기간)+lowest(L,기준선기간))/2;
a선행스팬1 = (a전환선[25]+a기준선[25])/2;
a선행스팬2 = (highest(H,선행스팬2기간)[25]+lowest(L,선행스팬2기간)[25])/2;
#타주기 일목균형 계산
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[선행스팬2기간+25] > 0 and LL[선행스팬2기간+25] > 0 then
{
H1 = HH[0];
L1 = LL[0];
H11 = HH[25];
L11 = LL[25];
H2 = HH[0];
L2 = LL[0];
H22 = HH[25];
L22 = LL[25];
H3 = HH[25];
L3 = LL[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if HH[cnt] > H1 Then
H1 = HH[cnt];
if LL[cnt] < L1 Then
L1 = LL[cnt];
if HH[cnt+25] > H11 Then
H11 = HH[cnt+25];
if LL[cnt+25] < L11 Then
L11 = LL[cnt+25];
}
if cnt < 기준선기간 Then{
if HH[cnt] > H2 Then
H2 = HH[cnt];
if LL[cnt] < L2 Then
L2 = LL[cnt];
if HH[cnt+25] > H22 Then
H22 = HH[cnt+25];
if LL[cnt+25] < L22 Then
L22 = LL[cnt+25];
}
if HH[cnt+25] > H3 Then
H3 = HH[cnt+25];
if LL[cnt+25] < L3 Then
L3 = LL[cnt+25];
}
b전환선 = (H1 + L1)/2;
b기준선 = (H2 + L2)/2;
b선행스팬1 = ((H11+L11)/2 + (H22+L22)/2) / 2 ;
b선행스팬2 = (H3+L3) / 2;
}
}
if a선행스팬1 > a선행스팬2 and C < a선행스팬2 and c < a전환선 and
b선행스팬1 > b선행스팬2 and CrossDown(c,b선행스팬2) Then
buy("b6");
if MarketPosition == 1 then
{
if a선행스팬1 < a선행스팬2 Then
ExitLong();
if CrossDown(a기준선, a전환선) Then
ExitLong();
if a전환선 < a전환선[1] Then
ExitLong();
if CrossDown(c,b전환선) Then
exitlong();
}
if MarketPosition == 1 then
{
if a선행스팬1 > a선행스팬2 Then
ExitShort();
if CrossUp(a기준선, a전환선) Then
ExitShort();
if a전환선 > a전환선[1] Then
ExitShort();
if CrossUp(c,b전환선) Then
ExitShort();
}
즐거운 하루되세요
> 장안퀙쿠르드 님이 쓴 글입니다.
> 제목 : 시스템 수식요청
> 일목균형표에 대하여 다음과 같은 조건일때 시스템 수식부탁드려요
<1>양운이고 전환선이 상승중일때 매수진입,음운이거나 기준선이 전환선을 하향돌파하거나 전환선이 하락하는 세가지 경우중 하나인 경우 매수청산
음운이고 전환선이 하락중일때 매도진입, 양운이거나 기준선이 전환선을 상향돌파하거나 전환선이 상승하는 세가지 경우중 하나인 경우 매도청산
<2>기준선이 전환선을 상승돌파하고 전환선이 상승중일때 매수진입, 음운이거나 기준선이 전환선을 하향돌파하거나 전환선이 하락하는 세가지 경우중 하나인 경우 매수청산
기준선이 전환선을 하락돌파하고 전환선이 하락중일때 매도진입, 양운이거나 기준선이 전환선을 상승돌파하거나 전환선이 상승하는 세가지 경우중 하나인 경우 매도청산
<3> 위<1>과 <2> 시스템식을 통합하여 하나의 시스템 수식으로 부탁
<4>양운하단선을 캔들이 터치하거나 양운 하단선을 캔들이 터치후 하락하였다가 양운하단선을 재차 상승돌파하는 경우 매수진입, 매수청산은 양운상단 또는 기준선 터치 또는 60일선 터치 세가지중 하나 (손절 전환선)
음운상단선을 캔들이 터치하거나 음운 상단선을 캔들이 터치후 상승하였다가 양운상단선을 재차 하락돌파하는 경우 매도진입, 매도청산은 음운하단 또는 기준선 터치 또는 60일선터치 세가지중 하나 (손절 전환선)
<5>위<3>과 <4>시스템식을 통합하여 하나의 시스템 수식으로 부탁
<6>1분봉에서 캔들이 양운하단선을 하락돌파하고 전환선을 하향돌파한 경우 (위 <4>에서는 손절)
2분봉 양운하단선에서 매수진입, 음운이거나 기준선이 전환선을 하향돌파하거나 전환선이 하락하는 세가지 경우중 하나인 경우 매수청산 (손절 2분봉 전환선)
1분봉에서 캔들이 음운상단선을 상승돌파하고 전환선을 상승돌파한 경우 (위 <4>에서는 손절)
2분봉 양운상단선에서 매도진입, 양운이거나 기준선이 전환선을 상승돌파하거나 전환선이 상승하는 세가지 경우중 하나인 경우 매도청산 (손절 2분봉 전환선)
<7>위 <6>의 경우에 손절20틱, 익절20틱만 추가
<8>위<5>와 <6>시스템식을 통합하여 하나의 시스템 수식으로 부탁
* 이 경우 위<5>에서는 전환선을 하락 또는 상승돌파하는 경우 손절이고
<6>에서는 손절이 아니고 전환선을 상승/하락돌파하는 경우 다음 분봉(여기서는 1분봉과 2분봉의 예를 들었음)에서 양운하단 또는 음운 상단에서 진입인대 이를 표현하는 것을 어떻게 할것인지가 관건이 될것 같네요..
매번 신속하고 성실한 답변에 감사드립니다.