답변완료
역배열/정배열이면 진입 지연
안녕하세요.
시스템을 작성하면서 어려움이 있어 도움을 요청드립니다.
1. 아래 로직을 시스템으로 작성하고 싶습니다.
1-1. 매수 진입
(1) 파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생하면 매수(buy)를 하는게 아니라,
파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생할 때 역배열(20봉 이평선 < 60 봉 이평선)이면,
주가의 종가가 20일 이평선을 상향 돌파할 때까지 기다렸다 20일 이평선을 상향 돌파하면 매수하라.
(2) 파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생할 때 정배열(20봉 이평선 >= 60 봉 이평선)이면,
매수하라.
1-2. 매수 청산
파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생하면 청산하라.
<매도 진입, 매도 청산: 위에 있는 매수 진입, 매수 청산과 반대 조건입니다>
1-3. 매도 진입
(1) 파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생하면 매도(sell)를 하는게 아니라,
파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생할 때 정배열(20봉 이평선 > 60 봉 이평선)이면,
주가의 종가가 20일 이평선을 하향 이탈할 때까지 기다렸다 20일 이평선을 하향 이탈하면 매도하라.
(2) 파라볼릭(0.02, 0.2) 지표에서 매도 신호가 발생할 때 역배열(20봉 이평선 <= 60 봉 이평선)이면,
매도하라.
1-4. 매도 청산
파라볼릭(0.02, 0.2) 지표에서 매수 신호가 발생하면 청산하라.
2. 주의 사항
위에서 역배열/정배열 여부는 "파라볼릭 지표에서 매수 신호가 발행할 때" 또는 "파라볼릭 지표에서 매도 신호가 발행할 때"의 이평선으로 판단하고 싶습니다.
다시 말하면 "주가의 종가가 20일 이평선을 상향 돌파할 때" 또는 "주가의 종가가 20일 이평선을 하향 이탈할 때" 가 아닙니다. 이걸 작성하다고 포기했습니다.
3. 아래는 파라볼릭 지표가 매수이고, 주가의 종가가 20봉 이평선을 상향 돌파할면 매수(buy)를 수행하는 코드입니다. 그러나 2.항에 있는 주의 사항의 역배열, 정배열 부분과 1-3.항, 1-4항의 매수 진입, 매수 청산은 구현하지 못했습니다.
Input : af(0.02), maxAF(0.2);
Input : shortPeriod(20), longPeriod(50);
Var : mav(0), sarv(0), Bcond(false);
mav = ma(c,shortPeriod); // 이평선(ma)
sarv = csar(af,maxAF); // 파라볼릭(sar)
Bcond = C > mav and C > Sarv; //
# 매수 진입
If Bcond == true and Bcond[1] == false Then
{
Buy();
}
# 매수 청산
If C < sarv Then
{
ExitLong();
}
많은 도움에 대단히 감사합니다.
2020-11-13
493
글번호 143860
시스템
답변완료
청산식 좀 요청 드립니다.
* 좋은 주말 되십시요.
(요청1) 아래 청산식 좀 부탁 드립니다.
VAR1 = MA(C,5) ;
VAR1 = MA(C,20) ;
IF CrossUp(VAR1,VAR2) Then BUY("SS1");
IF CrossDown(VAR1,VAR2) Then Sell("DD1") ; 수식일 경우
input:h(5); ## 진입가 대비 허용 공차 즉 300에 진입이면 285 ~ 315 까지는 진입가로계산
if MarketPosition == 1 and IsEntryName("SS1") == true Then
{ if 매수 진입후 30봉 경과 까지 봉 종가(C[1]) 기준으로
매수가 보다 큰봉 겟수(수익봉)와 ## 진입가 + h(허용공차) >= c[1]
매수가 보다 작은봉겟수(손실봉)를 ## 진입가 - h(허용공차) < c[1]
비교하여 수익봉 율(%)이 20퍼센트 미만이면 청산 }
if MarketPosition == -1 and IsEntryName("DD1") == true Then
{ if 매도 진입후 30봉 경과 까지 봉 종가(C[1]) 기준으로
매도가 보다 작은봉 겟수(수익봉)와 ## 진입가 - h(허용공차) <= c[1]
매도가 보다 큰봉 겟수(손실봉)를 ## 진입가 + h(허용공차) > c[1]
비교하여 수익봉 율(%)이 20퍼센트 미만이면 청산 }
(요청2) 아래 수식에서 01시~ 07시 까지 매매가 되는데 안 되게 수식 좀 수정 요청 드립니다.
input : 시스템적용일(20201113), 시스템시작시간(083000) ;
var : cnt(0),Xcnt(0),Ecnt(0) ;
Ecnt = 0;
for cnt = 0 to 20
{
if sdate == EntryDate(cnt) Then
Ecnt = Ecnt+1;
}
if date != date[1] Then
Xcnt = 0 ;
var1 =ma(c,5) ;
var2 =ma(c,20) ;
if sdate >= 시스템적용일 and stime >= 시스템시작시간 Then
{
Condition1 = true;
}
if Condition1 == true then
{
if CrossUp(var1,Var2) Then
buy();
if CrossDown(var1,var2) Then
Sell();
}
if sdate != sdate[1] Then SetStopEndofday(223000);
*항상 많은 도움에 고맙습니다.
2020-11-14
408
글번호 143858
시스템
답변완료
수식좀 부탁드립니다
변환좀 부탁드립니다
1-
highest(high,기간)
lowest(low,기간)
((highest(high,기간))+(lowest(low,기간)))/2
2 -
HighestSince(1,CrossUp(Trix(period),0),wavg(C,period) )
LowestSince(1,CrossDown(Trix(period),0),wavg(C,period))
A=wavg(C,period);
if(A>A(1),A,0)
A= wavg(C,period);
if(A<A(1),A,0)
2020-11-12
800
글번호 143842
지표