커뮤니티
27597 식관련 문의입니다..
2012-12-21 18:02:11
220
글번호 57509
선행1이 클때와 선행2가 클경우를 한 식에서 신호를 낼수는 없는지요?
즉 식이 4개가 아니라 2개로 만들어질수는 없는지요?
번거럽게 해드려 죄송합니다..
답변 1
예스스탁 예스스탁 답변
2012-12-21 18:23:19
안녕하세요
예스스탁입니다.
선행스팬1이 선행스팬2보다 큰 경우
(a-1과 b-1)은 진입조건은 같고 청산만 다릅니다.
a-1의 식에 b-1의 청산조건 중
9틱 이익 후 자동 매도(종가기준)만 추가하시면 됩니다.
Inputs: TurnLen(9), StdLen(26), PrdLen(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2;
기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2;
if MarketPosition == 0 and
선행스팬2 > 선행스팬1 and
countif(crossup(c,선행스팬1[25]),3) >= 1 Then
buy("a1",AtStop,전환선);
if BarsSinceEntry == 0 and C < 전환선 Then
ExitLong("bx1");
if CrossDown(c,기준선) Then
exitlong("bx2");
if MarketPosition == 1 and C >= EntryPrice+PriceScale*9 Then
ExitLong("bx3");
선행스팬1이 선행스팬2보다 큰 경우도 같습니다.
a-2식에 b-2의 3번 청산조건만 추가하시면 됩니다.
Inputs: TurnLen(9), StdLen(26), PrdLen(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2;
기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2;
if MarketPosition == 0 and
선행스팬1 > 선행스팬2 and
countif(crossup(c,선행스팬1[25]),3) >= 1 Then
buy("a2",AtStop,선행스팬1[25]);
if BarsSinceEntry == 0 and C < 선행스팬1 Then
ExitLong("bx1");
if CrossDown(c,기준선) Then
exitlong("bx2");
if MarketPosition == 1 and C >= EntryPrice+PriceScale*9 Then
ExitLong("bx3");
a식 두개와 b식 두개를 합치신 다면 아래와 같습니다.
1.a식
Inputs: TurnLen(9), StdLen(26), PrdLen(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2;
기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2;
#a-1
if MarketPosition == 0 and
선행스팬2 > 선행스팬1 and
countif(crossup(c,선행스팬1[25]),3) >= 1 Then
buy("a1",AtStop,전환선);
if BarsSinceEntry == 0 and C < 전환선 Then
ExitLong("bx11",OnClose,def,"a1");
if CrossDown(c,기준선) Then
exitlong("bx12",OnClose,def,"a1");
#a-2
if MarketPosition == 0 and
선행스팬1 > 선행스팬2 and
countif(crossup(c,선행스팬1[25]),3) >= 1 Then
buy("a2",AtStop,선행스팬1[25]);
if BarsSinceEntry == 0 and C < 선행스팬1 Then
ExitLong("bx21",OnClose,def,"a2");
if CrossDown(c,기준선) Then
exitlong("bx22",OnClose,def,"a2");
2. b식
Inputs: TurnLen(9), StdLen(26), PrdLen(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2;
기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2;
#b-1
if MarketPosition == 0 and
선행스팬2 > 선행스팬1 and
countif(crossup(c,선행스팬1[25]),3) >= 1 Then
buy("b1",AtStop,전환선);
if BarsSinceEntry == 0 and C < 전환선 Then
ExitLong("bx31",OnClose,def,"b1");
if MarketPosition == 1 and C >= EntryPrice+PriceScale*9 Then
ExitLong("bx31",OnClose,def,"b1");
#b-2
if ExitDate(1) != sdate and
MarketPosition == 0 and
선행스팬2 > 선행스팬1 and
countif(crossup(c,선행스팬1[25]),3) >= 1 Then
buy("b2",AtStop,선행스팬1[25]);
if BarsSinceEntry == 0 and C < 선행스팬1[25] Then
ExitLong("bx41",OnClose,def,"b2");
if MarketPosition == 1 and C >= EntryPrice+PriceScale*9 Then
ExitLong("bx42",OnClose,def,"b2");
즐거운 하루되세요
즐거운 하루되세요
> 어게인1999 님이 쓴 글입니다.
> 제목 : 27597 식관련 문의입니다..
> 선행1이 클때와 선행2가 클경우를 한 식에서 신호를 낼수는 없는지요?
즉 식이 4개가 아니라 2개로 만들어질수는 없는지요?
번거럽게 해드려 죄송합니다..
다음글
이전글