커뮤니티
문의드립니다.
2018-01-02 10:42:20
240
글번호 115359
올해 수식왕 예스스탁님 덕분에 많이 배웠습니다. 앞으로도 잘 부탁드립니다. 새해 복 많이 받으세요~~
1. 기타
#ATR포인트 청산
Input : iATR기간(3), iATR길이(0);
Var: vATR(0);
vATR = ATR(iATR기간)*iATR길이;
if MarketPosition <> 0 Then
#0포인트부터 추적해서 고점대비 vATR만큼 떨어지면 청산
SetStopTrailing(vATR, 0, PointStop,1);
기존전략에 이 청산전략 추가 시킨 건데요. 첨부파일은 기존전략에 외부변수가 1,1(ATR기간1,길이1)로 나왔을 때 청산신호입니다 화면을 보면 같은 봉에서 매수와 청산도 되고 하는 것 같은데 이거 봉가정 오류인가요? 그런데 한권으로 읽는 시스템트레이딩보면 if MarketPosition <> 0 이 식 쓰면 같은 봉에서 매수매도되는 것 막아준다고 돼 있고 진입가격이 아닌 고가로 쓰면 오류 막아준다고 돼 있는데 이렇게 해도 오류가 생기는 건가요? 오류가 생겼다면 왜 오류가 생긴건 지 설명 부탁드립니다. 이전에 설명해주신 범주(수익률 봉가정 트레일링스탑오류)에는 안 속하는 것 같아서요. 어떻게 오류를 막을 수 있나요?
2. 기타
몇가지 필터 코딩 부탁드립니다.
2-1 청산 후 일정봉 갯수 내에서는 진입금지
2-2 11시 이후에는 리버스 진입금지
3. 기타
3-1 수익거래 청산 시에는 리버스 진입 금지
3-2 손절 청산 발생시 당일 추가 진입금지
4. 기타
가격이 일정봉(외부변수) 이상이 지난 뒤 손익분기 청산지점(손익이 0이 되는 시점에 청산. 여기에는 가정한 슬리피지와 수수료를 포함시킴. 가령 200포인트 매수 진입이면 200포인트+1틱(가정 슬리피지)+(200포인트*0.002(수수료))지점을 손익분기지점이라고 가정함)에 닿으면 즉시 청산.
- 1. 115936_캡쳐.png (0.16 MB)
답변 1
예스스탁 예스스탁 답변
2018-01-02 14:20:28
안녕하세요
예스스탁입니다.
1
SetStopTrailing은 이전에 답변드린부분과 같이
과거시뮬레이션 결과와 실전과 괴리가 발생하는 설정입니다.
함수에 if MarketPosition <> 0를 사용해도 마찬가지 입니다.
if MarketPosition <> 0 Then
SetStopTrailing(vATR, 0, PointStop,1);
차이가 발생하는 원인은 이전에 설명드린부분과 같습니다.
과거 데이터는 봉에 모든 틱에 대한 정보가 없어
봉 내부의 움직임을 알수 없기 때문입니다.
2-1
if MarketPosition == 0 and 매수진입조건 Then{
if MarketPosition(1) == 0 or (MarketPosition(1) != 0 and BarsSinceExit(1) >= 5) Then
buy();
}
if MarketPosition == 0 and 매도진입조건 Then{
if MarketPosition(1) == 0 or (MarketPosition(1) != 0 and BarsSinceExit(1) >= 5) Then
sell();
}
2-2
if 매수진입조건 Then{
if (stime < 110000) or (stime >= 110000 and MarketPosition == 0) Then
buy();
}
if 매도진입조건 Then{
if (stime < 110000) or (stime >= 110000 and MarketPosition == 0) Then
sell();
}
3-1
if 매수진입조건 Then{
if MarketPosition == 0 or (MarketPosition == -1 and C > EntryPrice) Then
buy();
Else
ExitShort();
}
if 매도진입조건 Then{
if MarketPosition == 0 or (MarketPosition == 1 and C < EntryPrice) Then
sell();
Else
ExitLong();
}
3-2
var : Xcond(false);
if bdate != bdate[1] Then
Xcond = false;
if TotalTrades > TotalTrades[1] and IsExitName("StopLoss",1) == true Then
Xcond = true;
if Xcond == false and 매수진입조건 Then
buy();
if Xcond == false and 매도진입조건 Then
sell();
SetStopLoss(~~);//손절설정
4
input : n1(10),슬리피지틱수(1),수수료율(0.002);
if MarketPosition == 1 and BarsSinceEntry >= n1 Then{
var1 = EntryPrice+PriceScale*슬리피지틱수+EntryPrice*(수수료율/100);
if NextBarOpen <= var1 Then
exitlong("bx1",AtLimit,var1);
Else
exitlong("bx2",AtStop,var1);
}
if MarketPosition == -1 and BarsSinceEntry >= n1 Then{
var1 = EntryPrice-PriceScale*슬리피지틱수-EntryPrice*(수수료율/100);
if NextBarOpen >= var1 Then
ExitShort("sx1",AtLimit,var1);
Else
ExitShort("sx2",AtStop,var1);
}
새해 복 많이 받으세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 올해 수식왕 예스스탁님 덕분에 많이 배웠습니다. 앞으로도 잘 부탁드립니다. 새해 복 많이 받으세요~~
1. 기타
#ATR포인트 청산
Input : iATR기간(3), iATR길이(0);
Var: vATR(0);
vATR = ATR(iATR기간)*iATR길이;
if MarketPosition <> 0 Then
#0포인트부터 추적해서 고점대비 vATR만큼 떨어지면 청산
SetStopTrailing(vATR, 0, PointStop,1);
기존전략에 이 청산전략 추가 시킨 건데요. 첨부파일은 기존전략에 외부변수가 1,1(ATR기간1,길이1)로 나왔을 때 청산신호입니다 화면을 보면 같은 봉에서 매수와 청산도 되고 하는 것 같은데 이거 봉가정 오류인가요? 그런데 한권으로 읽는 시스템트레이딩보면 if MarketPosition <> 0 이 식 쓰면 같은 봉에서 매수매도되는 것 막아준다고 돼 있고 진입가격이 아닌 고가로 쓰면 오류 막아준다고 돼 있는데 이렇게 해도 오류가 생기는 건가요? 오류가 생겼다면 왜 오류가 생긴건 지 설명 부탁드립니다. 이전에 설명해주신 범주(수익률 봉가정 트레일링스탑오류)에는 안 속하는 것 같아서요. 어떻게 오류를 막을 수 있나요?
2. 기타
몇가지 필터 코딩 부탁드립니다.
2-1 청산 후 일정봉 갯수 내에서는 진입금지
2-2 11시 이후에는 리버스 진입금지
3. 기타
3-1 수익거래 청산 시에는 리버스 진입 금지
3-2 손절 청산 발생시 당일 추가 진입금지
4. 기타
가격이 일정봉(외부변수) 이상이 지난 뒤 손익분기 청산지점(손익이 0이 되는 시점에 청산. 여기에는 가정한 슬리피지와 수수료를 포함시킴. 가령 200포인트 매수 진입이면 200포인트+1틱(가정 슬리피지)+(200포인트*0.002(수수료))지점을 손익분기지점이라고 가정함)에 닿으면 즉시 청산.