답변완료
전환추세 표시 간격
Input : 전환(0.1);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL(0),TL1(0),TX1(0),TX2(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Red);
if max(저[1,1],저[2,1],저[3,1]) <= min(저[1,1],저[2,1],저[3,1])+PriceScale*1
and 저[1,1]<= highest(H,1000)-0.8 and 저[1,1]<= lowest(L,500)+0.1 Then
{
tx2 = Text_New(저[1,3],저[1,4],저[1,1]-0.15,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Black);
Text_SetSize(tx2,13);
}
}
Else If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Green);
if max(고[1,1],고[2,1],고[3,1]) <= min(고[1,1],고[2,1],고[3,1])+PriceScale*1
and 고[1,1] >= lowest(L,600)+0.8 and 고[1,1] >= highest(H,300)-0.1 Then
{
tx2 = Text_New(고[1,3],고[1,4],고[1,1]+0.15,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Black);
Text_SetSize(tx2,13);
}
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
쓰리바닥의(동그라미) 첫 표시가 되면, 다음 동그라미 표시는 무시하다가 50봉 이후에 조건 만족시 표시. (쓰리바닥 표시 간격 최소 50봉, 쓰리봉은 그대로 모두 표시) 감사합니다
2024-12-30
571
글번호 186731
지표
답변완료
수식문의 드립니다.
문의 드립니다.
-아래에서
1.조건을 1번 2번으로 나누어서 진입횟수가 5회까지는 1번조건 금액1만매수
2. 5~10회 까지는 2번조건 금액3만매수
3. 10회 이후는 3번조건으로 금액 5만매수 20회 이내에 매수후
토탈 평균가 a% 이상일때 일괄 시장가 매도수식도 가능할까요?
자꾸 질문드려서 죄송합니다. 잘 부탁드려요.
==올 한해 마무리 잘 하시고 새해 복 마니마니 받으세요! ~~^^==
-아래
Input : Period1(50),Period2(9),period(30),n(30),진입횟수1(5),진입횟수2(10), 진입회수3(20),금액1(0000),금액2(0000),금액3(0000), percent(2);
var :af(0.02), maxAF(0.2),f(0), CCIv(0),CCIsig(0),a(0),b(0),DMIv(0),dp(0),dm(0),DParity(0),DParity1(0),count(0);
CCIv = CCI(Period1);
CCIsig = ema(CCIv,Period2);
var1 = SAR(af,maxAF);
a=ma(c,120);
b=ma(c,5);
f=highest(h,2);
value1 = MACD(12,26);
value2 = ema(value1, 9);
DMIv = DMI(Period);
DP = DIPlus(Period);
DM = DIMinus(Period);
DParity = Disparity(120);
DParity1 = Disparity(240);
if CrossDown(CCIv,100) and CountIf(CCIV > 100,n) >= 1 Then
{
count = 0;
}
1번조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 1.진입횟수*금액1 Then
Buy("b");
}
2번 조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 2.진입횟수*금액2 Then
Buy("b");
}
3번 조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 3.진입횟수*금액3 Then
Buy("b");
}
if MarketPosition == 1 Then
{
ExitLong("Bp",AtLimit,AvgEntryPrice*(1+percent/100));
}
2024-12-30
633
글번호 186720
시스템
답변완료
질문 드리겠습니다
안녕하세요
몇 가지 질문 좀 부탁드리겠습니다
1. 아래 수식은 현재 만족봉과 이전 만족봉 사이의 평균 구하는 식인데요
var: cnt(0), sum1(0), sumi(0);
if h>l*1.05 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1= Index;
Var2=Index[1];
sum1=0;
sumi=0;
For cnt = 1 to (var1-Var2)-1
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
Plot11(value1);
}
For cnt = 1 to (var1-Var2)-1
이 부분에 따르면 현재 만족봉과 이전만족봉은 포함시키지 않고 평균을 구하는건데
둘 사이에 봉이 없을 경우 0이 출력 되는거죠?.
그리고 만약에 현재 만족봉까지 포함 시키려면
for cnt=0 to (var1-var2)-1 이라고 작성하면 되고
현재봉과 이전봉 모두 포함하려면
for cnt=0 to (var1-var2) 이렇게 작성하는게 맞는지 궁금합니다
2.
수식을 부탁드립니다
아래 평균구하는 수식에서 변형을 하려고 하는데요
(현재봉 , 이전봉 둘다 포함시키려고 for 문에는 0 to (var1-var2) 로 해놨습니다, 틀렸으면 고쳐주세요)
만일 조건만족봉 사이 간격이 5봉 미만이라면 평균을 일단 구하지 않고,
새로운 만족봉이 나왔을때 간격이 5봉 이상이라면 모든 봉들을 이용해서 평균을 구하고 싶습니다
예를들어 a2,a1,a0 가 조건 만족했을때의 봉이라고 했을때
a2 와 a1 사이가 3봉이고 (조건만족봉 a2,a1 까지 포함해서 3개) 새로운 조건봉 a0 가 나타났을때
a1와 a0 사이가 10개봉 (a1,a0 까지 포함해서 10개)이라면 3봉+10봉 해서 13개봉의 평균을 구하고 싶습니다
var: cnt(0), sum1(0), sumi(0);
if h>l*1.05 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1= Index;
Var2=Index[1];
sum1=0;
sumi=0;
For cnt = 0 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
Plot11(value1);
}
3.
아래식을 작성해봤는데 맞는건지 한번 확인해주심 감사하겠습니다
원하는 조건:
만약
aa[2] > aa[1] and aa[1] < aa[0]
이라는 조건이 만족하면,
aa[3]가 시작한 시점부터 aa[0]까지의 모든 봉의 평균을 구하고 싶습니다
var: cnt(0), sum1(0), sumi(0),period(0),sumsqrt(0),stdv(0),stand(0);
var : sum2(0),sumi2(0),avg2(0);
array: aa[50](0);
if h>l*1.06 Then
{
TL_NEW(sDatE,sTimE,h*1.15,sDatE,sTimE,99999);
var1= Index;
Var2=Index[1];
sum1=0;
sumi=0;
For cnt = 0 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
value12= ma(h,20);
For cnt = 50 DownTo 1
{
aa[cnt]=aa[cnt-1];
}
aa[0]= value1;
if aa[2] > aa[1] and aa[1] < aa[0] Then
{
Var3=Index;
Var4=Index[3];
sum2=0;
sumi2=0;
For cnt = 0 to (var3-Var4)
{
sum2=sum2+h[cnt];
sumi2=sumi2+1;
}
avg2=sum2/sumi2;
}
Plot16(avg2,"aa",Orange,Def,1);
}
2024-12-30
543
글번호 186719
지표
답변완료
예스랭귀지 수식 요청합니다
<1번>
R=RSI(14)>50
S=(highest(high,52)+lowest(low,52));
D=valuewhen(1,R,S);
Z=crossup(C,D) && dayhigh()>daylow();
cnt=countsince(date!=date(1),Z);
cnt==1 && cnt(1)==0
<2번>
A=(highest(high,20)-lowest(low,20));
B=highest(high,20)-(A*0.2);
C>B
<3번>
S=EAVG(C,5);
L=EAVG(C,20);
X=crossup(S,L)
<4번>
X = BBandsup(20,2);
Y = MA(C,20,단순);
IF CROSSUP(C, X),D,0) &&
CROSSUP(C, Y)
<5번>
R=RSI(14);
E=EAVG(RSI(14),9);
D=Crossup(R, E);
sum(if(D, 1, 0), 10) >= 1
안녕하세요
위의 키움수식들을 예스랭귀지 변환 가능할까요?
감사합니다
2024-12-29
600
글번호 186717
종목검색
답변완료
TradingView 지표인데 예스트레이더 형식으로 바꾸어 주시면...
Box가 나오니 어렵네요. 변환이 가능허면 부탁드릴께요. 미리 감사드립니다.
//@version=6
// ★★★ Range Detector [LuxAlgo] ★★★
indicator('Range Detector [LuxAlgo]', '@Range Detector - LuxAlgo', overlay = true, max_boxes_count = 500, max_lines_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input.int(20, 'Minimum Range Length', minval = 2)
mult = input.float(1., 'Range Width', minval = 0, step = 0.1)
atrLen = input.int(500, 'ATR Length', minval = 1)
//Style
upCss = input(color.fuchsia, 'Broken Upward', group = 'Style')
dnCss = input(color.teal, 'Broken Downward', group = 'Style')
unbrokenCss = input(#5079f3, 'Unbroken', group = 'Style')
//-----------------------------------------------------------------------------}
//Detect and highlight ranges
//-----------------------------------------------------------------------------{
//Ranges drawings
var box bx = na
var line lvl = na
//Extensions
var float max = na
var float min = na
var os = 0
color detect_css = na
n = bar_index
atr = ta.atr(atrLen) * mult
ma = ta.sma(close, length)
count = 0
for i = 0 to length - 1 by 1
count := count + (math.abs(close[i] - ma) > atr ? 1 : 0)
count
if count == 0 and count[1] != count
//Test for overlap and change coordinates
if n[length] <= bx.get_right()
max := math.max(ma + atr, bx.get_top())
min := math.min(ma - atr, bx.get_bottom())
//Box new coordinates
bx.set_top(max)
bx.set_rightbottom(n, min)
bx.set_bgcolor(color.new(unbrokenCss, 80))
//Line new coordinates
avg = math.avg(max, min)
lvl.set_y1(avg)
lvl.set_xy2(n, avg)
lvl.set_color(unbrokenCss)
else
max := ma + atr
min := ma - atr
//Set new box and level
bx := box.new(n[length], ma + atr, n, ma - atr, na, bgcolor = color.new(unbrokenCss, 80))
lvl := line.new(n[length], ma, n, ma, color = unbrokenCss, style = line.style_dotted)
detect_css := color.new(color.gray, 50)
os := 0
os
else if count == 0
bx.set_right(n)
lvl.set_x2(n)
//Set color
if close > bx.get_top()
bx.set_bgcolor(color.new(upCss, 80))
lvl.set_color(upCss)
os := 1
os
else if close < bx.get_bottom()
bx.set_bgcolor(color.new(dnCss, 80))
lvl.set_color(dnCss)
os := -1
os
//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
//Range detection bgcolor
bgcolor(detect_css)
plot(max, 'Range Top', max != max[1] ? na : os == 0 ? unbrokenCss : os == 1 ? upCss : dnCss, 2)
plot(min, 'Range Bottom', min != min[1] ? na : os == 0 ? unbrokenCss : os == 1 ? upCss : dnCss, 2)
//-----------------------------------------------------------------------------}
// my add
longCond = ta.crossover(close, max)
shortCond = ta.crossunder(close, min)
//plot(longCond ? max : na, color=color.yellow, style = plot.style_cross, linewidth = 4, title="Cross+")
//plot(shortCond ? min : na, color=color.yellow, style = plot.style_cross, linewidth = 4, title="Cross-")
plotchar(longCond ? max : na, 'cross Up ↑', '△', location.absolute, #ffff00, size = size.small)
plotchar(shortCond ? min : na, 'cross Dn ↓', '▽', location.absolute, #ffff00, size = size.small)
2024-12-29
680
글번호 186716
지표