답변완료
부탁드립니다^^
아래 수식은 캔들 강조 수식을 작성한 것인데 차트에 표시가 되지를 않습니다.
골든, 데드가 난 자리의 캔들에 표시되게 수정 부탁드립니다.
Input : Period(5),Period1(20);
var : WMa1(0), WMa2(0);
wma1 = Period;
wma2 = Period1;
Condition1 = CrossUp(WMa1,wma2);
if Condition1 == True Then
PlotPaintBar(O,C,"강조식",Yellow);
Condition1 = CrossDown(WMa1,wma2);
if Condition1 == True Then
PlotPaintBar(O,C,"강조식",Cyan);
답변완료
ReReReRe분봉 누적거래량과 20일 평균누적거래량
작성해 주신 수식을 돌려보니 당일 누적 거래량이 나오네요.
제가 원하는 수식은 당일 누적 거래량과 20일 평균 누적거래량입니다. 5분봉을 기준으로 예를 들자면 9:10분에 경과된 두개봉의 누적거래량(plot1)과 두개봉 누적거래량 20일 평균(plot2)을 비교하고자 함입니다.
if Bdate != Bdate[1] Then
var1 = 0;
var1 = var1+vol;
plot1(var1,"누적거래량");
간단하게 당일 누적거래량이 산출되는데 20일 평균의 누적거래량을 표현하고 싶은겁니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 분봉 누적거래량과 20일 평균누적거래량 지표
>
안녕하세요
예스스탁입니다.
1
차트에 20일치의 데이터가 최소 있어야 합니다.
모든 변수나 데이터는 이전봉참조는 1024전봉까지만 가능하여
단순 루프로 과거로 가면서 동시간 20일 누적거래량은 계산이 불가능하여
매봉 값을 그시점의 당일누적거래량을 배열변수에 저장하고 계산하게 작성해 드립니다.
루프가 많이 수행되어 적용시 시간이 많이 걸릴 수 있습니다.
2
아래는 당일 봉수는 최대 1천개로 잡고 과거 30일간까지 저장하게 작성했습니다.
사용하시는 분봉주기, 선물 주/야/복합, 주식 KRX/NXT/통합 차트에 따라
당일발생하는 봉수가 다르므로 환경에 맞게 조절하셔야 합니다.
3
input : N(20);
var : x(0),y(0),b(0),i(0),sum(0),mav(0);
Array : VV[1000,30](0); //당일 천번째봉까지 저장하고 이값을 이전 30일치를 보관
if Bdate != Bdate[1] Then
{
//새로운 영업일이 시작하면
//배열값을 다음방으로 이동
b = 0;
For x = 29 DownTo 1 //이전일수
{
For y = 999 DownTo 1 //당일봉수
{
VV[y,x] = VV[y,x-1];
}
}
}
Else
b = b+1;
VV[b,0] = DayVolume;
if vv[b,N] > 0 Then
{
sum = 0;
For i = 1 to N
{
sum = sum + vv[b,i];
}
mav = sum/N;
Plot1(vv[b,0]);
}
plot1(DayVolume);
즐거운 하루되세요
> eel 님이 쓴 글입니다.
> 제목 : Re : Re : 분봉 누적거래량과 20일 평균누적거래량 지표
> 전일시간대의 누적거래량이 아닌 20일 평균누적거래량 구하는 로직 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 분봉 누적거래량과 20일 평균누적거래량 지표
>
안녕하세요
예스스탁입니다.
var : f1(0),f2(0),e2(0);
var : StartBar(0),EndBar(0),i(0),PredayV(0);
if Bdate != Bdate[1] Then
{
f1 = Index;
f2 = f1[1];
e2 = Index[1];
}
if f2 > 0 Then
{
StartBar = Index-e2;
EndBar = Index-f2;
for i = StartBar to EndBar
{
if stime[i] <= stime and sdate[i] < sdate then
{
PredayV = DayVolume[i];
i = EndBar+1; //for문을 중지
}
}
}
plot1(DayVolume,"당일 누적거래량");
plot2(PredayV,"전일동시간대 누적거래량");
즐거운 하루되세요
> eel 님이 쓴 글입니다.
> 제목 : 분봉 누적거래량과 20일 평균누적거래량 지표
> 5분봉에서 개장 후 현재 바까지의 누적 거래량과 동일 시각 기준 최근 20일 평균 누적 거래량을 나타내는 지표식 부탁드립니다.
답변완료
지표문의
1.아래지표 수정 좀해주세요
검증이안됨
INPUT: len(300), // 분석할 봉 수
priceStep(100), // 가격 구간 크기
topN(3); // 상위 HVN/LVN 개수
VAR: i(0), j(0),
priceMin(0), priceMax(0),
level(0), maxVol(0), minVol(999999999),
pocLevel(0), pocPrice(0);
ARRAY: vap , // 가격대별 거래량
hvnLevel , hvnVol ,
lvnLevel , lvnVol ;
{ 1. 최소, 최대 가격 찾기 }
priceMin = Low;
priceMax = High;
FOR i = 1 TO len BEGIN
IF Low[i] < priceMin THEN priceMin = Low[i];
IF High[i] > priceMax THEN priceMax = High[i];
END;
{ 2. vap 배열 초기화 }
FOR j = 0 TO 999 BEGIN
vap[j] = 0;
END;
{ 3. 거래량 누적 }
FOR i = 0 TO len-1 BEGIN
level = INTPART( (Close[i] - priceMin) / priceStep );
IF level >= 0 AND level < 1000 THEN
vap[level] = vap[level] + Volume[i];
END;
{ 4. Top N HVN 찾기 }
FOR j = 1 TO topN BEGIN
maxVol = 0;
pocLevel = 0;
FOR i = 0 TO 999 BEGIN
IF vap[i] > maxVol THEN BEGIN
maxVol = vap[i];
pocLevel = i;
END;
END;
hvnLevel[j] = pocLevel;
hvnVol[j] = maxVol;
vap[pocLevel] = 0;
END;
{ 5. Top N LVN 찾기 }
FOR j = 1 TO topN BEGIN
minVol = 999999999;
pocLevel = 0;
FOR i = 0 TO 999 BEGIN
IF vap[i] > 0 AND vap[i] < minVol THEN BEGIN
minVol = vap[i];
pocLevel = i;
END;
END;
lvnLevel[j] = pocLevel;
lvnVol[j] = minVol;
vap[pocLevel] = 999999999;
END;
{ 6. HVN / LVN 출력 ? Plot 이름 고정 }
IF topN >= 1 THEN BEGIN
pocPrice = priceMin + hvnLevel[1] * priceStep;
PLOT(pocPrice, "HVN1", RED);
pocPrice = priceMin + lvnLevel[1] * priceStep;
PLOT(pocPrice, "LVN1", BLUE);
END;
IF topN >= 2 THEN BEGIN
pocPrice = priceMin + hvnLevel[2] * priceStep;
PLOT(pocPrice, "HVN2", RED);
pocPrice = priceMin + lvnLevel[2] * priceStep;
PLOT(pocPrice, "LVN2", BLUE);
END;
IF topN >= 3 THEN BEGIN
pocPrice = priceMin + hvnLevel[3] * priceStep;
PLOT(pocPrice, "HVN3", RED);
pocPrice = priceMin + lvnLevel[3] * priceStep;
PLOT(pocPrice, "LVN3", BLUE);
END;
그럼 수고하세요