답변완료
지표문의
1.지표문의
INPUT: Lookback(500), // 최근 분석할 봉 수
RowSize(200), // 가격 구간 개수 (최대 500)
BarWidth(2);
VAR: priceMin(9999999),
priceMax(0),
priceStep(0),
i(0), j(0),
lower(0), upper(0),
level(0),
maxVol(0),
rowCount(0);
ARRAY: volArr[500](0) ; // 최대 500 구간 거래량 저장
// 1) 입력값 제한
rowCount = RowSize;
IF rowCount > 500 THEN rowCount = 500;
// 2) 최소/최대 가격 찾기
priceMin = 9999999;
priceMax = 0;
FOR i = 0 TO Lookback-1 BEGIN
IF HIGH[i] > priceMax THEN priceMax = HIGH[i];
IF LOW[i] < priceMin THEN priceMin = LOW[i];
END;
// 3) 구간 폭 계산
priceStep = (priceMax - priceMin) / rowCount;
IF priceStep <= 0 THEN priceStep = 1;
// 4) 구간별 거래량 초기화
FOR j = 0 TO rowCount-1 BEGIN
volArr[j] = 0;
END;
// 5) 각 봉의 거래량을 해당 가격구간에 누적
FOR i = 0 TO Lookback-1 BEGIN
FOR j = 0 TO rowCount-1 BEGIN
lower = priceMin + priceStep * j;
upper = priceMin + priceStep * (j + 1);
IF (HIGH[i] >= lower) AND (LOW[i] <= upper) THEN
volArr[j] = volArr[j] + VOLUME[i];
END;
END;
// 6) POC(최대 거래량) 찾기
maxVol = 0;
FOR j = 0 TO rowCount-1 BEGIN
IF volArr[j] > maxVol THEN maxVol = volArr[j];
END;
// 7) 히스토그램 출력 (현재봉만)
FOR j = 0 TO rowCount-1 BEGIN
level = priceMin + priceStep * j + priceStep / 2;
IF CURRENTBAR = 0 THEN
PLOT(j, volArr[j], "V"+NUMTOSTR(j,0));
END;
// 8) POC 출력
FOR j = 0 TO rowCount-1 BEGIN
IF volArr[j] = maxVol THEN BEGIN
level = priceMin + priceStep * j + priceStep / 2;
IF CURRENTBAR = 0 THEN
PLOT(rowCount+1, level, "POC");
END;
END;
CURRENTBAR 를 값을 대입할수있는 변수로 수정 좀해주세요
검증이 안됨
2.그럼 수고하세요
2025-09-15
149
글번호 194014
지표
답변완료
수식문의입니다
input : R기간(14),과매도율(25),과매수율(75));
var : A(0),BD(False),BU(False),FU(False),FD(False);
A=RSI(R기간);
BD=CrossDown(A,과매도율);
BU=CrossUp(A,과매도율;
FU=CrossUp(A,과매수율);
FD=CrossDown(A,과매수율);
수식1)
RSI선이 기준선(과매도율)선을 하향이탈하거나, 상향돌파할때의 종가를 표시하는 라인
수식2)
RSI선이 기준선(과매수율)선을 상향돌파하거나, 하향이탈할때의 종가를 표시하는 라인
if BD == true Then
BBD = C;
상기처럼 한개씩은 수식이 가능한데 BD이거나 BU이거나 할때의 수식은 잘 안되네요.
부탁드립니다
2025-09-15
115
글번호 193994
지표
답변완료
부탁합니다.
아래 지표로 시스템식을 부탁합니다.
기본사항
: 투자금액을 100% 로 잡았을때 30%를 3회까지 분할매수
( 예: 1천만원일때 1회 3백만원씩 신호나올때마다 3회까지 매수 )
매수
1. 밴드의 중심선이 상승일때 and
2. 저점이 밴드 하단밖에 있을때 양봉이면 매수
청산
1. 시가가 밴드안에서 시작해서 양봉으로 상단밴드밖에서 종가일때 or
2. 익절 1% ~ (변수로 부탁합니다) or
3. 종가기준 3% 손절 ( 변수로 부탁합니다.) or
4. 매수후 중심선이 하락으로 바뀌면 본절청산
input : HalfLength(60);
input : PriceType(5);#1: Close, 2:Open, 3:High, 4:Low, 5:Median, 6:Typical, 7:Weighted, 8:Average
input : AtrPeriod(60);
input : AtrMultiplier(4);
input : TMAangle(2);
input : crossUpInput(false);
input : crossDownInput(false);
input : comingBackInput(false);
input : onArrowDownInput(false);
input : onArrowUpInput(false);
input : colorDOWN(red);
input : colorUP(green);
input : colorBands(Gray);
input : cautionInput(true);
Array : TX1[100](0),TX2[100](0),TX3[100](0);
var : cnt(0),price(0),colorBuffer(Nan);
var : asum(0),ATR(0),i(0),j(0);
var : sum(0),sumw(0),k(0),tmac(0),tmau(0),tmad(0);
var : pastTmac(nan),pastTmau(nan),pastTmad(Nan);
var : tmau_temp(nan),tmac_temp(Nan),tmad_temp(nan);
var : point(0),reboundD(0),reboundU(0),caution(0),last(False);
For cnt = 0 to 99
{
Text_Delete(TX1[cnt]);
Text_Delete(TX2[cnt]);
Text_Delete(TX3[cnt]);
}
if PriceType == 1 Then
Price = close;
Else if PriceType == 2 Then
Price = open;
Else if PriceType == 3 Then
Price = high;
Else if PriceType == 4 Then
Price = low;
Else if PriceType == 5 Then
Price = (high + low) / 2;
Else if PriceType == 6 Then
Price = (high + low + close) / 3;
Else if PriceType == 7 Then
Price = (high + low + close + close) / 4;
Else
Price = (high + low + close + open)/ 4;
//MAIN
for i = HalfLength downto 0
{
//ATR
asum = 0.0;
for j = 0 to AtrPeriod - 1
{
asum = asum + max(high[i + j + 10], close[i + j + 11]) - min(low[i + j + 10], close[i + j + 11]);
}
atr = asum/AtrPeriod;
//BANDS
sum = (HalfLength + 1) * Price[i];
sumw = (HalfLength + 1);
k = HalfLength;
for j = 1 to HalfLength
{
sum = sum + k * Price[i + j];
sumw = sumw + k;
if (j <= i) Then
{
sum = sum + k * Price[i - j];
sumw = sumw + k;
}
k = k -1;
}
tmac = sum/sumw;
tmau = tmac+AtrMultiplier*atr;
tmad = tmac-AtrMultiplier*atr;
//CHANGE TREND COLOR
if pastTmac != 0.0 Then
{
if tmac > pastTmac Then
colorBuffer = colorUP;
if tmac < pastTmac then
colorBuffer = colorDOWN;
}
//SIGNALS
reboundD = 0.0;
reboundU = 0.0;
caution = 0.0;
if pastTmac != 0.0 Then
{
if (high[i + 1] > pastTmau and close[i + 1] > open[i + 1] and close[i] < open[i]) Then
{
reboundD = high[i] + AtrMultiplier * atr / 2;
if (tmac - pastTmac > TMAangle * point) Then
{
caution = reboundD + 10 * point;
}
}
if (low[i + 1] < pastTmad and close[i + 1] < open[i + 1] and close[i] > open[i]) Then
{
reboundU = low[i] - AtrMultiplier * atr / 2;
if (pastTmac - tmac > TMAangle * point) then
{
caution = reboundU - 10 * point;
}
}
}
//LAST REAL
if i == HalfLength Then
{
last = true;
tmau_temp = tmau;
tmac_temp = tmac;
tmad_temp = tmad;
}
//DRAW HANDICAPPED BANDS
if i < HalfLength Then
{
TX1[i] = Text_New(NextBarSdate[i],NextBarStime[i],Tmau,"-");
Text_SetColor(TX1[i],colorBands);
Text_SetStyle(TX1[i],2,2);
TX2[i] = Text_New(NextBarSdate[i],NextBarStime[i],Tmac,"-");
Text_SetColor(TX2[i],colorBuffer);
Text_SetStyle(TX2[i],2,2);
TX3[i] = Text_New(NextBarSdate[i],NextBarStime[i],Tmad,"-");
Text_SetColor(TX3[i],colorBands);
Text_SetStyle(TX3[i],2,2);
}
}
//DRAW REAL BANDS
plot1(iff(last , tmau_temp , tmau), "TMA Up", colorBands);
plot2(iff(last , tmac_temp , tmac), "TMA Mid", colorBuffer);
plot3(iff(last , tmad_temp , tmad), "TMA Down", colorBands);
FixPlotShift(1,-HalfLength);
FixPlotShift(2,-HalfLength);
FixPlotShift(3,-HalfLength);
2025-09-14
170
글번호 193992
시스템
답변완료
수식변환 수정 요청
보완사항이 있어서 다시 글을 올립니다. 전화까지 주셨는데 이렇게 다시 글을 쓰게 되었네요.ㅠ
지난 질문에서 전일고가 라인 돌파와 함께, 현재가가 전일 변동폭(50%+금일시가) 라인 돌파, 현재가가 볼린저(60,2) 상단 돌파 하는 검색식을 만들고자 합니다. 단 현재가가 전일 고가 캔들의 저가 라인 위에 있어야만 한다고 했었습니다.
전일고가 라인 돌파와 함께라는 전제를 보완(조건 추가)하고 싶습니다.
주가가 전일 고가 캔들의 저가 라인 위에 있으면서(전제 조건)
->(1) 전일 고가 라인 돌파와 함께 변동폭 라인 돌파 또는 볼린저(602.2) 돌파 또는
->(2) 전일 고가 라인 아래에 있을 때(저가라인과 고가라인 중간에 위치) 변동폭 돌파 또는 볼린저(60.2) 돌파 또는
->(3) 전일 고가 라인 위에 있을 때 변동폭 돌파 또는 볼린저(60.2) 돌파
로 수정 보완 부탁 드립니다.
(1), (3)은 같은 유형의 조건이지만 분리해주시면 고맙겠습니다. 테스트를 통해 조건을 조정 해보고 싶습니다. 주석 처리 꼭 부탁드립니다.
기타 거래대금 10억 이상, 거래량 20만주 이상, RSI(11) 50 이상 또는 돌파, 전일 종가 대비 시가 등락율(갭상승) 3% 이하, 위 모든 조건들이 당일 시가 대비 당일 종가 등락율 7% 범위 안에 만족 시 검색 되도록 하는 것은 동일 합니다.
부탁드립니다.
=================================================================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식변환 요청
>
안녕하세요
예스스탁입니다.
var : DHlow(0),DHlow1(0);
if sDate != sDate[1] then
DHlow1 = DHlow[1];
if h == DayHigh Then
DHlow = l;
var1 = dayopen + (DayHigh(1)-DayLow(1))*0.5;
var2 = BollBandUp(60,2);
var3 = (highest(H,26)+lowest(L,26))/2;
var4 = RSI(11);
Condition1 = CrossUp(C,DayHigh(1));
Condition2 = DHlow > 0 and C > DHlow;
Condition3 = CrossUp(c,var1);
Condition4 = CrossUp(C,var2);
Condition5 = CrossUp(C,var3);
Condition6 = money >= 1000000000;
Condition7 = Volume >= 200000;
Condition8 = var4 >= 55 or CrossUp(var4,55);
Condition9 = DayOpen <= DayClose(1)*1.03;
Condition10 = c <= DayOpen*1.05 and C >= DayOpen*0.95;
if Condition1 == true and
Condition2 == true and
Condition3 == true and
Condition4 == true and
Condition5 == true and
Condition6 == true and
Condition7 == true and
Condition8 == true and
Condition9 == true and
Condition10 == true Then
Find(1);
즐거운 하루되세요
=================================================================================
> saeroi 님이 쓴 글입니다.
> 제목 : 수식변환 요청
> 현재가 전일 고가 발생 시의 저가(즉, 전일 고가 캔들의 저가)라인과 전일 고가라인 사이에서 전일고가 라인 돌파와 함께, 현재가가 전일 변동폭(50%+금일시가) 라인 돌파, 현재가가 볼린저(60,2) 상단 돌파 하는 검색식을 만들고자 합니다. 단 현재가가 전일 고가 캔들의 저가 라인 위에 있어야만 합니다.
전일고가 라인 돌파
가=highestSince(1, date!=date(1), H);
Valuewhen(1, date!=date(1), 가(1));
현재가가 전일고가캔들이 저가 라인 위 위치
가=highestSince(1, date!=date(1), H);
나=Valuewhen(1, 가==H, L); Valuewhen(1, date!=date(1), 나(1));
변동폭 라인 돌파
가=dayhigh(1)-daylow(1);
나=dayopen()+A*0.5;
볼린저 (60,2) 상단 돌파
현재가가 일목균형표 기준선 돌파(3분 기준)
거래대금 10억 이상(3분 기준)
거래량 20만주 이상(3분 기준)
RSI(11) 55 이상 또는 돌파
전일 종가 대비 시가 등락율(갭상승) 3% 이하 상승만 허용
위 모든 조건들이 당일 시가 대비 당일 종가 등락율 5% 범위 안에 만족 시 검색
3분봉 단타용으로 검색 활용하고자 하니 이를 감안하여 수식 만들어 주시면 고맙겠습니다.
2025-09-14
175
글번호 193991
검색