예스스탁
예스스탁 답변
2025-02-03 16:54:13
안녕하세요
예스스탁입니다.
1
input : period(20),multiplier(3),기간(60);
var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), direction(0),alpha(0),source(0),SuperTrend(C),U조건(False);
if CurrentBar > 1 Then
{
src = (H+L)/2;
alpha = 1 / period ;
source = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV = alpha * source + (1 - alpha) * ATrV[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand = src + multiplier * AtrV;
lowerBand = src - multiplier * AtrV;
prevLowerBand = lowerBand[1];
prevUpperBand = upperBand[1];
if lowerBand > prevLowerBand or close[1] < prevLowerBand Then
lowerBand = lowerBand;
Else
lowerBand = prevLowerBand;
if upperBand < prevUpperBand or close[1] > prevUpperBand Then
upperBand = upperBand;
Else
upperBand = prevUpperBand;
if C > UpperBand Then
direction = 1;
if C < LowerBand Then
direction = -1;
if direction == 1 Then
SuperTrend = lowerband;
Else
SuperTrend = upperband;
U조건 = CountIf(C<SuperTrend, 기간) == 기간;
if U조건[1] && CrossUp(C,SuperTrend) Then
Find(1);
}
2
input : 기간(60);
var : 선행1(0),선행2(0),구름하단(0),U조건(False);
선행1 = (highest(high,9)+lowest(low,9)+highest(high,26)+lowest(low,26))/4;
선행2 = (highest(high,52)+lowest(low,52))/2;
구름하단 = Min(선행1, 선행2);
U조건 = CountIf(C < 구름하단[25], 기간) == 기간;
if U조건[1] && CrossUp(C, 구름하단[25]) Then
Find(1);
3
var : cnt(0), A(0),MM(0),편차합(0),상단(0);
A = 0;
For cnt = 25 to 44
{
var1 = (DayClose(cnt) + DayHigh(cnt) + DayLow(cnt))/3;
A = A+ var1;
}
MM = A/20;
편차합 = 0;
For cnt = 25 to 44
{
var1 = (DayClose(cnt) + DayHigh(cnt) + DayLow(cnt))/3;
편차합 = 편차합+ pow(var1-MM, 2);
}
상단=MM+2*SQRT(편차합/20);
if CrossUp(Dayclose(), 상단) Then
Find(1);
즐거운 하루되세요
> saeroi 님이 쓴 글입니다.
> 제목 : 종목검색식 부탁드립니다.
> 다음 조건1, 조건2, 조건3 모두 만족한 종목이 검색될 수 있는 검색식 부탁드립니다.
== 조건 1 ==
S = supertrend(20,3);
U조건 = sum(C<S, 기간) == 기간;
U조건(1) && CrossUp(C,S)
기간; 60
== 조건 2 ==
선행1 = (highest(high,9)+lowest(low,9)+highest(high,26)+lowest(low,26))/4;
선행2 = (highest(high,52)+lowest(low,52))/2;
구름하단 = Min(선행1, 선행2);
U조건 = sum(C < 구름하단(25), 기간) == 기간;
U조건(1) && CrossUp(C, 구름하단(25))
기간; 60
== 조건 3 ==
M = MAcd(12,26);
U조건 = sum(M<0, 기간)==기간;
U조건(1) && CrossUp(M,0)
기간; 60
=================================================================================
그리고, 위 조건과 별도의 다음 신호를 검색식으로 부탁드립니다. bp 함수를 별도로 만들어야 한다면 함수 수식도 함께 부탁드립니다.
A = bp(25) +
bp(26)+bp(27)+bp(28)+bp(29)+bp(30)+
bp(31)+bp(32)+bp(33)+bp(34)+bp(35)+
bp(36)+bp(37)+bp(38)+bp(39)+bp(40)+
bp(41)+bp(42)+bp(43)+bp(44);
m = A/20;
편차합=
pow(bp(25)-m, 2)+
pow(bp(26)-m, 2)+
pow(bp(27)-m, 2)+
pow(bp(28)-m, 2)+
pow(bp(29)-m, 2)+
pow(bp(30)-m, 2)+
pow(bp(31)-m, 2)+
pow(bp(32)-m, 2)+
pow(bp(33)-m, 2)+
pow(bp(34)-m, 2)+
pow(bp(35)-m, 2)+
pow(bp(36)-m, 2)+
pow(bp(37)-m, 2)+
pow(bp(38)-m, 2)+
pow(bp(39)-m, 2)+
pow(bp(40)-m, 2)+
pow(bp(41)-m, 2)+
pow(bp(42)-m, 2)+
pow(bp(43)-m, 2)+
pow(bp(44)-m, 2);
상단=m+2*SQRT(편차합/20);
CrossUp(Dayclose(), 상단)
== bp 함수 ==
(nPreDayClose(기간) + nPreDayHigh(기간) + nPreDayLow(기간))/3