커뮤니티
문의 입니다.
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); 를 제가 찍어봣는데 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); 를 제가 찍어봣는데 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); 를 제가 찍어봣는데 ADX(33)값을 불러오지 못합니다.
: 버그라면 수정 부탁드리구요 해당 현상이 왜생기는지 설명부탁드립니다.
: 그리고 exitShort("매도ATR");와 exitLong("매수ATR")가 ADX(33) 시그널에따라서
: 분기되도록 코딩 부탁드립니다. (5분봉 기준입니다.)