커뮤니티
문의드립니다.
2018-01-17 11:07:24
172
글번호 115842
1. 기타
input: 단기이평값(14),장기이평값(40),틱수(1);
var: 단기이평(0),장기이평(0),buybase(0),buysetup(false);
단기이평 = ma(c,단기이평값);
장기이평 = ma(c,장기이평값);
if bdate != bdate[1] then{
buybase = 0;
buysetup = false;}
if crossup(단기이평,장기이평) then{
buybase = H;
buySetup = true;}
if buySetup == true then
buy("b",atstop,buybase+PriceScale*틱수);
setstopendofday();
위와 같은 코딩을 짜봤는데요. 저기서 신호가 왜 나왔는지 잘 모르겠습니다. 전에 답해주신 코딩 참조해서 다시봐도 잘 모르겠습니다. 단기이평이 장기이평을 상향돌파해야만 셋업이 true가 되는데 청산이 된 다음날은 buysetup을 초기화했으니 다시 상향돌파해야만 신호가 나와야 하는 것 아닌지요.
- 1. 116419_캡처.PNG (0.06 MB)
답변 1
예스스탁 예스스탁 답변
2018-01-17 13:34:58
안녕하세요
예스스탁입니다.
이유는 2가지입니다.
1. buySetup이 당일 한번 true 셋팅되면 장끝까지 유지
2. atstop이 봉완성시 "조건" 만족하면 가격이 셋팅되고 다음봉에서 신호가 발생
그러므로 일간장 마지막봉에 buySetup == true 조건이 만족해서
buybase+PriceScale*틱수 가격이 셋팅되고
다음날 시초가가 해당 가격보다 크므로 신호가 발생하는 것입니다.
아래와 같이 진입이후에 buySetup을 false로 돌려
새로운 크로스가 발생해야 true가 되게 해주시고
atstop도 마지막봉에는 셋팅안되게 해주어야 합니다.
input: 단기이평값(14),장기이평값(40),틱수(1);
var: 단기이평(0),장기이평(0),buybase(0),buysetup(false);
단기이평 = ma(c,단기이평값);
장기이평 = ma(c,장기이평값);
if bdate != bdate[1] then
{
buybase = 0;
buysetup = false;
}
if crossup(단기이평,장기이평) then
{
buybase = H;
buySetup = true;
}
#완성봉에서 buySetup 조건만족하면 다음봉에서
#buybase+PriceScale*틱수 이상의 시세 발생하면 매수
if buySetup == true and NextBarSdate == sdate then
buy("b",atstop,buybase+PriceScale*틱수);
if MarketPosition == 1 Then
buySetup = false;
setstopendofday();
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
>
1. 기타
input: 단기이평값(14),장기이평값(40),틱수(1);
var: 단기이평(0),장기이평(0),buybase(0),buysetup(false);
단기이평 = ma(c,단기이평값);
장기이평 = ma(c,장기이평값);
if bdate != bdate[1] then{
buybase = 0;
buysetup = false;}
if crossup(단기이평,장기이평) then{
buybase = H;
buySetup = true;}
if buySetup == true then
buy("b",atstop,buybase+PriceScale*틱수);
setstopendofday();
위와 같은 코딩을 짜봤는데요. 저기서 신호가 왜 나왔는지 잘 모르겠습니다. 전에 답해주신 코딩 참조해서 다시봐도 잘 모르겠습니다. 단기이평이 장기이평을 상향돌파해야만 셋업이 true가 되는데 청산이 된 다음날은 buysetup을 초기화했으니 다시 상향돌파해야만 신호가 나와야 하는 것 아닌지요.