답변완료
종목 검색식 부탁드립니다.
아래 지표를 종목검색식으로 바꾸고 싶은데
일봉상
if long = longCond and CondIni[1] == -1
Then Find(1);
이렇게 하니 제대로 안나오네요 종목검색식으로 부탁드리며
추가로
1. 일봉상 최근10봉 이내 short이 발생했을시 검색제외
or
2. 최근 5봉이내 long 신호가 발생했을시 검색제외
이 두개조건을 추가하고 싶습니다.
-----------------------------------------------------------------------------
input : source(close),per1(27),mult1(1.6),per2(55),mult2(2);
var : wper1(0),avrng1(0),smrng1(0),wper2(0),avrng2(0),smrng2(0);
var : smrng(0),filt(0);
var : upward(0),downward(0);
var : hband(0),lband(0);
var : longCond(False),shortcond(False),CondIni(0);
var : long(False),short(False),tx(0);
wper1 = per1 * 2 - 1;
avrng1 = ema(abs(source - source[1]), per1);
smrng1 = ema(avrng1, wper1) * mult1;
wper2 = per2 * 2 - 1;
avrng2 = ema(abs(source - source[1]), per2);
smrng2 = ema(avrng2, wper2) * mult2;
smrng = (smrng1 + smrng2) / 2;
// Range Filter
#rngfilt(source, smrng) =>
var1 = iff(IsNaN(filt[1])==true,0,filt[1]);
filt = source;
filt = iff(source > var1,
iff(source - smrng < var1 , var1 , source - smrng),
iff(source + smrng > var1 , var1 , source + smrng));
var2 = iff(IsNaN(upward[1])==true,0,upward[1]);
upward = 0.0;
upward = iff(filt > filt[1] , Var2 + 1 ,IFf(filt < filt[1] , 0 , Var2));
var3 = iff(IsNaN(downward[1])==true,0,downward[1]);
downward = 0.0;
downward = iff(filt < filt[1] , Var3 + 1 , iff(filt > filt[1] , 0 , Var3));
hband = filt + smrng;
lband = filt - smrng;
longCond = source > filt and source > source[1] and upward > 0 or source > filt and source < source[1] and upward > 0;
shortCond = source < filt and source < source[1] and downward > 0 or source < filt and source > source[1] and downward > 0;
CondIni = IFf(longCond , 1 , IFf(shortCond , -1 , CondIni[1]));
long = longCond and CondIni[1] == -1;
short = shortCond and CondIni[1] == 1;
if long Then
{
tx = Text_New(sDate,sTime,L,"Long");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Lime);
}
if short Then
{
tx = Text_New(sDate,sTime,H,"Short");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Red);
}
2024-08-29
799
글번호 182922
종목검색
답변완료
안녕하세요 수식 검토 부탁드립니다~
안녕하세요
아래의 조건으로 만들어 주신 수식이 일봉검색으로는 신호와 종목이 일치가 됩니다.
저는 30분봉이나 3분봉에 이 검색식을 활용하고 싶은데요,
이틀 동안 검색해보니 30분봉에서는 신호나온 종목과 종목검색에서 나온 종목이
서로 일치가 안되고 결과가 많이 다릅니다.
30분봉에서도 사용할 수 있게 수정을 부탁드립니다.
자꾸 번거롭게 해서 죄송합니다~
input : sto1(12),sto2(5),short(12),long(26),sig(9),R기간(14),N(13);
var : S(0),md(0),ms(0),R(0);
var : Bs_Sto(-1),cnt_sto(-1),Bs_macd(-1),Bs_Rsi(-1),조건(False);
S = StochasticsK(sto1,sto2);
Md = Macd(short,long);
Ms = Ema(Md,sig);
R = RSI(R기간);
if CrossUp(S,20) Then
{
Bs_Sto = 0;
cnt_Sto = 0;
}
Else
{
if Bs_Sto >= 0 Then
Bs_Sto = Bs_Sto+1;
if cnt_Sto >= 0 and S < 80 Then
cnt_Sto = cnt_Sto+1;
}
if CrossUp(Md,Ms) Then
Bs_Macd = 0;
Else
{
if Bs_Macd >= 0 Then
Bs_Macd = Bs_Macd+1;
}
if CrossUp(R,50) Then
Bs_Rsi = 0;
Else
{
if Bs_Rsi >= 0 Then
Bs_Rsi = Bs_Rsi+1;
}
조건 = Bs_Sto >= 0 and Bs_Macd >= 0 and Bs_Rsi >= 0 and Bs_Sto <= N and
Bs_Sto > Bs_Macd and Bs_Sto > Bs_Rsi;
if 조건 && 조건[1] == False && Bs_Sto==cnt_Sto Then
Find(1);
*********************************************************************
1. 현재봉기준 N(13)봉 이내에,
스토캐스틱슬로우(12,5) %K가 20선을 상향 돌파한 후에,
MACD(12,26,9)가 signal선을 상향 돌파하고,
RSI(14)가 50선을 상향 돌파하는 세 가지를
모두 만족하는 종목을 검색하고 싶습니다.
세 가지를 만족하기 전에
스토캐스틱 %K가 80선을 돌파하면 제외하는 조건입니다.
(스토캐스틱 신호 후, MACD와 RSI는 순서 상관없음)
키움 신호수식은 다음과 같습니다.
이것을 예스 종목검색식으로 바꾸고 싶습니다.
S = Stochasticsslow(sto1,sto2);
M = Macd(short,long);
Ms = eavg(M,sig);
R = RSI(R기간);
Bs_Sto = BarsSince(CrossUp(S,20));
cnt_Sto = CountSince(CrossUp(S,20), S<80);
Bs_Macd = BarsSince(CrossUp(M,Ms));
Bs_Rsi = BarsSince(CrossUp(R,50));
조건 = Bs_Sto > Bs_Macd && Bs_Sto > Bs_Rsi;
//Max(Bs_Sto, Bs_Macd, Bs_Rsi) == Bs_Sto
조건 && !조건(1) && (Bs_Sto+1)==cnt_Sto
수고에 감사드리며
늘 고맙습니다!!
2024-08-28
741
글번호 182916
종목검색
답변완료
안녕하세요 수식문의 부탁드립니다^^
안녕하세요
아래에 수식으로 당일분봉에서 한번이라도 조건이 충족된 종목을 검색하는 검색수식과
지표수식을 만들고 싶은데 수식변환 도움을 부탁드립니다
A1 = valuewhen(1, crossup((highest(high,기간3)+lowest(low,기간3))/2, (highest(high,기간4)+lowest(low,기간4))/2), C);
A2 = valuewhen(1, crossup((highest(high,기간1)+lowest(low,기간1))/2, (highest(high,기간2)+lowest(low,기간2))/2), C);
A3 = valuewhen(1,crossdown(c, sar(af,maxaf)), h);
A4 = valuewhen(1,crossdown(c, sar(af2,maxaf2)), h);
B = (A1 <=C) and (A2 <=C) and (A3 <=C) and (A4 <=C);
W = (A1 >=L) and (A2 >=L) and (A3 >=L) and (A4 >=L);
B and W
2024-08-28
774
글번호 182915
종목검색