커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7567
글번호 230811
답변완료
부탁드립니다
우리트레이더에 기본제공되어지고있는 보조지표중에 자동추세선에 관한 수식의뢰입니다..
본 보조지표에 고점/저점에 점이 빨강/파랑점으로 체킹이 되어 표시되고 있는데
빨강/파랑점으로 표시되는 시점부터 다시 갱신되는 점까지 추세선과 별도로 연속적으로 수평으로 다른색상의 선으로 추가표시되도록하면 좋겠습니다..
적용할수 있도록 지표 부탁드립니다..
2013-04-24
220
글번호 62470
답변완료
수식작성
항상 빠른 답변과 성실한 답변에 감사드립니다...
제가 너무 많은것을 질문해서 죄송합니다..
많이 부족해서 그렇습니다. 너그럽게 봐주세요 ^^
1.
전일의 데이타는 오늘 적용하지 못하게 하는 수식은 어떻게 되나요?
당일의 데이타로만 신호가 나오게 하고 싶습니다.
2013-04-24
199
글번호 62469
답변완료
시스템 재질문입니다.
29988번에 답변해주신 추세돌파시스템은 하이투자증권에선 제대로 작동합니다만..
그림을 순서대로
그림1
하이투자증권에서는 시스템에서 true false가 세팅화면에서 제대로 보여집니다만.
작동도 제대로 하고
그림2
우리트레이더에서는 시스템에서 0 0 0 이런식으로 input이 나옵니다.
그림3
그래서 단기에다 1을 넣고 실행하면 저렇게 논리값 에러화면이 뜨고 실행이 안됩니다.
그림4
그런데 우리트레이더에서 자동추세선 지표식세팅화면을 불러오면 저렇게 true false가 제대로 뜨는데 시스템에선 0 0 0 0으로 우리트레이더에서 뜨고 논리에러가 뜨는지
우리트레이더에서 쓸수 있는 방법을 좀 부탁드리구 싶습니다.
2013-04-24
339
글번호 62466
답변완료
시스템식 문의
1. 감사합니다.(29970번 관련)
20번이상 거래중 15번이상의 손실이 발생된 경우가 아니고,
예를 들어 25번의 거래가 발생했다면 25번중 15번이상의 손실이 아니라 ,최종20번의 거래(6-25번째 거래)중 15번이상의 손실이 발생한 경우를 의미하는데, 이대로 식을 쓰면 되는지요?
2. 일봉으로 A>B이면 시가 매수, A<B 이면 시가매도, 종가청산은 어땋게 표시하는지요?
3. 일봉거래에서 동일방향 연속진입금지, 익절 10P, 손절 5P는 어떻게 표시하나요?
(이 경우는 시가진입, 종가청산이 아니고 종가진입, 오버되는 걸로 하고, 익절은 종가
청산, 손절은 5P에 즉시청산) A>B면 매수, A<B면 매도.
*동일방향진입금지식 주신 걸 일봉에 대입하니 작동이 안 되네요.(무식탓)
2013-04-24
263
글번호 62462
답변완료
수식 수정
데이터 매니저에서 데이터를 불러와 보조 챠트에 data4번으로 띄운후
아래의 식을 적용하여 장중고가, 저가에서 data4의 값이 반대로 1000이 변하면 진입하라는 수식을 만들어 적용했더니 신호가 나오지 않습니다. .
당초에 작성해 주셨던 수식에서 무언가 빠뜨린거 같은데요..
수식 수정 부탁 드립니다.
아래
input : p(14),기준선1(13),기준선2(17),기준선3(21);
var : val1(0,data1),val2(0,data1),val3(0,data1),val4(0,data1),val5(0,data1),
val6(0,data1),val7(0,data1),val8(0,data1),val9(0,data1);
var : v1(0,data1),v2(0,data1),v3(0,data1),v4(0,data1));
v1 = data1(ADX(14));
v2 = data1(Diplus(14));
v3 = data1(DiMinus(14));
var1 =data4(c);
//-------------------------------------------------------------
//----------------------------------------------------
var : AA(0),BB(0),Vv(0),H1(0),L1(0),count(0),cnt(0);
if date != date[1] Then
{
H1 = var1;
L1 = var1;
}
count = 0;
for cnt = 0 to 10
{
if sdate == EntryDate(cnt) Then
count = count+1;
}
#당일 첫진입은 당일 첫봉대비
#매수진입
if MarketPosition == 0 Then #진입포지션이 있으면 진입금지
//시작시간
if stime >= 090100 Then
if count == 0 Then
if Var1 >= l1+1000 Then
buy("매수턴");
if MarketPosition == 0 then #진입포지션이 있으면 진입금지
if count == 0 Then
if var1 >= h1-1000 Then
//시작시간
if stime >= 090100 Then
sell("매도턴");
//--------------------------------------------------------------------
#현재 무포지션이면
if count > 0 Then{
if MarketPosition == 0 Then
{
//시작시간
if stime >= 090100 Then
# 직전청산이후 최저가+1000이면 매수
// if VV >= Lowest(vv,BarsSinceExit(1))+1000 Then
if Lowest(var1,BarsSinceExit(1))+1000 Then
if var1 <= l1+1000 Then
buy("매수턴2");
if MarketPosition == 0 Then
//시작시간
if stime >= 090100 Then
# 직전청산이후 최고가-1000이면 매도
if Highest(var1,BarsSinceExit(1))-1700 Then
// if VV <= Highest-1000 Then
if var1 >= h1-1000 Then
Sell("매도턴2(확인후진입)");
}
}
2013-04-24
234
글번호 62455
답변완료
파라볼릭 수식
앞전에 전화 통화를 통하여 만들어 주셨던 파라볼릭은 검증을 해보니
파라볼릭 찍을때 수치가 안맞아서 쓰지 못하고 있습니다...
죄송합니다 다시한번 부탁을 드리겠습니다.
파라볼릭 지표식 말고요
파라볼릭을 제작하는 수식을 올려주시면
제가 수정해서 사용하겠습니다..
1. 저는 파라볼릭이 캔들이 찍을때 그위치에 생성되게 해야합니다..
이전봉 가져오는거 말고요.. (이전봉을 가져오면 수치가 파라볼릭 찍을때 수치가 다릅니다)비슷하기라도 해야 하는데요.
정말 중요합니다..
파라볼릭 생성수식을 부탁드립니다..
(예를 들어 캔들이 위에 있는 파라볼릭을 찍으면 파라볼릭과 캔들이 접촉하는곳에 파라볼릭이 생성되고 다음봉에서 믿으로 내려가도록 만들고 싶습니다..)
2013-04-24
508
글번호 62454
답변완료
문의 - GC/DC
1. 이평데드후 N분 이내에 이평골드가 발생하면 TRUE를 리턴해주는 식을 아래와 같이 작성했는데 검증부탁드립니다. 이평데드가 발생하고 N분 이내에 이평골드가 발생해야 합니다. 이 부분은 어떻게 표현가능한가요?
VARS: dcMAv1n2(FALSE), gcMAv1n2(FALSE);
VARS: ReadyToEnter(FALSE);
if (Date != Date[1]) then
{
dcMAv1n2 = FALSE;
gcMAv1n2 = FALSE;
ReadyToEnter = FALSE;
}
if (MarketPosition == 0) then
{
if (CrossDown(MAv1, MAv2)) then
{
dcMAv1n2 = TRUE;
}
if ( (dcMAv1n2 == TRUE) && (CrossUp(MAv1, MAv2)) ) then
{
ReadyToEnter = TRUE;
}
}
if ( (MarketPosition == 1) || (MarketPosition == -1) ) then
{
dcMAv1n2 = FALSE;
gcMAv1n2 = FALSE;
ReadyToEnter = FALSE;
}
2. 이전 질문에 추가해서 전략실행차트에서 실시간으로 발생하는 신호를 Print문으로 사용해서 엑셀로 보낼수 있다는 말씀이신지요?
답변 감사드립니다.
2013-04-24
223
글번호 62451
답변완료
시스템 적용시점 이후 1회만 적용
안녕하십니까 아래와 같이 답변 주심 정말 감사드립니다.
내용에서는 1일 1회 진입에 대한 것을 문의 드렸습니다
또 하나 궁금한 것이 있어서 다시 문의 드립니다
1. 1분 챠트에 적용하니 신호가 발생되고 그 다음 봉에서 신호와 같은 값이 있어야
체결이 이루어지던데 이것이 신호 발생과 동시에 체결할 수 있도록 할 수 있는지요?
2. <1번>과 같이 하기 위해서 틱챠트에 적용하였었는데 틱 챠트에서는 거래가 이루어지지
않는 듯 보여서 혹시 어떻게 된 것인가 궁금하구요?
3. 1일 1회 거래에 대해서 재차 문의 드리면
1) 답변 주신 챠트를 적용시켜서, 한 번 거래후 컴퓨터를 재 부팅하여서
다시 적용하였더니 거래가 일어나지 않았습니다. 왜 그런 것인지?
1) 어느 챠트이든(예:틱, 1분, 5분 등..) 상관 없이 적용시점 이후 1회만 적용되도록
하려면 어떻게 하면 되는지요?
4. 마지막으로 매수 또는 매도 체결된 후 거래 중간에 식을 수정한다면
그 수정된 식이 적용되는지요?
-> 거래 중간에 식을 수정한 결과 적용 되지 않는 듯 보여서 문의 드립니다.
-------------------- 아래 ---------------------
안녕하세요
예스스탁입니다.
var : cnt(0),count(0);
#당일 진입횟수
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
당일 1회만 진입
if count < 1 and H>=257.85 Then {
sell();
}
If count < 1 and L<=257.85 Then {
buy();
}
SetStopProfittarget(1.2,PointStop);
SetStopLoss(1.1,PointStop);
SetStopEndofday(144500);
즐거운 하루되세요
> issaiah 님이 쓴 글입니다.
> 제목 : 1일 1회만 진입
> ## 선물 매도 및 매도청산
If H>=257.85 Then {
sell();
}
SetStopProfittarget(1.2,PointStop);
SetStopLoss(1.1,PointStop);
SetStopEndofday(144500);
이라 작성하였습니다.
손절 또는 이익 실현후 계속해서 거래가 됩니다.
원하는 바는 손절 또는 이익 실현후 재거래 없이
1일 1회만 진입하고자 합니다.
매수 및 매수청산은
If L<=257.85 Then {
buy();
}
를 사용하고자 합니다.
2013-04-24
214
글번호 62443
답변완료
시스템 질문드립니다.
현재 우리투자증권의 우리트레이더에 계좌 하나
하이투자증권의 예스트레이더에 계좌 두개를 각각 운영하구 있습니다.
하이투자증권의 예스트레이더만 버전이 4.0인지 몰랐습니다.
>> 질문드리구 싶은것은 밑에 자동추세선(이건 우리트레이더와 예스트레이더에서 다 작동) 지표식의 옵션체크란의 '단기상단채널'을 돌파하면 매수하는 시스템을 작성해보고 싶습니다만..
자동추세선이 3.0버전에서두 다 그어지는데 3.0버전에서 추세돌파시스템두 만들수 있을거 같습니다만..
위사진은 자동추세선지표를 우리트레이더 3.0버전에서 링네트 15분봉 2013년 4월19일 '단기상단채널'만 체크하고 지표표시한 화면입니다.
3.0버전에서 저런 추세선이 자동 작성되면 저 동그라미표시된 부분의 돌파가 나오면 매수하는 시스템을 만들어보고 싶습니다.
밑에는 전에 쓸수 있게 수정해주신 추세선 지표식입니다.
=======
Input:n(5),단기(True),중기(True),장기(False),미완성사용(True);
Var:j(0),q(0),k(0),상단(200),하단(100),고점표시(0),저점표시(0),Exit(100),
고점갱신(False),저점갱신(False),중기고점갱신(False),중기저점갱신(False),
중기추세갱신(0),장기추세갱신(0),
단기상단기울기(0),단기상단Bar(0),단기상단절편(0),단기하단기울기(0),
단기하단Bar(0),단기하단절편(0),
중기상단기울기(0),중기상단Bar(0),중기상단절편(0),중기하단기울기(0),
중기하단Bar(0),중기하단절편(0),
장기상단기울기(0),장기상단Bar(0),장기상단절편(0),장기하단기울기(0),
장기하단Bar(0),장기하단절편(0),
단기상단채널(0),단기하단채널(0),중기상단채널(0),중기하단채널(0),
장기상단채널(0),장기하단채널(0);
Array:고[50](0),저[50](0),고Bar[50](0),저Bar[50](0),
중기고[20](0),중기저[20](0),중기고Bar[20](0),중기저Bar[20](0),
장기고[20](0),장기저[20](0),장기고Bar[20](0),장기저Bar[20](0);
#==========================================#
# 초기처리 (Initialize Routine)
#==========================================#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
중기고Bar[j] = 중기고Bar[j] + 1;
중기저Bar[j] = 중기저Bar[j] + 1;
장기고Bar[j] = 장기고Bar[j] + 1;
장기저Bar[j] = 장기저Bar[j] + 1;
}
for j = 20 to 49 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
단기상단Bar = 단기상단Bar + 1;
단기하단Bar = 단기하단Bar + 1;
중기상단Bar = 중기상단Bar + 1;
중기하단Bar = 중기하단Bar + 1;
장기상단Bar = 장기상단Bar + 1;
장기하단Bar = 장기하단Bar + 1;
고점표시=(O[n]+C[n])/2;
저점표시=(O[n]+C[n])/2;
#==========================================#
# 단기 파동선 계산
#==========================================#
# 전고점(Peak) 계산
#------------------------------------------#
//Highest(H,2)[3] <= H[2] and H[2] > Highest(H,2)
if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then {
if 미완성사용 == True then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = H[n];
고Bar[1] = n;
고점갱신 = True;
고점표시 = 고[1]*1.005;
if 저Bar[1] > 고Bar[2] then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
k = n + 1;
for j = n + 2 to 고Bar[2]-1 {
if L[k] > L[j] then k = j;
}
저[1] = L[k];
저Bar[1] = k;
}
}
if 미완성사용 == False then {
if 고Bar[1] > 저Bar[1] then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
}
if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then {
고[1] = H[n];
고Bar[1] = n;
고점갱신 = True;
고점표시 = 고[1]*1.005;
}
}
}
#------------------------------------------#
# 전저점(Trough) 계산
#------------------------------------------#
//Lowest(L,2)[3] >= L[2] and L[2] < Lowest(L,2)
if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then {
if 미완성사용 == True then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = L[n];
저Bar[1] = n;
저점갱신 = True;
저점표시 = 저[1]*0.995;
if 고Bar[1] > 저Bar[2] then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
k = n + 1;
for j = n + 2 to 저Bar[2]-1 {
if H[k] < H[j] then k = j;
}
고[1] = H[k];
고Bar[1] = k;
}
}
if 미완성사용 == False then {
if 저Bar[1] > 고Bar[1] then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
}
if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then {
저[1] = L[n];
저Bar[1] = n;
저점갱신 = True;
저점표시 = 저[1]*0.995;
}
}
}
#==========================================#
# 중기 파동선 계산
#==========================================#
# 중기고점 계산
#------------------------------------------#
//단기 고점이 발생한 다음 꼭지점을 찾아 중기고점으로 설정
if 고점갱신 == True and 고[3] < 고[2] and 고[2] > 고[1] then { //↗↘
if 미완성사용 == True then {
for j = 18 downto 1 {
중기고[j+1] = 중기고[j];
중기고Bar[j+1] = 중기고Bar[j];
}
중기고[1] = 고[2];
중기고Bar[1] = 고Bar[2];
중기고점갱신 = True;
if 중기저Bar[1] > 중기고Bar[2] then {
for j = 18 downto 1 {
중기저[j+1] = 중기저[j];
중기저Bar[j+1] = 중기저Bar[j];
}
k = 2;
for j = 3 to 19 {
if 중기고Bar[2] > 저Bar[j] and
저[k] > 저[j] then {
k = j;
}
}
중기저[1] = 저[k];
중기저Bar[1] = 저Bar[k];
}
}
if 미완성사용 == False then {
if 중기고Bar[1] > 중기저Bar[1] then {
for j = 18 downto 1 {
중기고[j+1] = 중기고[j];
중기고Bar[j+1] = 중기고Bar[j];
}
}
if 중기고Bar[1] > 중기저Bar[1] or 중기고[1] <= 고[2] then {
중기고[1] = 고[2];
중기고Bar[1] = 고Bar[2];
중기고점갱신 = True;
}
}
고점갱신 = False;
중기추세갱신 = 상단;
}
#------------------------------------------#
# 중기저점 계산
#------------------------------------------#
//단기 저점이 발생한 다음 꼭지점을 찾아 중기저점으로 설정
if 저점갱신 == True and 저[3] > 저[2] and 저[2] < 저[1] then {
if 미완성사용 == True then {
for j = 18 downto 1 {
중기저[j+1] = 중기저[j];
중기저Bar[j+1] = 중기저Bar[j];
}
중기저[1] = 저[2];
중기저Bar[1] = 저Bar[2];
중기저점갱신 = True;
if 중기고Bar[1] > 중기저Bar[2] then {
for j = 18 downto 1 {
중기고[j+1] = 중기고[j];
중기고Bar[j+1] = 중기고Bar[j];
}
k = 2;
for j = 3 to 19 {
if 중기저Bar[2] > 고Bar[j] and
고[k] < 고[j] then {
k = j;
}
}
중기고[1] = 고[k];
중기고Bar[1] = 고Bar[k];
}
}
if 미완성사용 == False then {
if 중기저Bar[1] > 중기고Bar[1] then {
for j = 18 downto 1 {
중기저[j+1] = 중기저[j];
중기저Bar[j+1] = 중기저Bar[j];
}
}
if 중기저Bar[1] > 중기고Bar[1] or 중기저[1] >= 저[2] then {
중기저[1] = 저[2];
중기저Bar[1] = 저Bar[2];
중기저점갱신 = True;
}
}
저점갱신 = False;
중기추세갱신 = 하단;
}
#==========================================#
# 장기 파동선 계산
#==========================================#
# 장기고점 계산
#------------------------------------------#
//중기 고점이 발생한 다음 꼭지점을 찾아 장기고점으로 설정
if 중기고점갱신 == True and 중기고[3] < 중기고[2] and
중기고[2] > 중기고[1] then {
if 미완성사용 == True then {
for j = 18 downto 1 {
장기고[j+1] = 장기고[j];
장기고Bar[j+1] = 장기고Bar[j];
}
장기고[1] = 중기고[2];
장기고Bar[1] = 중기고Bar[2];
if 장기저Bar[1] > 장기고Bar[2] then {
for j = 18 downto 1 {
장기저[j+1] = 장기저[j];
장기저Bar[j+1] = 장기저Bar[j];
}
k = 2;
for j = 3 to 19 {
if 장기고Bar[2] > 중기저Bar[j] and
중기저[k] > 중기저[j] then {
k = j;
}
}
장기저[1] = 중기저[k];
장기저Bar[1] = 중기저Bar[k];
}
}
if 미완성사용 == False then {
if 장기고Bar[1] > 장기저Bar[1] then {
for j = 18 downto 1 {
장기고[j+1] = 장기고[j];
장기고Bar[j+1] = 장기고Bar[j];
}
}
if 장기고Bar[1] > 장기저Bar[1] or 장기고[1] <= 중기고[2] then {
장기고[1] = 중기고[2];
장기고Bar[1] = 중기고Bar[2];
}
}
중기고점갱신 = False;
장기추세갱신 = 상단;
}
#------------------------------------------#
# 장기저점 계산
#------------------------------------------#
//중기 저점이 발생한 다음 꼭지점을 찾아 장기저점으로 설정
if 중기저점갱신 == True and 중기저[3] > 중기저[2] and
중기저[2] < 중기저[1] then {
if 미완성사용 == True then {
for j = 18 downto 1 {
장기저[j+1] = 장기저[j];
장기저Bar[j+1] = 장기저Bar[j];
}
장기저[1] = 중기저[2];
장기저Bar[1] = 중기저Bar[2];
if 장기고Bar[1] > 장기저Bar[2] then {
for j = 18 downto 1 {
장기고[j+1] = 장기고[j];
장기고Bar[j+1] = 장기고Bar[j];
}
k = 2;
for j = 3 to 19 {
if 장기저Bar[2] > 중기고Bar[j] and
중기고[k] < 중기고[j] then {
k = j;
}
}
장기고[1] = 중기고[k];
장기고Bar[1] = 중기고Bar[k];
}
}
if 미완성사용 == False then {
if 장기저Bar[1] > 장기고Bar[1] then {
for j = 18 downto 1 {
장기저[j+1] = 장기저[j];
장기저Bar[j+1] = 장기저Bar[j];
}
}
if 장기저Bar[1] > 장기고Bar[1] or 장기저[1] >= 중기저[2] then {
장기저[1] = 중기저[2];
장기저Bar[1] = 중기저Bar[2];
}
}
중기저점갱신 = False;
장기추세갱신 = 하단;
}
#==========================================#
# 자동추세선 계산
#==========================================#
if 고Bar[1] == n then {
단기상단채널 = 0;
단기상단기울기 = 0;
for j = 2 to 49 {
if 고[1] < 고[j] and 단기상단기울기 == 0 then {
단기상단기울기 =((고[1]-고[j])/(고Bar[j]-고Bar[1]));
단기상단Bar = 고Bar[j];
단기상단절편 = 고[j];
j = Exit;
}
else if 고[j] <= 0 then j = Exit;
}
}
if 저Bar[1] == n then {
단기하단채널 = 0;
단기하단기울기 = 0;
for j = 2 to 49 {
if 저[1] > 저[j] and 단기하단기울기 == 0 then {
단기하단기울기 = ((저[1]-저[j])/(저Bar[j]-저Bar[1]));
단기하단Bar = 저Bar[j];
단기하단절편 = 저[j];
j = Exit;
}
else if 저[j] <= 0 then j = Exit;
}
}
if 중기추세갱신 == 상단 then {
중기상단채널 = 0;
중기상단기울기 = 0;
for j = 2 to 19 {
if 중기고[1] < 중기고[j] and 중기상단기울기 == 0 then {
중기상단기울기 =
((중기고[1]-중기고[j])/(중기고Bar[j]-중기고Bar[1]));
중기상단Bar = 중기고Bar[j];
중기상단절편 = 중기고[j];
j = Exit;
}
else if 중기고[j] <= 0 then j = Exit;
}
중기추세갱신 = 0;
}
if 중기추세갱신 == 하단 then {
중기하단채널 = 0;
중기하단기울기 = 0;
for j = 2 to 19 {
if 중기저[1] > 중기저[j] and 중기하단기울기 == 0 then {
중기하단기울기 =
((중기저[1]-중기저[j])/(중기저Bar[j]-중기저Bar[1]));
중기하단Bar = 중기저Bar[j];
중기하단절편 = 중기저[j];
j = Exit;
}
else if 중기저[j] <= 0 then j = Exit;
}
중기추세갱신 = 0;
}
if 장기추세갱신 == 상단 then {
장기상단채널 = 0;
장기상단기울기 = 0;
for j = 2 to 19 {
if 장기고[1] < 장기고[j] and 장기상단기울기 == 0 then {
장기상단기울기 =
((장기고[1]-장기고[j])/(장기고Bar[j]-장기고Bar[1]));
장기상단Bar = 장기고Bar[j];
장기상단절편 = 장기고[j];
j = Exit;
}
else if 장기고[j] <= 0 then j = Exit;
}
장기추세갱신 = 0;
}
if 장기추세갱신 == 하단 then {
장기하단채널 = 0;
장기하단기울기 = 0;
for j = 2 to 19 {
if 장기저[1] > 장기저[j] and 장기하단기울기 == 0 then {
장기하단기울기 =
((장기저[1]-장기저[j])/(장기저Bar[j]-장기저Bar[1]));
장기하단Bar = 장기저Bar[j];
장기하단절편 = 장기저[j];
j = Exit;
}
else if 장기저[j] <= 0 then j = Exit;
}
장기추세갱신 = 0;
}
if 단기상단기울기 < 0 then
단기상단채널 = 단기상단기울기 * 단기상단Bar + 단기상단절편;
if 단기하단기울기 > 0 then
단기하단채널 = 단기하단기울기 * 단기하단Bar + 단기하단절편;
if 중기상단기울기 < 0 then
중기상단채널 = 중기상단기울기 * 중기상단Bar + 중기상단절편;
if 중기하단기울기 > 0 then
중기하단채널 = 중기하단기울기 * 중기하단Bar + 중기하단절편;
if 장기상단기울기 < 0 then
장기상단채널 = 장기상단기울기 * 장기상단Bar + 장기상단절편;
if 장기하단기울기 > 0 then
장기하단채널 = 장기하단기울기 * 장기하단Bar + 장기하단절편;
#=================================#
# 지표식
#=================================#
if 고점표시 > H[n] then Plot1(고점표시,"전고점",RED); //점그래프,수평이동
if 저점표시 < L[n] then Plot2(저점표시,"전저점",BLUE); //점그래프,수평이동
#------------------------------------------#
# 채널 표시
#------------------------------------------#
if 단기 == True then {
if 단기상단채널 > 0 then Plot3(단기상단채널,"단기상단채널",RED); //점그래프
if 단기하단채널 > 0 then Plot4(단기하단채널,"단기하단채널",BLUE); //점그래프
}
if 중기 == True then {
if 중기상단채널 > 0 then Plot5(중기상단채널,"중기상단채널",RED); //점그래프
if 중기하단채널 > 0 then Plot6(중기하단채널,"중기하단채널",BLUE); //점그래프
}
if 장기 == True then {
if 장기상단채널 > 0 then Plot7(장기상단채널,"장기상단채널",RED); //점그래프
if 장기하단채널 > 0 then Plot8(장기하단채널,"장기하단채널",BLUE); //점그래프
}
2013-04-24
281
글번호 62434