답변완료
문의 드립니다.
안녕하세요
항상 친절한 답변에 깊이 감사드립니다.
아래의 서식에서
손절 서식 추가 부탁드립니다.
추적 손절(input): 손절 2% (수익시에는 최대수익 대비 2% 하락할때 손절)
Input : shortPeriod(12), longPeriod(26), Period(6);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
2025-10-01
107
글번호 194451
지표
답변완료
종목검색 문의드립니다
수고하십니다
a=macd(12,26);
b=eavg(a,9);
d=valuewhen(1,crossup(a,0),c);
e=valuewhen(1,crossup(a,b),c);
crossup(c,d)&&crossup(c,e)
키움수식인데 종목검색식 부탁드립니다
2025-10-01
103
글번호 194449
종목검색
답변완료
부탁드립니다
수고하십니다
예스로 부탁드립니다
//@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
108
글번호 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
108
글번호 194446
지표
답변완료
94457 재문의
안녕하세요?
94457이 원하는대로 작동하지 않아서 재문의 합니다.
저의 의도를 다시 설명드립니다.
var1 = ma(C,200);
상방 = c > var1;
하방 = C < var1;
상방과 하방은 필터입니다.
상방일 때 매수신호가 발생하면 지표는 1,
하방일 때 매도신호가 발생하면 지표는 -1,
신호가 없으면 지표 = 0 입니다.
단지, 역추세에 해당하는 하방일 때 매수신호가 나오면 곧바로 지표가 1이 되지는 않고,
좀 까다로운 조건이 추가 되어야 지표가 1이 됩니다.(이 까다로운 조건이 충족되기 전에는
당근 지표값은 0) 까다로운 조건은 직전 2번의 매수신호가 나왔을 때보다 이번에 나온 매수신호가 좀 더 유리한 가격에(즉, C값이 직전 2번의 매수신호가 나올 때의 C 보다 저렴) 나와야 한다는 점입니다.
하방일 때의 매도신호에 대해서도 마찬가지 입니다.
이번에는 매수신호와 매도신호를 파라볼릭(종가)로 하겠습니다.
매수신호와 매도신호는 연속적으로 발생하지 않고, 최초로 매수에서 매도로 바뀔 때가 매도신호이고, 최초로 매도에서 매수로 바뀌는 봉에서만 매수신호가 발생하는 것으로 간주합니다.
그림에서 매수신호는 위 화살표, 매도신호는 아래화살표로 표시했습니다.
감사합니다.
2025-10-01
154
글번호 194438
지표