예스스탁
예스스탁 답변
2025-05-14 14:49:01
안녕하세요
예스스탁입니다.
진입선,손절선,익절선이 매도까지 이어지지 않아 해당 부분만 추가해 드립니다.
이전문의와 같이 적용하시는 종목/주기에 따라 기준배율, 익절비율, 손절비율등
조정해서 보시면 되는 지표입니다.
input: 기준배율(1.8), 익절비율(1.01), 손절비율(0.995),
진입선색(cyan), 익절선색(green), 손절선색(red);
var:
기준거래량(0), 중심선(0), 제곱합(0), 분산(0), 표준편차(0), BB상단(0),
ma5(0), ma20(0),
진입가(0), 익절선(0), 손절선(0),
신호발생(false), 매도출력(false),
ID_진입선(0), ID_익절선(0), ID_손절선(0), ID_txt(0);
// === 기준 계산 ===
기준거래량 = ma(volume, 20);
중심선 = ma(Close, 20);
제곱합 = ma(Close * Close, 20);
분산 = 제곱합 - 중심선 * 중심선;
표준편차 = SquareRoot(분산);
BB상단 = 중심선 + 표준편차 * 2;
ma5 = ma(Close, 5);
ma20 = ma(Close, 20);
// === 매수 신호 ===
if (신호발생 == false) and
(volume > 기준거래량 * 기준배율) and
(Close > BB상단) and
(Close > Open) and
((Close - Open) > (High - Low) * 0.6) and
(ma5 > ma20) then
begin
// 기존 선 삭제
TL_Delete(ID_진입선);
TL_Delete(ID_익절선);
TL_Delete(ID_손절선);
진입가 = Close;
익절선 = 진입가 * 익절비율;
손절선 = 진입가 * 손절비율;
// 진입선
ID_진입선 = TL_New(sdate, stime, 진입가,NextBarSdate,NextBarStime,진입가);
TL_SetColor(ID_진입선, 진입선색);
TL_SetSize(ID_진입선, 2);
// 익절선
ID_익절선 = TL_New(sdate, stime, 익절선, NextBarSdate, NextBarStime, 익절선);
TL_SetColor(ID_익절선, 익절선색);
TL_SetSize(ID_익절선, 2);
// 손절선
ID_손절선 = TL_New(sdate, stime, 손절선, NextBarSdate, NextBarStime, 손절선);
TL_SetColor(ID_손절선, 손절선색);
TL_SetSize(ID_손절선, 2);
신호발생 = true;
매도출력 = false;
end;
// === 매도 신호 ===
if (신호발생 == true) and (매도출력 == false) then
begin
if (Close >= 익절선) or (Close <= 손절선) then
begin
ID_txt = Text_New(date, time, High, "SELL");
Text_SetColor(ID_txt, red);
매도출력 = true;
end;
TL_SetEnd(ID_진입선,sDate,sTime,진입가);
TL_SetEnd(ID_익절선,sDate,sTime,익절선);
TL_SetEnd(ID_손절선,sDate,sTime,손절선);
end;
// === 상태 초기화 ===
if (매도출력 == true) and
((Close > 익절선) or (Close < 손절선)) then
begin
신호발생 = false;
매도출력 = false;
end;
즐거운 하루되세요
> 윤호석 님이 쓴 글입니다.
> 제목 : 부탁드립니다
>
input: 기준배율(1.8), 익절비율(1.01), 손절비율(0.995),
진입선색(cyan), 익절선색(green), 손절선색(red);
var:
기준거래량(0), 중심선(0), 제곱합(0), 분산(0), 표준편차(0), BB상단(0),
ma5(0), ma20(0),
진입가(0), 익절선(0), 손절선(0),
신호발생(false), 매도출력(false),
ID_진입선(0), ID_익절선(0), ID_손절선(0), ID_txt(0);
// === 기준 계산 ===
기준거래량 = ma(volume, 20);
중심선 = ma(Close, 20);
제곱합 = ma(Close * Close, 20);
분산 = 제곱합 - 중심선 * 중심선;
표준편차 = SquareRoot(분산);
BB상단 = 중심선 + 표준편차 * 2;
ma5 = ma(Close, 5);
ma20 = ma(Close, 20);
// === 매수 신호 ===
if (신호발생 == false) and
(volume > 기준거래량 * 기준배율) and
(Close > BB상단) and
(Close > Open) and
((Close - Open) > (High - Low) * 0.6) and
(ma5 > ma20) then
begin
TL_New(sDate,sTime,0,sDate,sTime,99999999);
// 기존 선 삭제
TL_Delete(ID_진입선);
TL_Delete(ID_익절선);
TL_Delete(ID_손절선);
진입가 = Close;
익절선 = 진입가 * 익절비율;
손절선 = 진입가 * 손절비율;
// 진입선
ID_진입선 = TL_New(sdate, stime, 진입가,NextBarSdate,NextBarStime,진입가);
TL_SetColor(ID_진입선, 진입선색);
TL_SetSize(ID_진입선, 2);
// 익절선
ID_익절선 = TL_New(sdate, stime, 익절선, NextBarSdate, NextBarStime, 익절선);
TL_SetColor(ID_익절선, 익절선색);
TL_SetSize(ID_익절선, 2);
// 손절선
ID_손절선 = TL_New(sdate, stime, 손절선, NextBarSdate, NextBarStime, 손절선);
TL_SetColor(ID_손절선, 손절선색);
TL_SetSize(ID_손절선, 2);
신호발생 = true;
매도출력 = false;
end;
// === 매도 신호 ===
if (신호발생 == true) and (매도출력 == false) then
begin
if (Close >= 익절선) or (Close <= 손절선) then
begin
ID_txt = Text_New(date, time, High, "SELL");
Text_SetColor(ID_txt, red);
매도출력 = true;
end;
end;
// === 상태 초기화 ===
if (매도출력 == true) and
((Close > 진입가 * 1.2) or (Close < 진입가 * 0.9)) then
begin
신호발생 = false;
매도출력 = false;
end;
차트에 구현이 되질않아요 해외선물에 구현되게끔 부탁드립니다