커뮤니티

문의 입니다.

프로필 이미지
배고픈i
2008-09-08 15:34:51
960
글번호 16956
답변완료
var : adx_L1(14),adx_L2(7),adx_sig(6); var : atr_Period1(26), atr_count_Up(3.8),atr_count_Up_s(2),atr_count_Down(1.5),per_count(0.78); var : KM_Length(9), KM_FiltrPct(99); var : adx_osc(0),adx_sigval(0),adx_tmp(0); var : hi(0), lo(0); var : gap1(0),sumGap1(0); var : condi_hi(0), condi_lo(0), condi_hi_up(0), condi_lo_up(0), bass_val(0); var : entry_val(0), atr_Val(0); Var : bw_value(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap1 = (Open)-(Close[1]); // 일간갭 sumGap1 = sumGap1+gap1; // 일간갭 누적 } entry_val = EntryPrice - sumGap1; atr_Val = ATR(atr_Period1); bw_value = trix(32); adx_tmp = ADX(33); // <<<<<<<<<<<<<< 문제 부분 adx_osc = adx_tmp - ma(adx_tmp, adx_L2); MessageLog("adx = %f",adx_tmp); # 매수/매도청산 If MarketPosition == 0 && CrossUp(bw_value,0) Then { Buy(); } # 매도/매수청산 If MarketPosition == 0 && CrossDown(bw_value,0) Then { Sell(); } if( MarketPosition <> 0 ) then { bass_val = barssinceentry()+1; } else { bass_val = 1; } if MarketPosition == 1 Then { if c-sumGap1 > entry_val Then { if( adx_osc > 0 ) Then { //condi_hi_up = highest(h-sumGap1,bass_val) - atr_Val*atr_count_up; if( crossdown( h-sumGap1, highest(h-sumGap1,bass_val) - atr_Val*atr_count_up ) ) then { exitLong("매수ATR"); } } Else { //condi_hi_up = highest(h-sumGap1,bass_val) - atr_Val*atr_count_up_s; if( crossdown( h-sumGap1, highest(h-sumGap1,bass_val) - atr_Val*atr_count_up_s ) ) then { exitLong("매수ATR_S"); } } } } if MarketPosition == -1 then { if c-sumGap1 < entry_val then { if( adx_osc > 0 ) Then { //condi_lo_up = lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up; if ( crossup( l-sumGap1, lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up ) ) then { exitShort("매도ATR"); } } Else { //condi_lo_up = lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up_s; if ( crossup( l-sumGap1, lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up_s ) ) then { exitShort("매도ATR_S"); } } } } 버그인거 같습니다. 문제는 exitShort("매도ATR");와 exitLong("매수ATR"); 동작이 되지않습니다. 코딩중 { // <<<<<<<<<<<<<< 문제 부분 }이부분을 보시면 MessageLog("adx = %f",adx_tmp); 를 제가 찍어&#48419;는데 ADX(33)값을 불러오지 못합니다. : 버그라면 수정 부탁드리구요 해당 현상이 왜생기는지 설명부탁드립니다. : 그리고 exitShort("매도ATR");와 exitLong("매수ATR")가 ADX(33) 시그널에따라서 : 분기되도록 코딩 부탁드립니다. (5분봉 기준입니다.)
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2008-09-08 17:07:20

안녕하세요 예스스탁입니다. 불편을 드려 죄송합니다. 현재 원인을 파악중에 있습니다. 최대한 빨리 해결해 답변드리도록 하겠습니다. 즐거운 하루되세요 > 배고픈i 님이 쓴 글입니다. > 제목 : 문의 입니다. > var : adx_L1(14),adx_L2(7),adx_sig(6); var : atr_Period1(26), atr_count_Up(3.8),atr_count_Up_s(2),atr_count_Down(1.5),per_count(0.78); var : KM_Length(9), KM_FiltrPct(99); var : adx_osc(0),adx_sigval(0),adx_tmp(0); var : hi(0), lo(0); var : gap1(0),sumGap1(0); var : condi_hi(0), condi_lo(0), condi_hi_up(0), condi_lo_up(0), bass_val(0); var : entry_val(0), atr_Val(0); Var : bw_value(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap1 = (Open)-(Close[1]); // 일간갭 sumGap1 = sumGap1+gap1; // 일간갭 누적 } entry_val = EntryPrice - sumGap1; atr_Val = ATR(atr_Period1); bw_value = trix(32); adx_tmp = ADX(33); // <<<<<<<<<<<<<< 문제 부분 adx_osc = adx_tmp - ma(adx_tmp, adx_L2); MessageLog("adx = %f",adx_tmp); # 매수/매도청산 If MarketPosition == 0 && CrossUp(bw_value,0) Then { Buy(); } # 매도/매수청산 If MarketPosition == 0 && CrossDown(bw_value,0) Then { Sell(); } if( MarketPosition <> 0 ) then { bass_val = barssinceentry()+1; } else { bass_val = 1; } if MarketPosition == 1 Then { if c-sumGap1 > entry_val Then { if( adx_osc > 0 ) Then { //condi_hi_up = highest(h-sumGap1,bass_val) - atr_Val*atr_count_up; if( crossdown( h-sumGap1, highest(h-sumGap1,bass_val) - atr_Val*atr_count_up ) ) then { exitLong("매수ATR"); } } Else { //condi_hi_up = highest(h-sumGap1,bass_val) - atr_Val*atr_count_up_s; if( crossdown( h-sumGap1, highest(h-sumGap1,bass_val) - atr_Val*atr_count_up_s ) ) then { exitLong("매수ATR_S"); } } } } if MarketPosition == -1 then { if c-sumGap1 < entry_val then { if( adx_osc > 0 ) Then { //condi_lo_up = lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up; if ( crossup( l-sumGap1, lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up ) ) then { exitShort("매도ATR"); } } Else { //condi_lo_up = lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up_s; if ( crossup( l-sumGap1, lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up_s ) ) then { exitShort("매도ATR_S"); } } } } 버그인거 같습니다. 문제는 exitShort("매도ATR");와 exitLong("매수ATR"); 동작이 되지않습니다. 코딩중 { // <<<<<<<<<<<<<< 문제 부분 }이부분을 보시면 MessageLog("adx = %f",adx_tmp); 를 제가 찍어&#48419;는데 ADX(33)값을 불러오지 못합니다. : 버그라면 수정 부탁드리구요 해당 현상이 왜생기는지 설명부탁드립니다. : 그리고 exitShort("매도ATR");와 exitLong("매수ATR")가 ADX(33) 시그널에따라서 : 분기되도록 코딩 부탁드립니다. (5분봉 기준입니다.)
프로필 이미지

배고픈i

2008-09-08 18:03:51

감사합니다. 지금이것때문에 계속 기다리고있으니 잘부탁 드리겠습니다. 참고로 barssinceentry() << 이 함수를 잘봐주세요. barssinceentry()이거 쓰면 다른 사용자함수랑 충돌 잘나더라구요. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 입니다. > 안녕하세요 예스스탁입니다. 불편을 드려 죄송합니다. 현재 원인을 파악중에 있습니다. 최대한 빨리 해결해 답변드리도록 하겠습니다. 즐거운 하루되세요 > 배고픈i 님이 쓴 글입니다. > 제목 : 문의 입니다. > var : adx_L1(14),adx_L2(7),adx_sig(6); var : atr_Period1(26), atr_count_Up(3.8),atr_count_Up_s(2),atr_count_Down(1.5),per_count(0.78); var : KM_Length(9), KM_FiltrPct(99); var : adx_osc(0),adx_sigval(0),adx_tmp(0); var : hi(0), lo(0); var : gap1(0),sumGap1(0); var : condi_hi(0), condi_lo(0), condi_hi_up(0), condi_lo_up(0), bass_val(0); var : entry_val(0), atr_Val(0); Var : bw_value(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap1 = (Open)-(Close[1]); // 일간갭 sumGap1 = sumGap1+gap1; // 일간갭 누적 } entry_val = EntryPrice - sumGap1; atr_Val = ATR(atr_Period1); bw_value = trix(32); adx_tmp = ADX(33); // <<<<<<<<<<<<<< 문제 부분 adx_osc = adx_tmp - ma(adx_tmp, adx_L2); MessageLog("adx = %f",adx_tmp); # 매수/매도청산 If MarketPosition == 0 && CrossUp(bw_value,0) Then { Buy(); } # 매도/매수청산 If MarketPosition == 0 && CrossDown(bw_value,0) Then { Sell(); } if( MarketPosition <> 0 ) then { bass_val = barssinceentry()+1; } else { bass_val = 1; } if MarketPosition == 1 Then { if c-sumGap1 > entry_val Then { if( adx_osc > 0 ) Then { //condi_hi_up = highest(h-sumGap1,bass_val) - atr_Val*atr_count_up; if( crossdown( h-sumGap1, highest(h-sumGap1,bass_val) - atr_Val*atr_count_up ) ) then { exitLong("매수ATR"); } } Else { //condi_hi_up = highest(h-sumGap1,bass_val) - atr_Val*atr_count_up_s; if( crossdown( h-sumGap1, highest(h-sumGap1,bass_val) - atr_Val*atr_count_up_s ) ) then { exitLong("매수ATR_S"); } } } } if MarketPosition == -1 then { if c-sumGap1 < entry_val then { if( adx_osc > 0 ) Then { //condi_lo_up = lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up; if ( crossup( l-sumGap1, lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up ) ) then { exitShort("매도ATR"); } } Else { //condi_lo_up = lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up_s; if ( crossup( l-sumGap1, lowest (l-sumGap1,bass_val) + atr_Val*atr_count_up_s ) ) then { exitShort("매도ATR_S"); } } } } 버그인거 같습니다. 문제는 exitShort("매도ATR");와 exitLong("매수ATR"); 동작이 되지않습니다. 코딩중 { // <<<<<<<<<<<<<< 문제 부분 }이부분을 보시면 MessageLog("adx = %f",adx_tmp); 를 제가 찍어&#48419;는데 ADX(33)값을 불러오지 못합니다. : 버그라면 수정 부탁드리구요 해당 현상이 왜생기는지 설명부탁드립니다. : 그리고 exitShort("매도ATR");와 exitLong("매수ATR")가 ADX(33) 시그널에따라서 : 분기되도록 코딩 부탁드립니다. (5분봉 기준입니다.)