커뮤니티
이것저것 문의드립니다.
2017-10-17 10:48:44
157
글번호 113399
매번 감사합니다. 어제 답변 주신 것이 잘 이해 안 가서 멘붕에 빠졌다가 다시 마음 추스리고 해보고 있습니다. 하이투자증권에서 뵈었던 강사님은 2개월 정도면 랭귀지에도 익숙해지고 프로그램에도 익숙해질 거라고 하셨었는데, 저에게는 매우 버겁네요. 처음 코딩 배울 때의 괴로움을 다시금 느끼고 있습니다.
도움말 주신 것을 응용못해서 다시 질문드립니다.
1. 시스템
진입
시초가대비 1%(변수a) 올랐을 때 매수
청산
진입가격에서 n%(변수b) 이상 오른 뒤 n%(변수c) 떨어졌을 때 청산(setstop함수 말고 가장 리포트와 비슷한 방법으로)
2. 과거 데이터 움직임 가설이라는 제목의 링크입니다. 어제 링크해주셨는데요. 보고서도 궁금증이 풀리지 않았습니다.
가. 시가와 고가 시가와 저가의 가격폭이 같을 경우 봉 데이터의 움직임
시가 → 저가 → 고가 → 종가의 데이터 흐름으로 한다.
예) 진입신호가 다음과 같을 경우
Buy("Buy1", AtLimit, C-0.01);
Sell("Sell1", AtLimit, C+0.01);
위와 같은 두개의 진입 신호가 동시에 만족하고 현재의 봉의 시가와 고가, 시가와 저가의
가격폭이 같을 경우 다음과 같은 신호 결과를 나타낸다.
고가와 저가의 움직임은 시가와 종가 사이 시간의 데이터에 대한 움직임을 알 수 있는 데이터를 가지고 있지 않으므로 알 수 없다.
-> 저는 설명을 보고 틱 데이터를 다 받을 수 없는 제약때문에 시가와 고가를 알 수 없다고 이해했습니다. 그런데 위의 설명은 시가와 고가라는 게 있긴 있다는 가정 하에 설명을 하고 있는 것 아닌가요? 고가와 저가의 움직임을 알 수 없다는 말과 봉이 완성 안됐을 때 시가와 고가 데이터를 알 수 없다는 말과 동의어가 아닌가요? 헷갈립니다.
->->답변 안주셔도 됩니다.
3. 조건검색
전일 거래대금이 300억 이상인 종목
4. atstop과 atlimit에 대한 궁금증
주문함수가 이렇게 중요한 것인 지 몰랐네요. 제가 이해하는 것이 맞나해서 여쭤 봅니다. 아래 말들이 다 맞나요?
4-1 onclose와 atmarket은 30분봉으로 매매할 경우 조건이 완성된 후에 조건이 완성된 봉에 buy시그널을 입힌다.
4-2 위 두 매매법은 30분봉이 완성되지 않는 이상 실제 매매는 하지 않는다. 실제 매매는 봉이 완성되거나 다음 봉이 시작될 때 매매한다.
4-3. 만약 조금이라도 빠르게 매매를 하고 싶다면 1분봉에서 30분봉 기준을 적용한다거나 해야 한다. (답변해주신대로 이것도 계산이 아예 안되는 범위면 당연히 안되겠죠?)
4-4 atstop이나 atlimit는 조건이 나온 봉에서 바로 청산할 수 있다. 그러나 이것은 전봉과 비교하는 조건만 거는 것이 가능하다. 현재봉이 이평선을 돌파했다거나 기술적지표들이 특정값을 돌파했다고 atstop을 걸 순 없다.
5. 공부하다보니 궁금증인데요. onclose나 atmarket은 트레이딩에서 말하는 예비신호와 같은 개념이라고 보면 될까요? 처음에는 당연히 신호가 나오는 즉시 매매를 해야 머릿속에서 생각한 트레이딩 아이디어와 같을 거라고 생각했는데 예비신호(실제 매매 전에 진입을 결정하기 위해 보는 신호) 개념을 생각 안해봤었네요.
--> 답변 안주셔도 됩니다.
6. 아래 답변을 보면 다 다음봉 지정가격에 진입이 이루어진다고 쓰여 있는데요. 그럼 조건 만족 시 바로 매수 혹은 매도한다는 개념은 시스템트레이딩에선 없다고 보면 되는 건가요?
atmarket의 경우 조건 만족 후 다음봉 시가에 주문이 발생하게 되며
atstop의 경우도 조건 만족 후 다음봉 지정 가격에 주문이 발생하게 됩니다.
두 함수의 표현 형식은 다음과 같습니다.
if 조건식 then
buy("매수", atmarket);
if 조건식 then
buy("매수", atstop, C);
여기서 주의하실 점은 두번째 "atstop"을 이용한 식에서 만약 지정가(C)를 지정해 주지 않게 된다면 조건이 만족한 이후 다음봉에서 조건 만족봉의 종가에 주문이 나가게 됩니다.
따라서 사용자님께서 문의하신 내용은 첫번째 식의 경우는 조건 만족 후 다음봉 시가에 주문이 들어가게 되며 두번째 식의 경우는 조건 만족 후 다음봉에서 이전 봉의 종가 가격으로 주문이 들어가게 되는 것입니다.
감사합니다...
답변 1
예스스탁 예스스탁 답변
2017-10-17 13:50:46
안녕하세요
예스스탁입니다.
1.
분봉 적용식입니다.
atstop은 봉완성시 지정된 값을 셋팅하고 다음봉에서 현재가와 비교해 신호가 발생합니다.
그러므로 오늘 마지막봉에 오늘시초가+1%를 셋팅하고 다음봉(다음날첫봉)에 신호가 발생하게 되면
현재가와 전일시가+1%로 신호가 발생하게 되므로
아래와 2개의 진입식 작성해 사용하시면 됩니다.
input : 변수a(1),변수b(10),변수c(3);
if MarketPosition == 0 then{
#일간 마지막봉에 셋팅해 당일 첫봉에 신호가 발생
#봉완성은 다음봉시가가 수신될때인데 다음봉시가가 NextBarOpen입니다.
#일간 마지막 봉완성은 NextBarOpen을 사용해 다음날 시가로 지정해 주고
if NextBarSdate > sdate Then
buy("b1",AtStop,NextBarOpen*(1+변수a/100));
#일간 마지막봉이 아닐때는 시초가를 사용해 가격을 지정해서 매수신호를 발생하게 됩니다.
if NextBarSdate == sdate Then
buy("b2",AtStop,dayOpen*(1+변수a/100));
}
#10%이상 상승후 최고가격에서 3%하락하면 청산
if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice*(1+변수b/100) Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)*(1-변수c/100));
3
종목검색화면에서 일봉주기로 검색하시면 됩니다.
if money >= 30000000000 then
find(1);
4-1
봉완성시 조건이 만족하면 신호발생입니다.
4-2
봉완성이 다음봉시가수신될때입니다.
onclose,atmarket은 무조건 봉완성시 조건만족하면 신호가 발생하고 주문이 집행됩니다.
리포트상 가격만 완성봉의 종가를 적어주느냐 다음봉시가를 적어주느냐의 차이만 있습니다.
4-3
예 낮은주기에서 높은주기를 계산해서 구현해야 하며
언급하신데로 게산이 불가능할수도 있습니다.
4-4
예 맞습니다.
atstop과 atlimit은 완성된 봉에서 특정값을 셋팅하고
다음봉에서 실시간 수신되는 현재가와만 비교해서 신호를 발생할수 있습니다.
즉 위조건으로 가능한것만 미완성시에 신호를 낼수 있습니다.
외 조건으로 구현가능하지 안은 모든 내용은 if문으로 작성해 봉완성시로만 가능합니다.
6
예 없다고 보시면 됩니다.
랭귀지 기본체계가 봉완성시입니다.
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것저것 문의드립니다.
> 매번 감사합니다. 어제 답변 주신 것이 잘 이해 안 가서 멘붕에 빠졌다가 다시 마음 추스리고 해보고 있습니다. 하이투자증권에서 뵈었던 강사님은 2개월 정도면 랭귀지에도 익숙해지고 프로그램에도 익숙해질 거라고 하셨었는데, 저에게는 매우 버겁네요. 처음 코딩 배울 때의 괴로움을 다시금 느끼고 있습니다.
도움말 주신 것을 응용못해서 다시 질문드립니다.
1. 시스템
진입
시초가대비 1%(변수a) 올랐을 때 매수
청산
진입가격에서 n%(변수b) 이상 오른 뒤 n%(변수c) 떨어졌을 때 청산(setstop함수 말고 가장 리포트와 비슷한 방법으로)
2. 과거 데이터 움직임 가설이라는 제목의 링크입니다. 어제 링크해주셨는데요. 보고서도 궁금증이 풀리지 않았습니다.
가. 시가와 고가 시가와 저가의 가격폭이 같을 경우 봉 데이터의 움직임
시가 → 저가 → 고가 → 종가의 데이터 흐름으로 한다.
예) 진입신호가 다음과 같을 경우
Buy("Buy1", AtLimit, C-0.01);
Sell("Sell1", AtLimit, C+0.01);
위와 같은 두개의 진입 신호가 동시에 만족하고 현재의 봉의 시가와 고가, 시가와 저가의
가격폭이 같을 경우 다음과 같은 신호 결과를 나타낸다.
고가와 저가의 움직임은 시가와 종가 사이 시간의 데이터에 대한 움직임을 알 수 있는 데이터를 가지고 있지 않으므로 알 수 없다.
-> 저는 설명을 보고 틱 데이터를 다 받을 수 없는 제약때문에 시가와 고가를 알 수 없다고 이해했습니다. 그런데 위의 설명은 시가와 고가라는 게 있긴 있다는 가정 하에 설명을 하고 있는 것 아닌가요? 고가와 저가의 움직임을 알 수 없다는 말과 봉이 완성 안됐을 때 시가와 고가 데이터를 알 수 없다는 말과 동의어가 아닌가요? 헷갈립니다.
->->답변 안주셔도 됩니다.
3. 조건검색
전일 거래대금이 300억 이상인 종목
4. atstop과 atlimit에 대한 궁금증
주문함수가 이렇게 중요한 것인 지 몰랐네요. 제가 이해하는 것이 맞나해서 여쭤 봅니다. 아래 말들이 다 맞나요?
4-1 onclose와 atmarket은 30분봉으로 매매할 경우 조건이 완성된 후에 조건이 완성된 봉에 buy시그널을 입힌다.
4-2 위 두 매매법은 30분봉이 완성되지 않는 이상 실제 매매는 하지 않는다. 실제 매매는 봉이 완성되거나 다음 봉이 시작될 때 매매한다.
4-3. 만약 조금이라도 빠르게 매매를 하고 싶다면 1분봉에서 30분봉 기준을 적용한다거나 해야 한다. (답변해주신대로 이것도 계산이 아예 안되는 범위면 당연히 안되겠죠?)
4-4 atstop이나 atlimit는 조건이 나온 봉에서 바로 청산할 수 있다. 그러나 이것은 전봉과 비교하는 조건만 거는 것이 가능하다. 현재봉이 이평선을 돌파했다거나 기술적지표들이 특정값을 돌파했다고 atstop을 걸 순 없다.
5. 공부하다보니 궁금증인데요. onclose나 atmarket은 트레이딩에서 말하는 예비신호와 같은 개념이라고 보면 될까요? 처음에는 당연히 신호가 나오는 즉시 매매를 해야 머릿속에서 생각한 트레이딩 아이디어와 같을 거라고 생각했는데 예비신호(실제 매매 전에 진입을 결정하기 위해 보는 신호) 개념을 생각 안해봤었네요.
--> 답변 안주셔도 됩니다.
6. 아래 답변을 보면 다 다음봉 지정가격에 진입이 이루어진다고 쓰여 있는데요. 그럼 조건 만족 시 바로 매수 혹은 매도한다는 개념은 시스템트레이딩에선 없다고 보면 되는 건가요?
atmarket의 경우 조건 만족 후 다음봉 시가에 주문이 발생하게 되며
atstop의 경우도 조건 만족 후 다음봉 지정 가격에 주문이 발생하게 됩니다.
두 함수의 표현 형식은 다음과 같습니다.
if 조건식 then
buy("매수", atmarket);
if 조건식 then
buy("매수", atstop, C);
여기서 주의하실 점은 두번째 "atstop"을 이용한 식에서 만약 지정가(C)를 지정해 주지 않게 된다면 조건이 만족한 이후 다음봉에서 조건 만족봉의 종가에 주문이 나가게 됩니다.
따라서 사용자님께서 문의하신 내용은 첫번째 식의 경우는 조건 만족 후 다음봉 시가에 주문이 들어가게 되며 두번째 식의 경우는 조건 만족 후 다음봉에서 이전 봉의 종가 가격으로 주문이 들어가게 되는 것입니다.
감사합니다...