커뮤니티
조건검색문의드립니다
아래검색식 오류수정좀 부탁드립니다
input : MA5_Period(25);
input : MA20_Period(100);
input : Vol_Period(20);
input : Vol_Mult(1.5);
var : cnt(0), sum(0);
var : MA5(0), MA20(0);
var : MA5_Prev(0);
var : Vol_Avg(0);
var : Vol_Sum(0);
var : BodySize(0), CandleSize(0);
var : PriceChange(0);
var : UpMove(0), DownMove(0);
var : AvgUp(0), AvgDown(0);
var : RS(0), RSI_Val(0);
var : Deviation(0), TradingValue(0);
Array : MA5_Array[100](0);
Array : Close_Array[100](0);
Array : Vol_Array[100](0);
if sDate != sDate[1] and DayOfWeek(sdate) <= DayOfWeek(sdate[1]) Then
{
for cnt = 99 downto 1
{
Close_Array[cnt] = Close_Array[cnt-1];
MA5_Array[cnt] = MA5_Array[cnt-1];
}
Close_Array[0] = C[1];
}
Close_Array[0] = C;
sum = 0;
for cnt = 0 to MA5_Period-1
{
sum = sum + C[cnt];
}
MA5 = sum / MA5_Period;
MA5_Prev = Average(C, MA5_Period)[1];
sum = 0;
for cnt = 0 to MA20_Period-1
{
sum = sum + C[cnt];
}
MA20 = sum / MA20_Period;
Vol_Sum = 0;
for cnt = 0 to Vol_Period
{
Vol_Sum = Vol_Sum + V[cnt];
}
Vol_Avg = Vol_Sum / (Vol_Period + 1);
AvgUp = 0;
AvgDown = 0;
for cnt = 0 to 13
{
if C[cnt] > C[cnt+1] Then
{
UpMove = C[cnt] - C[cnt+1];
DownMove = 0;
} else if C[cnt] < C[cnt+1] Then
{
UpMove = 0;
DownMove = C[cnt+1] - C[cnt];
} else
{
UpMove = 0;
DownMove = 0;
}
AvgUp = AvgUp + UpMove;
AvgDown = AvgDown + DownMove;
}
AvgUp = AvgUp / 14;
AvgDown = AvgDown / 14;
if AvgDown > 0 Then
{
RS = AvgUp / AvgDown;
RSI_Val = 100 - (100 / (1 + RS));
} else
{
RSI_Val = 100;
}
Cond_Above_MA5 := C > MA5;
Cond_Yesterday_Below := C[1] <= MA5_Prev;
Cond_Bull_Candle := C > O;
BodySize := AbsValue(C - O);
CandleSize := H - L;
if CandleSize > 0 Then
{
Cond_Strong_Bull := BodySize > CandleSize * 0.6;
} else
{
Cond_Strong_Bull := False;
}
Cond_Volume_Basic := V > Vol_Avg * Vol_Mult;
Cond_Volume_Max3 := (V > V[1]) and (V > V[2]);
Cond_RSI := (RSI_Val > 50) and (RSI_Val < 70);
Cond_Price_Rising := C > C[1];
if C[1] > 0 Then
{
PriceChange := ((C - C[1]) / C[1]) * 100;
Cond_Not_Overheated := PriceChange < 3;
} else
{
Cond_Not_Overheated := False;
}
MA5_Rising := MA5 > Average(C, MA5_Period)[5];
Cond_MA5_Above_MA20 := MA5 > MA20;
if MA5 > 0 Then
{
Deviation := ((C - MA5) / MA5) * 100;
Cond_Proper_Deviation := (Deviation >= -1) and (Deviation <= 3);
} else
{
Cond_Proper_Deviation := False;
}
TradingValue := C * V;
Cond_Liquidity := TradingValue >= 1000000000;
Cond_Essential := Cond_Above_MA5 and
Cond_Yesterday_Below and
Cond_Bull_Candle and
Cond_Volume_Basic;
Cond_Enhanced := Cond_Strong_Bull and
Cond_Volume_Max3 and
Cond_RSI and
Cond_Price_Rising;
Cond_Optimized := Cond_Not_Overheated and
MA5_Rising and
Cond_MA5_Above_MA20 and
Cond_Proper_Deviation and
Cond_Liquidity;
if Cond_Essential and Cond_Enhanced and Cond_Optimized Then
Find(1);
- 1. 오류다수.png (0.07 MB)
답변 1
예스스탁 예스스탁 답변
2025-12-01 10:54:33