커뮤니티
문의드립니다.
2018-01-04 14:29:08
229
글번호 115446
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
-20개봉 고가 돌파 시 buysetup true 고가 저장
-진입봉 이후 n개봉(외부변수) 뒤(1이면 1개봉 뒤 가격) buysetup 고가를 n틱이상 돌파하면 매수진입
-매도진입은 반대.
2. 시스템
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
Vars: XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
-XAvg가 HRetrace보다 위에 있으면 셋업 고가 저장
-0930분내로 종가가 XAvg나 HRetrace를 하향돌파하면 셋업 무효
진입
-셋업고가를 n틱 이상 상향돌파하거나 셋업고가 위에 있는 종가봉이 n개 이상이면 진입
청산
-종가가 Xavg를 하향돌파한 뒤 하향돌파한 봉이 n개이거나
-XavG를 n틱이상 하향돌파하면 청산
매도는 반대
3. 기타
전일 밴드폭의 최고값이 N이상이면
당일 진입 금지 코딩
4. 기타
이렇게 돼 있을 때 BUYSetup 봉보다 n봉 이후의 봉같은 것은 어떻게 코딩을 해야 하나요.
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
5. 그림은 코딩을 이렇게 했을 때의 매수 신호인데요.
차트를 보면 매수신호 다음봉이 고가 + n틱을 돌파한 것처럼 보이지는 않습니다. 본래 목적은 buysetup에 고가를 저장하고 다음봉이 고가를 돌파했을 때인데요. 고가를 돌파하지 않았는데도
진입을 합니다. 왜 그런건지요. 혹시 데이전략에 쓰려면 buybase 값들도 다 초기화를 시켜줘야 하나요?
LRLv = LRL(C,Period);
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
if buysetup == true and MarketPosition == 0 then{
buy("매수",AtStop,buybase+PriceScale*틱수);}
if CrossDown(c,LRLv) then
exitlong();
- 1. 116033_캡처.PNG (0.04 MB)
답변 3
예스스탁 예스스탁 답변
2018-01-04 15:43:43
안녕하세요
예스스탁입니다.
1.
input : P(20),n(3),x(5);
var : BuySetup(false),sellSetup(false);
if crossup(C,highest(H,P)[1]) Then{
var1 = h;
var2 = index;
buysetup = true;
}
if index >= var2+n and BuySetup == true and c >= var1+PriceScale*x Then
buy();
if MarketPosition == 1 Then
buysetup = false;
if CrossDown(C,Lowest(L,P)[1]) Then{
var3 = h;
var4 = index;
sellsetup = true;
}
if index >= var4+n and sellsetup == true and c <= var3-PriceScale*x Then
sell();
if MarketPosition == -1 Then
sellsetup = false;
2
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
input : n1(10),n2(5),n3(5),n4(10);
Var : XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
var : buysetup(false),SellSetup(false);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
if Xavg > HRetrace Then{
buysetup = true;
sellsetup = false;
var1 = h;
}
if Xavg < HRetrace Then{
sellsetup = true;
buysetup = false;
var2 = L;
}
if stime < 93000 and ( C < Xavg or C < HRetrace) Then
buysetup = false;
if stime < 93000 and ( C > Xavg or C > HRetrace) Then
sellsetup = false;
if (buysetup == true and C >= var1+PriceScale*n1) or
countif(buysetup == true and C > var1,n2) == n2 then
buy();
if MarketPosition == 1 then{
buysetup = false;
if countif(C<Xavg,n3) == n3 Then
exitlong();
if C <= Xavg-PriceScale*n4 Then
exitlong();
}
if (sellsetup == true and C <= var2+PriceScale*n1) or
countif(sellsetup == true and C < var2,n2) == n2 then
sell();
if MarketPosition == -1 then{
sellsetup = false;
if countif(C>Xavg,n3) == n3 Then
ExitShort();
if C >= Xavg+PriceScale*n4 Then
ExitShort();
}
3
Input : Period(20), Dv(2), n(1);
Variable : BBTop(0), BBMid(0), BBBot(0),Bwidth(0),HH(0),HH1(0),entry(false);
BBTop = BollBandUp(Period,Dv);
BBMid = ma(C,Period);
BBBot = BollBandDown(Period,Dv);
BWidth = ((BBTop - BBBot)/ BBMid);
if bdate != bdate[1] Then{
HH = BWidth;
HH1 = HH[1];
entry = true;
if HH1 >= n Then
Entry = false;
}
if BWidth > HH Then
HH = BWidth;
if entry == true then{
진입청산수식들
}
4
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;
}
# buysetup만족 후 n봉 이후
if buysetup == true and index > buyindex+n then
C > LRLv와 같이 조건을 지정하면
종가가 LRL값보다 크면 계속 조건이 만족합니다.
그러므로 C > LRLv조건이 만족하면 계속 TRUE이고 봉번호가 업데이트됩니다.
crossup(C,LRLV)로 조건을 변경하면
종가가 LRL보다 큰 첫봉만을 기준으로 할수 있습니다.
이용에 참고하시기 바랍니다.
5
신호가 정상적으로 나온 화면입니다.
매수신호 전봉(전일마지막봉)에서 조건이 만족했고
해당봉의 고가보다 큰 시세가 발생해서 신호가 발생한것입니다.
작성하신 수식에는 buysetup에 true만 저장하고 이후에 false로 초기화 하는 내용이 없습니다.
일간으로 초기화 하고자 하시면 초기화하는 내용을 넣으셔야 합니다.
수식은 자동으로 초기화되거나 하는 부분이 없습니다.
필요한 내용은 수식코딩으로 지정하셔야 합니다.
또한 반복적으로 답변드리는 부분인데atstop이나 atlimit은 봉완성시 값을 셋팅하고
다음봉 미완성시에 신호가 발생합니다.
신호에 atstop을 사용하셨으면 신호가 발생한 전봉이 atstop가격조건이 충족된 봉이므로
한봉전에 조건이 충족했는데 한봉에 셋팅된 가격보다 큰시세나 작은시세가 있는지 확인하셔야 합니다.
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
-20개봉 고가 돌파 시 buysetup true 고가 저장
-진입봉 이후 n개봉(외부변수) 뒤(1이면 1개봉 뒤 가격) buysetup 고가를 n틱이상 돌파하면 매수진입
-매도진입은 반대.
2. 시스템
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
Vars: XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
-XAvg가 HRetrace보다 위에 있으면 셋업 고가 저장
-0930분내로 종가가 XAvg나 HRetrace를 하향돌파하면 셋업 무효
진입
-셋업고가를 n틱 이상 상향돌파하거나 셋업고가 위에 있는 종가봉이 n개 이상이면 진입
청산
-종가가 Xavg를 하향돌파한 뒤 하향돌파한 봉이 n개이거나
-XavG를 n틱이상 하향돌파하면 청산
매도는 반대
3. 기타
전일 밴드폭의 최고값이 N이상이면
당일 진입 금지 코딩
4. 기타
이렇게 돼 있을 때 BUYSetup 봉보다 n봉 이후의 봉같은 것은 어떻게 코딩을 해야 하나요.
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
5. 그림은 코딩을 이렇게 했을 때의 매수 신호인데요.
차트를 보면 매수신호 다음봉이 고가 + n틱을 돌파한 것처럼 보이지는 않습니다. 본래 목적은 buysetup에 고가를 저장하고 다음봉이 고가를 돌파했을 때인데요. 고가를 돌파하지 않았는데도
진입을 합니다. 왜 그런건지요. 혹시 데이전략에 쓰려면 buybase 값들도 다 초기화를 시켜줘야 하나요?
LRLv = LRL(C,Period);
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
if buysetup == true and MarketPosition == 0 then{
buy("매수",AtStop,buybase+PriceScale*틱수);}
if CrossDown(c,LRLv) then
exitlong();
잡다백수
2018-01-04 16:47:48
2번 재질문드립니다 .
생각해보니 말씀하신대로 C > 지표값 이렇게 하면 crossup으로 하지 않는 이상 위에 있으면 계속 셋업으로 해놨던 봉이 바뀌게 되는데요. 그럼 장 시작시점에만 Xavg > HRetrace와 같은 셋업이 되도록 하려면 stime만 추가시키면 되나요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
input : P(20),n(3),x(5);
var : BuySetup(false),sellSetup(false);
if crossup(C,highest(H,P)[1]) Then{
var1 = h;
var2 = index;
buysetup = true;
}
if index >= var2+n and BuySetup == true and c >= var1+PriceScale*x Then
buy();
if MarketPosition == 1 Then
buysetup = false;
if CrossDown(C,Lowest(L,P)[1]) Then{
var3 = h;
var4 = index;
sellsetup = true;
}
if index >= var4+n and sellsetup == true and c <= var3-PriceScale*x Then
sell();
if MarketPosition == -1 Then
sellsetup = false;
2
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
input : n1(10),n2(5),n3(5),n4(10);
Var : XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
var : buysetup(false),SellSetup(false);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
if Xavg > HRetrace Then{
buysetup = true;
sellsetup = false;
var1 = h;
}
if Xavg < HRetrace Then{
sellsetup = true;
buysetup = false;
var2 = L;
}
if stime < 93000 and ( C < Xavg or C < HRetrace) Then
buysetup = false;
if stime < 93000 and ( C > Xavg or C > HRetrace) Then
sellsetup = false;
if (buysetup == true and C >= var1+PriceScale*n1) or
countif(buysetup == true and C > var1,n2) == n2 then
buy();
if MarketPosition == 1 then{
buysetup = false;
if countif(C<Xavg,n3) == n3 Then
exitlong();
if C <= Xavg-PriceScale*n4 Then
exitlong();
}
if (sellsetup == true and C <= var2+PriceScale*n1) or
countif(sellsetup == true and C < var2,n2) == n2 then
sell();
if MarketPosition == -1 then{
sellsetup = false;
if countif(C>Xavg,n3) == n3 Then
ExitShort();
if C >= Xavg+PriceScale*n4 Then
ExitShort();
}
3
Input : Period(20), Dv(2), n(1);
Variable : BBTop(0), BBMid(0), BBBot(0),Bwidth(0),HH(0),HH1(0),entry(false);
BBTop = BollBandUp(Period,Dv);
BBMid = ma(C,Period);
BBBot = BollBandDown(Period,Dv);
BWidth = ((BBTop - BBBot)/ BBMid);
if bdate != bdate[1] Then{
HH = BWidth;
HH1 = HH[1];
entry = true;
if HH1 >= n Then
Entry = false;
}
if BWidth > HH Then
HH = BWidth;
if entry == true then{
진입청산수식들
}
4
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;
}
# buysetup만족 후 n봉 이후
if buysetup == true and index > buyindex+n then
C > LRLv와 같이 조건을 지정하면
종가가 LRL값보다 크면 계속 조건이 만족합니다.
그러므로 C > LRLv조건이 만족하면 계속 TRUE이고 봉번호가 업데이트됩니다.
crossup(C,LRLV)로 조건을 변경하면
종가가 LRL보다 큰 첫봉만을 기준으로 할수 있습니다.
이용에 참고하시기 바랍니다.
5
신호가 정상적으로 나온 화면입니다.
매수신호 전봉(전일마지막봉)에서 조건이 만족했고
해당봉의 고가보다 큰 시세가 발생해서 신호가 발생한것입니다.
작성하신 수식에는 buysetup에 true만 저장하고 이후에 false로 초기화 하는 내용이 없습니다.
일간으로 초기화 하고자 하시면 초기화하는 내용을 넣으셔야 합니다.
수식은 자동으로 초기화되거나 하는 부분이 없습니다.
필요한 내용은 수식코딩으로 지정하셔야 합니다.
또한 반복적으로 답변드리는 부분인데atstop이나 atlimit은 봉완성시 값을 셋팅하고
다음봉 미완성시에 신호가 발생합니다.
신호에 atstop을 사용하셨으면 신호가 발생한 전봉이 atstop가격조건이 충족된 봉이므로
한봉전에 조건이 충족했는데 한봉에 셋팅된 가격보다 큰시세나 작은시세가 있는지 확인하셔야 합니다.
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
-20개봉 고가 돌파 시 buysetup true 고가 저장
-진입봉 이후 n개봉(외부변수) 뒤(1이면 1개봉 뒤 가격) buysetup 고가를 n틱이상 돌파하면 매수진입
-매도진입은 반대.
2. 시스템
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
Vars: XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
-XAvg가 HRetrace보다 위에 있으면 셋업 고가 저장
-0930분내로 종가가 XAvg나 HRetrace를 하향돌파하면 셋업 무효
진입
-셋업고가를 n틱 이상 상향돌파하거나 셋업고가 위에 있는 종가봉이 n개 이상이면 진입
청산
-종가가 Xavg를 하향돌파한 뒤 하향돌파한 봉이 n개이거나
-XavG를 n틱이상 하향돌파하면 청산
매도는 반대
3. 기타
전일 밴드폭의 최고값이 N이상이면
당일 진입 금지 코딩
4. 기타
이렇게 돼 있을 때 BUYSetup 봉보다 n봉 이후의 봉같은 것은 어떻게 코딩을 해야 하나요.
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
5. 그림은 코딩을 이렇게 했을 때의 매수 신호인데요.
차트를 보면 매수신호 다음봉이 고가 + n틱을 돌파한 것처럼 보이지는 않습니다. 본래 목적은 buysetup에 고가를 저장하고 다음봉이 고가를 돌파했을 때인데요. 고가를 돌파하지 않았는데도
진입을 합니다. 왜 그런건지요. 혹시 데이전략에 쓰려면 buybase 값들도 다 초기화를 시켜줘야 하나요?
LRLv = LRL(C,Period);
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
if buysetup == true and MarketPosition == 0 then{
buy("매수",AtStop,buybase+PriceScale*틱수);}
if CrossDown(c,LRLv) then
exitlong();
예스스탁 예스스탁 답변
2018-01-04 16:59:25
안녕하세요
예스스탁입니다.
시간조건도 추가해 주샤야 하고
변수도 날짜변경시에 초기화 되게 해주셔야 합니다.
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
input : n1(10),n2(5),n3(5),n4(10);
Var : XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
var : buysetup(false),SellSetup(false);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
if bdate != bdate[1] Then{
BuySetup = false;
SellSetup = false;
if Xavg > HRetrace Then{
buysetup = true;
var1 = h;
}
if Xavg < HRetrace Then{
sellsetup = true;
var2 = L;
}
}
if stime < 93000 and ( C < Xavg or C < HRetrace) Then
buysetup = false;
if stime < 93000 and ( C > Xavg or C > HRetrace) Then
sellsetup = false;
if (buysetup == true and C >= var1+PriceScale*n1) or
countif(buysetup == true and C > var1,n2) == n2 then
buy();
if MarketPosition == 1 then{
buysetup = false;
if countif(C<Xavg,n3) == n3 Then
exitlong();
if C <= Xavg-PriceScale*n4 Then
exitlong();
}
if (sellsetup == true and C <= var2+PriceScale*n1) or
countif(sellsetup == true and C < var2,n2) == n2 then
sell();
if MarketPosition == -1 then{
sellsetup = false;
if countif(C>Xavg,n3) == n3 Then
ExitShort();
if C >= Xavg+PriceScale*n4 Then
ExitShort();
}
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다.
> 2번 재질문드립니다 .
생각해보니 말씀하신대로 C > 지표값 이렇게 하면 crossup으로 하지 않는 이상 위에 있으면 계속 셋업으로 해놨던 봉이 바뀌게 되는데요. 그럼 장 시작시점에만 Xavg > HRetrace와 같은 셋업이 되도록 하려면 stime만 추가시키면 되나요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
input : P(20),n(3),x(5);
var : BuySetup(false),sellSetup(false);
if crossup(C,highest(H,P)[1]) Then{
var1 = h;
var2 = index;
buysetup = true;
}
if index >= var2+n and BuySetup == true and c >= var1+PriceScale*x Then
buy();
if MarketPosition == 1 Then
buysetup = false;
if CrossDown(C,Lowest(L,P)[1]) Then{
var3 = h;
var4 = index;
sellsetup = true;
}
if index >= var4+n and sellsetup == true and c <= var3-PriceScale*x Then
sell();
if MarketPosition == -1 Then
sellsetup = false;
2
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
input : n1(10),n2(5),n3(5),n4(10);
Var : XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
var : buysetup(false),SellSetup(false);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
if Xavg > HRetrace Then{
buysetup = true;
sellsetup = false;
var1 = h;
}
if Xavg < HRetrace Then{
sellsetup = true;
buysetup = false;
var2 = L;
}
if stime < 93000 and ( C < Xavg or C < HRetrace) Then
buysetup = false;
if stime < 93000 and ( C > Xavg or C > HRetrace) Then
sellsetup = false;
if (buysetup == true and C >= var1+PriceScale*n1) or
countif(buysetup == true and C > var1,n2) == n2 then
buy();
if MarketPosition == 1 then{
buysetup = false;
if countif(C<Xavg,n3) == n3 Then
exitlong();
if C <= Xavg-PriceScale*n4 Then
exitlong();
}
if (sellsetup == true and C <= var2+PriceScale*n1) or
countif(sellsetup == true and C < var2,n2) == n2 then
sell();
if MarketPosition == -1 then{
sellsetup = false;
if countif(C>Xavg,n3) == n3 Then
ExitShort();
if C >= Xavg+PriceScale*n4 Then
ExitShort();
}
3
Input : Period(20), Dv(2), n(1);
Variable : BBTop(0), BBMid(0), BBBot(0),Bwidth(0),HH(0),HH1(0),entry(false);
BBTop = BollBandUp(Period,Dv);
BBMid = ma(C,Period);
BBBot = BollBandDown(Period,Dv);
BWidth = ((BBTop - BBBot)/ BBMid);
if bdate != bdate[1] Then{
HH = BWidth;
HH1 = HH[1];
entry = true;
if HH1 >= n Then
Entry = false;
}
if BWidth > HH Then
HH = BWidth;
if entry == true then{
진입청산수식들
}
4
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;
}
# buysetup만족 후 n봉 이후
if buysetup == true and index > buyindex+n then
C > LRLv와 같이 조건을 지정하면
종가가 LRL값보다 크면 계속 조건이 만족합니다.
그러므로 C > LRLv조건이 만족하면 계속 TRUE이고 봉번호가 업데이트됩니다.
crossup(C,LRLV)로 조건을 변경하면
종가가 LRL보다 큰 첫봉만을 기준으로 할수 있습니다.
이용에 참고하시기 바랍니다.
5
신호가 정상적으로 나온 화면입니다.
매수신호 전봉(전일마지막봉)에서 조건이 만족했고
해당봉의 고가보다 큰 시세가 발생해서 신호가 발생한것입니다.
작성하신 수식에는 buysetup에 true만 저장하고 이후에 false로 초기화 하는 내용이 없습니다.
일간으로 초기화 하고자 하시면 초기화하는 내용을 넣으셔야 합니다.
수식은 자동으로 초기화되거나 하는 부분이 없습니다.
필요한 내용은 수식코딩으로 지정하셔야 합니다.
또한 반복적으로 답변드리는 부분인데atstop이나 atlimit은 봉완성시 값을 셋팅하고
다음봉 미완성시에 신호가 발생합니다.
신호에 atstop을 사용하셨으면 신호가 발생한 전봉이 atstop가격조건이 충족된 봉이므로
한봉전에 조건이 충족했는데 한봉에 셋팅된 가격보다 큰시세나 작은시세가 있는지 확인하셔야 합니다.
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
-20개봉 고가 돌파 시 buysetup true 고가 저장
-진입봉 이후 n개봉(외부변수) 뒤(1이면 1개봉 뒤 가격) buysetup 고가를 n틱이상 돌파하면 매수진입
-매도진입은 반대.
2. 시스템
Inputs: XAvgLen(15), HiLoLen(50), Retrace(0.382);
Vars: XAvg(0),HiHi(0),LoLo(0),Retracement(0),HRetrace(0),LRetrace(0);
XAvg = Ema(C, XAvgLen);
HiHi = Highest(High, HiLoLen);
LoLo = Lowest(Low, HiLoLen);
Retracement = (HiHi - LoLo) * Retrace;
HRetrace = HiHi - Retracement;
Lretrace = LoLo + Retracement;
-XAvg가 HRetrace보다 위에 있으면 셋업 고가 저장
-0930분내로 종가가 XAvg나 HRetrace를 하향돌파하면 셋업 무효
진입
-셋업고가를 n틱 이상 상향돌파하거나 셋업고가 위에 있는 종가봉이 n개 이상이면 진입
청산
-종가가 Xavg를 하향돌파한 뒤 하향돌파한 봉이 n개이거나
-XavG를 n틱이상 하향돌파하면 청산
매도는 반대
3. 기타
전일 밴드폭의 최고값이 N이상이면
당일 진입 금지 코딩
4. 기타
이렇게 돼 있을 때 BUYSetup 봉보다 n봉 이후의 봉같은 것은 어떻게 코딩을 해야 하나요.
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
5. 그림은 코딩을 이렇게 했을 때의 매수 신호인데요.
차트를 보면 매수신호 다음봉이 고가 + n틱을 돌파한 것처럼 보이지는 않습니다. 본래 목적은 buysetup에 고가를 저장하고 다음봉이 고가를 돌파했을 때인데요. 고가를 돌파하지 않았는데도
진입을 합니다. 왜 그런건지요. 혹시 데이전략에 쓰려면 buybase 값들도 다 초기화를 시켜줘야 하나요?
LRLv = LRL(C,Period);
If C > LRLv Then{
buysetup = true;
buybase = H;
Buyindex = index;}
if buysetup == true and MarketPosition == 0 then{
buy("매수",AtStop,buybase+PriceScale*틱수);}
if CrossDown(c,LRLv) then
exitlong();
다음글
이전글