답변완료
문의 드립니다.
안녕하세요
항상 친절한 답변에 깊이 감사드립니다.
아래의 서식에서
손절 서식 추가 부탁드립니다.
추적 손절(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();
}
답변완료
종목검색 문의드립니다
수고하십니다
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)
키움수식인데 종목검색식 부탁드립니다
답변완료
부탁드립니다
수고하십니다
예스로 부탁드립니다
//@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)
답변완료
하이킨 아시 차트
안녕하세요.
봉캔들을 꽉 채우려고 하거든요
아래 수식 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);