예스스탁
예스스탁 답변
2025-05-12 13:05:37
안녕하세요
예스스탁입니다.
예스랭귀지에서 같다라는 표현은 == 입니다.
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;
즐거운 하루되세요
> 윤호석 님이 쓴 글입니다.
> 제목 : 보완해주세요
> 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);
// === 기준 계산 ===
기준거래량 = average(volume, 20);
중심선 = average(Close, 20);
제곱합 = average(Close * Close, 20);
분산 = 제곱합 - 중심선 * 중심선;
표준편차 = SquareRoot(분산);
BB상단 = 중심선 + 표준편차 * 2;
ma5 = average(Close, 5);
ma20 = average(Close, 20);
// === 매수 신호 ===
if (신호발생 = false) and
(volume > 기준거래량 * 기준배율) and
(Close > BB상단) and
(Close > Open) and
((Close - Open) > (High - Low) * 0.6) and
(ma5 > ma20) then
begin
// 기존 선 삭제
if ID_진입선 <> 0 then TL_Delete(ID_진입선);
if ID_익절선 <> 0 then TL_Delete(ID_익절선);
if ID_손절선 <> 0 then TL_Delete(ID_손절선);
진입가 = Close;
익절선 = 진입가 * 익절비율;
손절선 = 진입가 * 손절비율;
// 진입선
ID_진입선 = TL_New(date, time, 진입가, date, time + 1, 진입가);
TL_SetColor(ID_진입선, 진입선색);
TL_SetSize(ID_진입선, 2);
// 익절선
ID_익절선 = TL_New(date, time, 익절선, date, time + 1, 익절선);
TL_SetColor(ID_익절선, 익절선색);
TL_SetSize(ID_익절선, 2);
// 손절선
ID_손절선 = TL_New(date, time, 손절선, date, time + 1, 손절선);
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;
적용이안됩니다 이유가뭘까요 예스트레이더에 적용되게 부탁드립니다
검증은되는데 차트상에 아무것도 표시가 안되요 ㅠㅠ
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 보완해주세요
> 안녕하세요
예스스탁입니다.
예스랭귀지에서 같다라는 표현은 == 입니다.
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;
즐거운 하루되세요
> 윤호석 님이 쓴 글입니다.
> 제목 : 보완해주세요
> 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);
// === 기준 계산 ===
기준거래량 = average(volume, 20);
중심선 = average(Close, 20);
제곱합 = average(Close * Close, 20);
분산 = 제곱합 - 중심선 * 중심선;
표준편차 = SquareRoot(분산);
BB상단 = 중심선 + 표준편차 * 2;
ma5 = average(Close, 5);
ma20 = average(Close, 20);
// === 매수 신호 ===
if (신호발생 = false) and
(volume > 기준거래량 * 기준배율) and
(Close > BB상단) and
(Close > Open) and
((Close - Open) > (High - Low) * 0.6) and
(ma5 > ma20) then
begin
// 기존 선 삭제
if ID_진입선 <> 0 then TL_Delete(ID_진입선);
if ID_익절선 <> 0 then TL_Delete(ID_익절선);
if ID_손절선 <> 0 then TL_Delete(ID_손절선);
진입가 = Close;
익절선 = 진입가 * 익절비율;
손절선 = 진입가 * 손절비율;
// 진입선
ID_진입선 = TL_New(date, time, 진입가, date, time + 1, 진입가);
TL_SetColor(ID_진입선, 진입선색);
TL_SetSize(ID_진입선, 2);
// 익절선
ID_익절선 = TL_New(date, time, 익절선, date, time + 1, 익절선);
TL_SetColor(ID_익절선, 익절선색);
TL_SetSize(ID_익절선, 2);
// 손절선
ID_손절선 = TL_New(date, time, 손절선, date, time + 1, 손절선);
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;
적용이안됩니다 이유가뭘까요 예스트레이더에 적용되게 부탁드립니다