답변완료
부탁드립니다
수고하십니다
예스로 부탁드립니다
//@version=3
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Pretty Good Oscillator s c ript may be freely distributed under the MIT license.
study("Pretty Good Oscillator", shorttitle="PGO")
length = input(title="Length", type=integer, defval=14, minval=1)
upperLevel = input(title="Upper Level", type=float, step=0.1, defval=2.0)
lowerLevel = input(title="Lower Level", type=float, step=0.1, defval=-2.0)
maxLevel = input(title="Max Level", type=float, step=0.1, defval=4.0)
minLevel = input(title="Min Level", type=float, step=0.1, defval=-4.0)
highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=bool, defval=true)
src = input(title="Source", type=source, defval=close)
pgo = (src - sma(src, length)) / atr(length)
pgoColor = pgo > upperLevel ? #0ebb23 : pgo < lowerLevel ? #ff0000 : #f4b77d
plot(pgo, title="PGO", linewidth=2, color=pgoColor, transp=0)
transparent = color(white, 100)
maxLevelPlot = hline(maxLevel, title="Max Level", linestyle=dotted, color=transparent)
upperLevelPlot = hline(upperLevel, title="Upper Level", linestyle=dotted)
hline(0, title="Zero Level", linestyle=dotted)
lowerLevelPlot = hline(lowerLevel, title="Lower Level", linestyle=dotted)
minLevelPlot = hline(minLevel, title="Min Level", linestyle=dotted, color=transparent)
fill(upperLevelPlot, lowerLevelPlot, color=purple, transp=95)
upperFillColor = pgo > upperLevel and highlightBreakouts ? green : transparent
lowerFillColor = pgo < lowerLevel and highlightBreakouts ? red : transparent
fill(maxLevelPlot, upperLevelPlot, color=upperFillColor, transp=90)
fill(minLevelPlot, lowerLevelPlot, color=lowerFillColor, transp=90)
2025-10-01
119
글번호 194448
지표
답변완료
하이킨 아시 차트
안녕하세요.
봉캔들을 꽉 채우려고 하거든요
아래 수식 A,B에서 뭐가 잘 못 되었을까요?
A:
// === Heikin Ashi Candle ===
VAR : haO(0), haC(0), haH(0), haL(0);
// Heikin Ashi 종가
haC = (O + H + L + C) / 4;
// Heikin Ashi 시가 (재귀: 첫 봉 초기화)
IF CurrentBar == 1 THEN
haO = (O + C) / 2;
ELSE
haO = (haO[1] + haC[1]) / 2;
// HA 고가/저가
haH = MAXLIST(H, haO, haC);
haL = MINLIST(L, haO, haC);
// === 출력: Heikin Ashi 캔들 ===
PLOT1(haO); // Heikin Ashi Open
PLOT2(haH); // Heikin Ashi High
PLOT3(haL); // Heikin Ashi Low
PLOT4(haC); // Heikin Ashi Close
B:
// === 입력 ===
INPUT : ShowArrows(1), ShowBaseline(1);
// === Heikin Ashi 캔들 계산 ===
VAR : haO(0), haC(0), haH(0), haL(0);
// HA Close
haC = (O + H + L + C) / 4;
// HA Open (시드 + 재귀) : CurrentBar 없이 [1] 체크로 처리
IF haO[1] == 0 THEN
haO = (O + C) / 2;
ELSE
haO = (haO[1] + haC[1]) / 2;
// HA High / Low
haH = MAXLIST(H, haO, haC);
haL = MINLIST(L, haO, haC);
// === HA 캔들 출력 (메인 봉을 Heikin Ashi로 대체) ===
PLOT1(haO); // Open
PLOT2(haH); // High
PLOT3(haL); // Low
PLOT4(haC); // Close
// === 기준값 P (평라인) ===
VAR : P(0);
P = (haO + haC) / 2;
// === 상태/전환 판정 ===
VAR : isBull(False), isBear(False), upTrn(False), dnTrn(False);
isBull = haC >= haO;
isBear = haC < haO;
upTrn = isBull && !isBull[1]; // 양봉 시작
dnTrn = isBear && !isBear[1]; // 음봉 시작
// === 전환 시점의 P 값을 고정(계단 유지) ===
VAR : baseUp(0), baseDn(0);
// 최근 양봉 시작 시점의 P
IF upTrn THEN
baseUp = P;
ELSE
BEGIN
IF baseUp[1] == 0 THEN
baseUp = P; // 초기 시드
ELSE
baseUp = baseUp[1];
END;
// 최근 음봉 시작 시점의 P
IF dnTrn THEN
baseDn = P;
ELSE
BEGIN
IF baseDn[1] == 0 THEN
baseDn = P; // 초기 시드
ELSE
baseDn = baseDn[1];
END;
// === 최근 전환 방향 기억 (양봉=1, 음봉=0) ===
VAR : activeUp(0);
IF upTrn THEN
activeUp = 1;
ELSE
BEGIN
IF dnTrn THEN
activeUp = 0;
ELSE
activeUp = activeUp[1];
END;
// === 최종 기준선 선택 ===
VAR : BASELINE(0);
IF (baseUp[1] == 0) && (baseDn[1] == 0) THEN
BASELINE = P; // 전환 없을 때는 P로 시작
ELSE
BEGIN
IF activeUp == 1 THEN
BASELINE = baseUp;
ELSE
BASELINE = baseDn;
END;
// === 전환 화살표 시리즈 ===
VAR : sigUp(0), sigDn(0);
IF ShowArrows == 1 THEN
BEGIN
IF upTrn THEN
sigUp = C;
ELSE sigUp = 0;
IF dnTrn THEN
sigDn = C;
ELSE sigDn = 0;
END
ELSE
BEGIN
sigUp = 0;
sigDn = 0;
END;
// === 보조 출력 ===
// PLOT5: 기준선, PLOT6/7: 전환 화살표(▲/▼)
IF ShowBaseline == 1 THEN PLOT5(BASELINE);
PLOT6(sigUp);
PLOT7(sigDn);
2025-10-01
111
글번호 194446
지표
답변완료
94457 재문의
안녕하세요?
94457이 원하는대로 작동하지 않아서 재문의 합니다.
저의 의도를 다시 설명드립니다.
var1 = ma(C,200);
상방 = c > var1;
하방 = C < var1;
상방과 하방은 필터입니다.
상방일 때 매수신호가 발생하면 지표는 1,
하방일 때 매도신호가 발생하면 지표는 -1,
신호가 없으면 지표 = 0 입니다.
단지, 역추세에 해당하는 하방일 때 매수신호가 나오면 곧바로 지표가 1이 되지는 않고,
좀 까다로운 조건이 추가 되어야 지표가 1이 됩니다.(이 까다로운 조건이 충족되기 전에는
당근 지표값은 0) 까다로운 조건은 직전 2번의 매수신호가 나왔을 때보다 이번에 나온 매수신호가 좀 더 유리한 가격에(즉, C값이 직전 2번의 매수신호가 나올 때의 C 보다 저렴) 나와야 한다는 점입니다.
하방일 때의 매도신호에 대해서도 마찬가지 입니다.
이번에는 매수신호와 매도신호를 파라볼릭(종가)로 하겠습니다.
매수신호와 매도신호는 연속적으로 발생하지 않고, 최초로 매수에서 매도로 바뀔 때가 매도신호이고, 최초로 매도에서 매수로 바뀌는 봉에서만 매수신호가 발생하는 것으로 간주합니다.
그림에서 매수신호는 위 화살표, 매도신호는 아래화살표로 표시했습니다.
감사합니다.
2025-10-01
155
글번호 194438
지표
답변완료
수식문의 드립니다.
항상 감사드립니다.
제가 만든 해선수식에 매수신호가 여러개 생기네요,,,
그래서 첫번째 매수신호는 진입금지, 두번째 매수신호는 매수진입 시장가 1계약,
세번째 매수신호는 진입금지, 네번째 매수신호는 매수진입 시장가 2계약,
다섯번째 이후로는 매수진입 금지.
그리고 실제매수진입1 < 실제매수진입2
위 2가지 사항을 만족하는 수식 부탁드립니다. 감사합니다.
2025-10-01
115
글번호 194431
시스템