수식 코드 중에 아래의 수식이 들어가면 검색이 되고 이 수식을 빼면 검색이 되지 않습니다. 혹시 제가 작성하는 수식 방식에 문제가 있나요???
if ( V > nMav * 0.08 ) Then
{
Find(0);
}
3분봉 기준으로 당일 고가를 돌파하는 종목을 검색하는 수식입니다. 당일 분봉에서만 검색하고 싶고요. 제가 작성하는 방식이 잘못된건가요??
///////////////////////////////////////////////////////////////////
//// 종목검색 수식....
input : TargetDate(20221103);
var : nCnt(0), nSum(0), nMav(0), nMav1(0), nMav2(0), nMav3(0);
var : dwCloseRate(0), dwLowRate(0), dwLowCloseRate(0), dwAdjustedRate(0), dwRate(0);
var : bIsCond1(False), bIsCond2(False), bIsCond3(False), bIsCond4(False), bIsCond5(False);
var : nCondTime1(0), nCondTime2(0);
//////////////////////////////////////////////////////////////////////////////////
////// 전역변수 설정.
//////
////// var1 ==> 당일 캔들 인덱스....
////// var2 ==> 과거 (10/20/40일) 최소 일평균거래량
////// var3 ==> 당일 종가 상 고가 캔들 Index
////// var4 ==>
////// Var5 ==>
////// var6 ==>
////// var7 ==>
////// var8 ==> 5EMA의 20EMA 이탈 캔들 Index
////// var9 ==> 5EMA의 60EMA 이탈 캔들 Index
////// var10 ==> 과거 일평균거래량 대비 당일 거래량 비율
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
///// DataCompress = (0:틱, 1:초, 2:분, 3:일, 4:주, 5:월......)
if ( date != date[1] && date == TargetDate) Then
{
nSum = 0;
For nCnt = 1 to 40
{
nSum = nSum + DayVolume(nCnt);
if nCnt == 10 Then nMav1 = INT(nSum / 10);
Else if nCnt == 20 Then nMav2 = INT(nSum / 20);
Else if nCnt == 40 Then nMav3 = INT(nSum / 40);
}
//////////////////////////////////////////////////////////////////////////
//// 3분봉 기준으로으로 캔들 평균거래량
nMav = Min(nMav1, nMav2, nMav3);
var3 = 1;
var4 = H;
Var5 = 0;
Var6 = 0;
bIsCond1 = False;
bIsCond2 = False;
bIsCond3 = False;
bIsCond4 = False;
bIsCond5 = False;
}
else if ( date == TargetDate && nMav > 80000 ) Then
{
dwRate = (C - C[1])/C[1]*100;
dwCloseRate = (C - DayClose(1))/DayClose(1)*100;
dwLowRate = (DayLow(0) - DayClose(1))/DayClose(1)*100;
dwLowCloseRate = (DayClose(0) - DayLow(0))/DayLow(0)*100;
////////////////////////////////////////////////////
///// 이 코드가 들어가면 검색이 되고 이 코드를 빼면 검색이 되지 않아요.
///// 전혀 의미없는 코드 같은데.......
if ( V > nMav * 0.08 ) Then
{
Find(0);
}
//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////// 장시작 후 하락하다가 고점 돌파 후 상승전환 한 경우.....
if ( C > H[Var3] && sTime >= 090900 && sTime <= 113000 && bIsCond1 == False ) Then
{
if ( dwCloseRate > 0 && dwLowRate < 0 && dwLowCloseRate > 1.5 ) Then
{
nCondTime1 = sTime;
bIsCond1 = True;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
////// 장시작 직후(10시이전) 거래량을 수반하면서 캔들 등락률이 1% 이상.....
if ( C > H[Var3] && sTime >= 090900 && sTime <= 100100 && bIsCond2 == False ) Then
{
if ( dwRate > 0.8 && dwCloseRate > 0 && (V > DayVolume(1)*0.1 || V > nMav/125*5) ) Then
{
nCondTime2 = sTime;
bIsCond2 = True;
}
}
if ( bIsCond1 == TRUE ) Then
Find(nCondTime1);
if ( bIsCond2 == TRUE ) Then
Find(nCondTime2);
if ( H >= H[Var3] ) Then
{
Var3 = 1;
}
Else
{
Var3 = var3+1;
}
}
답변 2
예스스탁
예스스탁 답변
2022-11-04 09:27:34
> 태공 님이 쓴 글입니다.
> 제목 : 제 수식작성 구성 방식이 잘못되었나요
> 수식 코드 중에 아래의 수식이 들어가면 검색이 되고 이 수식을 빼면 검색이 되지 않습니다. 혹시 제가 작성하는 수식 방식에 문제가 있나요???
if ( V > nMav * 0.08 ) Then
{
Find(0);
}
3분봉 기준으로 당일 고가를 돌파하는 종목을 검색하는 수식입니다. 당일 분봉에서만 검색하고 싶고요. 제가 작성하는 방식이 잘못된건가요??
///////////////////////////////////////////////////////////////////
//// 종목검색 수식....
input : TargetDate(20221103);
var : nCnt(0), nSum(0), nMav(0), nMav1(0), nMav2(0), nMav3(0);
var : dwCloseRate(0), dwLowRate(0), dwLowCloseRate(0), dwAdjustedRate(0), dwRate(0);
var : bIsCond1(False), bIsCond2(False), bIsCond3(False), bIsCond4(False), bIsCond5(False);
var : nCondTime1(0), nCondTime2(0);
//////////////////////////////////////////////////////////////////////////////////
////// 전역변수 설정.
//////
////// var1 ==> 당일 캔들 인덱스....
////// var2 ==> 과거 (10/20/40일) 최소 일평균거래량
////// var3 ==> 당일 종가 상 고가 캔들 Index
////// var4 ==>
////// Var5 ==>
////// var6 ==>
////// var7 ==>
////// var8 ==> 5EMA의 20EMA 이탈 캔들 Index
////// var9 ==> 5EMA의 60EMA 이탈 캔들 Index
////// var10 ==> 과거 일평균거래량 대비 당일 거래량 비율
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
///// DataCompress = (0:틱, 1:초, 2:분, 3:일, 4:주, 5:월......)
if ( date != date[1] && date == TargetDate) Then
{
nSum = 0;
For nCnt = 1 to 40
{
nSum = nSum + DayVolume(nCnt);
if nCnt == 10 Then nMav1 = INT(nSum / 10);
Else if nCnt == 20 Then nMav2 = INT(nSum / 20);
Else if nCnt == 40 Then nMav3 = INT(nSum / 40);
}
//////////////////////////////////////////////////////////////////////////
//// 3분봉 기준으로으로 캔들 평균거래량
nMav = Min(nMav1, nMav2, nMav3);
var3 = 1;
var4 = H;
Var5 = 0;
Var6 = 0;
bIsCond1 = False;
bIsCond2 = False;
bIsCond3 = False;
bIsCond4 = False;
bIsCond5 = False;
}
else if ( date == TargetDate && nMav > 80000 ) Then
{
dwRate = (C - C[1])/C[1]*100;
dwCloseRate = (C - DayClose(1))/DayClose(1)*100;
dwLowRate = (DayLow(0) - DayClose(1))/DayClose(1)*100;
dwLowCloseRate = (DayClose(0) - DayLow(0))/DayLow(0)*100;
////////////////////////////////////////////////////
///// 이 코드가 들어가면 검색이 되고 이 코드를 빼면 검색이 되지 않아요.
///// 전혀 의미없는 코드 같은데.......
if ( V > nMav * 0.08 ) Then
{
Find(0);
}
//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////// 장시작 후 하락하다가 고점 돌파 후 상승전환 한 경우.....
if ( C > H[Var3] && sTime >= 090900 && sTime <= 113000 && bIsCond1 == False ) Then
{
if ( dwCloseRate > 0 && dwLowRate < 0 && dwLowCloseRate > 1.5 ) Then
{
nCondTime1 = sTime;
bIsCond1 = True;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
////// 장시작 직후(10시이전) 거래량을 수반하면서 캔들 등락률이 1% 이상.....
if ( C > H[Var3] && sTime >= 090900 && sTime <= 100100 && bIsCond2 == False ) Then
{
if ( dwRate > 0.8 && dwCloseRate > 0 && (V > DayVolume(1)*0.1 || V > nMav/125*5) ) Then
{
nCondTime2 = sTime;
bIsCond2 = True;
}
}
if ( bIsCond1 == TRUE ) Then
Find(nCondTime1);
if ( bIsCond2 == TRUE ) Then
Find(nCondTime2);
if ( H >= H[Var3] ) Then
{
Var3 = 1;
}
Else
{
Var3 = var3+1;
}
}