커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
6541
글번호 230811
지표
답변완료

부탁 드립니다.

운영자님~~! 항상 매우 만족한 수식으로 도움 주셔서 가슴 깊이 감사 드립니다. 현재의 기준 수평선을 삭제 하고 그림과 같이 대륙별로 기준 수평선을 그을수 있는 수식 부탁 드립니다. 미리 감사드리오며 경배 올립니다. //대륙별 구분 시각// //input : 아시아시작(081000),아시아종료(152000); //input : 유럽시작(153000),유럽종료(213000); //input : 미국시작(214000),미국종료(065000); //수식 input:Sstime(081000),Eetime(070000); If stime == Sstime or (stime > Sstime and stime[1] < Sstime) Then { Var1 = rsi(14); Var2 = Var1[1]; } if (stime >= Sstime or stime <= Eetime) Then var1=rsi(14); plot1(Var1,"RSI"); plot2(Var2,"기준선");
프로필 이미지
yes
2015-11-04
278
글번호 92030
지표
답변완료

참조함수로 수정요청(11-1호)

안녕하세요? 아래의 함수를 사용하여 B종목(data2)에서 신호를 잡아 B종목(data1)을 실제주문을 내고 싶습니다. 참조함수로 수정부탁드립니다. 아울러 작성해주신 함수를 data1에서 시스템을 선택하여 적용시켜야 하나요 data2에다 적용시켜야 하나요? var : entry1(0); var : ho1(0),OL1(0),HL1(0); var : maho1(0),maOL1(0),maHL1(0); var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0); var : EntryCnt1(0); var : V1(0),V2(0),V3(0),V4(0),V5(0); var : V6(0),V7(0),V8(0),V9(0),V10(0); if bdate != bdate[1] Then entry1 = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry1 = entry1+1; ho1 = Dayhigh-Dayopen; OL1 = DayOpen-DayLow; HL1 = DayHigh-DayLow; sumho1 = 0; sumOL1 = 0; sumHL1 = 0; for cnt1 = 1 to 10{ sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1)); sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1)); sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1)); } maho1 = sumho1/10; maOL1 = sumOL1/10; maHL1 = sumHL1/10; V1 = V2 = V3 = V4 = V5 = V6 = V7 = V8 = V9 = V10 = if MarketPosition == 0 and entry1 == 0 Then{ if V7 > V8 Then sell("s1",AtStop,V7-0.02); if V7 < V8 Then sell("s2",Atlimit,V8-0.02); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("sp1",atlimit,V9-0.03); ExitShort("sl1",AtStop,V6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("sp2",atlimit,V9-0.03); ExitShort("sl2",AtStop,V6); } var : TF(0); var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 050000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/2; var2 = (HV1+LV1)/2; var3 = (HV2+LV2)/2; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then buy("b",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitLong("bx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitLong(); }
프로필 이미지
통큰베팅
2015-11-04
209
글번호 92029
시스템
답변완료

문의 드립니다.

1. 시스템식에서 매도할 때 상한가에서 -1틱 이상의 경우 "보통가" 매도하려면 어떻게 해야하나요? 2. 예스트레이드에서는 모의투자가 따로 없지요? 3. 예를들어 총 3개의 전략실행차트를 A 시스템으로 돌릴 때 / A의 수식을 조금 수정하여 저장하면 다른 2개의 전략실행차트에도 적용이 안되더라구요. 그래서 시스템 수식 바꾸면 모든 전략실행차트에 가서 시스템을 다시 불러오는 걸 해야하는데 이게 영 불편해서요. 방법이 있을까요? 4. 트레이더 로그인시 계좌빌밀번호 입력하라고 뜨는데 이거 자동으로 입력되게 할 순 없나요요? 계속 입력해야해서 불편하네요. 5. 시스템 리포트에서 총 손익은 수수료를 제외한 금액인가요? 6. 시스템 리포트에서 조정 총손익은 무엇을 말하는건가요?(총 손익과 어떻게 다른가요)
프로필 이미지
에르메스
2015-11-04
296
글번호 92028
시스템
답변완료

수식작성 부탁드립니다

안녕하세요.. 시스템매매를 하고 있는데요.. 30틱 챠트에서 현재보다 6봉前의 시간(초단위)과 현재 봉종료 시간(초단위)를 계산하여 30초 이상 차이를 찾아내는 수식을 부탁드립니다. 제 실력으로는 도저히 만들수가 없네요. 미리 감사드립니다.
프로필 이미지
aicos999
2015-11-03
205
글번호 92027
시스템
답변완료

문의 드립니다.

44762 답변 감사합니다. 제 설명이 미흡했나 봅니다. 횡보가 일어나면 진입 숫자가 계속 증가해야 하는데 현재 수식은 수량이 증가하지를 않네요. 2개 첫 진입 손절, 1개 스위칭, 2개 추가 합 3개 3개 손절, 2개 스위칭, 2개 추가 합 4개 4개 손절, 2개 스위칭, 3개 추가 합 5개 5개 손절, 3개 스위칭, 3개 추가 합 6개 추가 진입이 일어날 때 1개씩 증가하게 해주세요. 손절 계약수가 짝수면 1/2 스위칭하고 +1 추가진입 손절 계약수가 홀수면 직전 추가진입 계약수로 스위칭하고 같은 계약수로 추가진입(또는 직전 스위칭 계약수 +1) 홀수일 땐 손절과 동시 스위칭 계약수가 +1 증가이고 짝수일 땐 추가 진입 계약수가 +1인데 수식으로 어떻게 작성해야 할지 모르겠습니다. 수식 다시 살펴봐주시기 바랍니다. 아, 그리고 손절틱을 변경해도 시스템 성능 보고서에 변화가 없습니다. 손절도 나오고 스위칭도 나오는데 어떻게 숫자를 변경해도 변화가 없을까요? input : 시간(90000),N(3),목표수익틱1(10),목표수익틱2(15),손절틱(10); 진입은 전에 알려주신 진입식으로 했습니다. 시가 +10틱에 매도, -10틱에 매수 if dayhigh-daylow >= PriceScale*1 and daypl < 10 Then{ if MarketPosition == 0 and stime == 151500 then{ buy("b1",AtLimit, NextBarOpen-PriceScale*10,2); Sell("s1",AtLimit,NextBarOpen+PriceScale*10,2); } if stime >= 090000 and MarketPosition == 0 and stime < 151500 then{ buy("b2",AtLimit, DayOpen-PriceScale*10,2); Sell("s2",AtLimit,DayOpen+PriceScale*10,2); } }
프로필 이미지
고운무지개
2015-11-04
225
글번호 92026
시스템

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
수류
2015-11-03
7
글번호 92025
시스템
답변완료

44830번글 관련 다시 검토 부탁드립니다.

전화통화하고 생각해 보았는데요... 편법으로 1.매수조건의 1)항목의 과거조건을 시스템식이 인식을 하지 못한다면 아래의 1)항에서 조건을 만족하면 아예 1주만 1차매수하여 신호를 유지시켜 준 다음 당초 2)항의 1차매수에서 2차매수를 2차비중만큼, 3)항의 2차매수에서 3차매수를 3차비중만큼 매수하면 되지 않을까요? 갑자기 생각나서 쓴글이고 늦은 시간이니 내일 검토해 주세요... 오늘 수고 많으셨습니다. 이전의 질문내용은 아래와 같습니다. ----------------------------------------------------------------------------- 아래와 같은 시스템식에 이동평균선에 대한 외부변수를 다음과 같이 설정하고, input : 매수이평기간(15); 1. 매수조건 1) 주가가 "일봉이평기간(120)" 즉, 120일선 위에 있고, 120일 최고가를 갱신하고, "매수이평기간(15)" 즉, 15일선이 우상향하며, 엔벨로프 {"P(10)" : "매수위치1차(10)"} 즉, 엔벨로프 10:10의 상단선을 종가가 돌파하면 다음과 같이 "매수이평기간(15)" 15일선 부근에서 매수함. 단, 4가지 조건 모두를 만족할때만 1차매수를 함. 2) 1)의 조건을 모두 만족할때 "매수이평기간(15)" 15일선 부근 즉, "매수위치보정(1)"인 +1% 위에서 1차매수를 하고 차트에 "1차매수"를 표시함. 정리하면 15일선 +1%에서 1차매수를 "매수비중1차(30)"인 30%를 함. 3) 1차매수 후 1차매도없이 하락하면 "매수위치2차(7)" 즉, 7% 하락하면 2차매수를 "매수비중2차(35)인 35%를 하고 차트에 "2차매수"를 표시함. 2. 매도조건 1) 기타 매도조건은 기존의 시스템식과 같음. 2) "타점보유일수(5)"일때 "익절"에 대한 내용도 기존의 시스템식과 같음. 3. 기타 사항은 첨부한 차트를 참고해 주세요.. 기존 시스템식은 아래와 같습니다. -------------------------------------------------------------------------------------- input : 전략식시작일자(20151028), 전략식시작시간(090000), 전략총매수금액(5000); input : 전략식종료일자(20151231); input : 갭하락(5), 시장보정계수(5),일봉이평기간(120),이평보정계수(5); input : P(10), 매수위치1차(10), 매수위치2차(7), 매수위치3차(14); input : 매수위치보정(1); input : 매도위치1차(7), 매도위치2차(14); input : 매수비중1차(30), 매수비중2차(35), 매수비중3차(35); input : 매도비중1차(50), 매도비중2차(50); input : 전략식진입횟수(100); input : 타점보유일수(5); var : sum(0),mav(0),cnt(0),eup(0),edn(0),Didx(0),LatestEntryDidx(0),Ecnt(0); var : TimeCond(false),Xcond1(false),Xcond2(false),Loss(0),LatestEntrylow(0); var : Period(0),매수1차(0); var : cum1(0),cum2(0),ma1(0),ma2(0); # 일자수 계산 if date != date[1] Then Didx = Didx+1; # 일봉 120이평 계산(전일기준,전전일기준) cum1 = 0; cum2 = 0; for cnt = 1 to 일봉이평기간{ cum1 = cum1+DayClose(cnt); cum2 = cum2+DayClose(cnt+1); } # 전일기준 일봉 120일이평 ma1 = cum1/일봉이평기간; # 전전일기준 일봉 120일이평 ma2 = cum2/일봉이평기간; #기본값은 기간은 P, %는 매수위치1차 Period = P; 매수1차 = 매수위치1차; #갭하락이면 #기간은 기존Period값+시장보정계수 #%는 기존 매수1차값에 + 시장보정계수 if dayopen < DayClose(1)*(1-갭하락/100) Then{ Period = Period + 시장보정계수; 매수1차 = 매수1차 + 시장보정계수; } #이평하락이면 #기간은 기존Period값+이평보정계수 #%는 기존 매수1차값에 + 이평보정계수 if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{ Period = Period + 이평보정계수; 매수1차 = 매수1차 + 이평보정계수; } #당일포함 일봉 Period개의 종가를 누적 sum = 0; for cnt = 0 to Period-1{ sum = sum+DayClose(cnt); } #누적값을 Period로 나누어 평균값 산출 mav = sum/Period; #상단계산 Eup = mav+mav*(매수1차/100); #하단계산 Edn = mav-mav*(매수1차/100); #지정일 지정시간이 되면 TimeCond는 True(그전에는 false) if sdate == 전략식시작일자 and (stime == 전략식시작시간 or (stime > 전략식시작시간 and stime[1] < 전략식시작시간 )) then TimeCond = true; if sdate > 전략식종료일자 Then TimeCond = false; #TimeCond가 True가 된 후 if TimeCond == true then{ if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "1차매수" Then Ecnt = Ecnt+1; #무포지션 상태에서 매수위치1차에 도달하면 매수 if MarketPosition == 0 and Ecnt < 전략식진입횟수 Then buy("1차매수",atlimit,Edn*(1+매수위치보정/100),Floor((전략총매수금액*10000/c)*(매수비중1차/100))); #첫매수이후 if MarketPosition == 1 Then{ #최근 진입시점의 일자수 저장 if CurrentContracts > CurrentContracts[1] Then{ LatestEntryDidx = Didx; LatestEntrylow = L; } #1차매수 발생 후 매수위치2차에 도달하면 매수 if MaxEntries == 1 Then buy("2차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략총매수금액*10000/c)*(매수비중2차/100))); #1차매수 발생 후 매수위치3차에 도달하면 매수 if MaxEntries == 2 Then buy("3차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략총매수금액*10000/c)*(매수비중3차/100))); #1차매도가 한번 발생하면 더이상 발생못하도록 Xcond1은 true if LatestExitName(0) == "1차매도" then Xcond1 = true; #2차매도가 한번 발생하면 더이상 발생못하도록 Xcond2는 true if LatestExitName(0) == "2차매도" then Xcond2 = true; #Xcond1이 false일때 #진입이후 최저가에서 매도위치1차 만큼 상승하면 일부 청산 if Xcond1 == false Then exitlong("1차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치1차/100),"",Floor(MaxContracts*(매도비중1차/100)),1); #Xcond2가 false일 #진입이후 최저가에서 매도위치2차 만큼 상승하면 전량청산 if Xcond2 == false Then exitlong("2차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치2차/100)); #최근 진입후 3일이상 경과(현재 일자수가 최근진입시점의 일자수보다 3이상증가) if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then{ #최근 진입이후 3일되었을때의 최근진입일 포함3일 최저가 계산 if date != date[1] and Didx == LatestEntryDidx[BarsSinceEntry]+3 Then{ Loss = daylow(1); for cnt = 1 to 타점보유일수 { if daylow(cnt) < Loss Then Loss = daylow(cnt); } } #Loss값 이하로 가격하락하면 전량 청산 exitlong("손절",AtStop,Loss); } #최종 매수일 포함 3일경과되면 다음날 시가에 매도 if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{ exitlong("익절2",AtMarket); } # 1차매도가 발생한 상황 # 가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산 # if L < LatestEntrylow and Xcond1 == false Then # LatestEntrylow = L; # if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then{ # exitlong("익절1",AtStop,LatestEntrylow); # } } else{ #매수포지션이 아니면 false로 초기화 Xcond1 = false; Xcond2 = false; } }
프로필 이미지
종풍화성
2015-11-03
221
글번호 92024
시스템
답변완료

추가 문의 드립니다.

매우 성의있고 만족한 수식 답변(44823)에 깊이 깊이 감사 드립니다. 그림과 같이 텍스트 위치를 변경할려면 (별표 부분을 화살표 위치로) 70~73행을 어떻게 고치면 되는지요? input : 소수점자리조정(10000); input : 아시아시작(081000),아시아종료(152000); input : 유럽시작(153000),유럽종료(213000); input : 미국시작(214000),미국종료(065000); var : cnt(0),Tcond1(false),Tcond2(false),Tcond3(false); Array : TL11[10](0),TL12[10](0),TL13[10](0),TL14[10](0),Tx1[10](0),TX11[10](0); Array : SD1[10](0),ST1[10](0),ED1[10](0),ET1[10](0),H1[10](0),L1[10](0); Array : TL21[10](0),TL22[10](0),TL23[10](0),TL24[10](0),Tx2[10](0); Array : SD2[10](0),ST2[10](0),ED2[10](0),ET2[10](0),H2[10](0),L2[10](0); Array : TL31[10](0),TL32[10](0),TL33[10](0),TL34[10](0),Tx3[10](0); Array : SD3[10](0),ST3[10](0),ED3[10](0),ET3[10](0),H3[10](0),L3[10](0); if time == 아시아종료 or (time > 아시아종료 and time[1] < 아시아종료) Then Tcond1 = false; if stime == 아시아시작 or (stime > 아시아시작 and stime[1] < 아시아시작) Then{ SD1[0] = sdate; ST1[0] = stime; H1[0] = H; L1[0] = L; Tcond1 = true; for cnt = 1 to 9{ SD1[cnt] = SD1[cnt-1][1]; ST1[cnt] = ST1[cnt-1][1]; ED1[cnt] = ED1[cnt-1][1]; ET1[cnt] = ET1[cnt-1][1]; H1[cnt] = H1[cnt-1][1]; L1[cnt] = L1[cnt-1][1]; } #전일 TL_Delete(TL11[1]); TL_Delete(TL12[1]); TL_Delete(TL13[1]); TL_Delete(TL14[1]); TL11[1] = TL_New(SD1[1],ST1[1],H1[1],ED1[1],ET1[1],H1[1]); TL12[1] = TL_New(SD1[1],ST1[1],L1[1],ED1[1],ET1[1],L1[1]); TL13[1] = TL_New(SD1[1],ST1[1],H1[1],SD1[1],ST1[1],L1[1]); TL14[1] = TL_New(ED1[1],ET1[1],H1[1],ED1[1],ET1[1],L1[1]); TL_SetColor(TL11[1],RED); TL_SetColor(TL12[1],RED); TL_SetColor(TL13[1],RED); TL_SetColor(TL14[1],RED); Text_Delete(tx1[1]); tx1[1] = Text_New(ED1[1],ET1[1],H1[1],NumToStr((H1[1]-L1[1])*소수점자리조정,0)); Text_SetColor(tx1[1],RED); Text_SetStyle(tx1[1],1,1); #전전일 TL_Delete(TL11[2]); TL_Delete(TL12[2]); TL_Delete(TL13[2]); TL_Delete(TL14[2]); TL11[2] = TL_New(SD1[2],ST1[2],H1[2],ED1[2],ET1[2],H1[2]); TL12[2] = TL_New(SD1[2],ST1[2],L1[2],ED1[2],ET1[2],L1[2]); TL13[2] = TL_New(SD1[2],ST1[2],H1[2],SD1[2],ST1[2],L1[2]); TL14[2] = TL_New(ED1[2],ET1[2],H1[2],ED1[2],ET1[2],L1[2]); TL_SetColor(TL11[2],RED); TL_SetColor(TL12[2],RED); TL_SetColor(TL13[2],RED); TL_SetColor(TL14[2],RED); Text_Delete(tx1[2]); tx1[2] = Text_New(ED1[2],ET1[2],H1[2],NumToStr((H1[2]-L1[2])*소수점자리조정,0)); Text_SetColor(tx1[2],RED); Text_SetStyle(tx1[2],1,1); Text_Delete(tx11[2]); tx11[2] = Text_New(ED1[2],ET1[2],H1[2],RIGHTStr("(-2일)",6)); Text_SetColor(tx11[2],RED); Text_SetStyle(tx11[2],3,1); } if Tcond1 == true Then{ ED1[0] = Sdate; ET1[0] = Stime; if H > H1[0] Then H1[0] = H; if L < L1[0] Then L1[0] = L; #당일 TL_Delete(TL11[0]); TL_Delete(TL12[0]); TL_Delete(TL13[0]); TL_Delete(TL14[0]); TL11[0] = TL_New(SD1[0],ST1[0],H1[0],ED1[0],ET1[0],H1[0]); TL12[0] = TL_New(SD1[0],ST1[0],L1[0],ED1[0],ET1[0],L1[0]); TL13[0] = TL_New(SD1[0],ST1[0],H1[0],SD1[0],ST1[0],L1[0]); TL14[0] = TL_New(ED1[0],ET1[0],H1[0],ED1[0],ET1[0],L1[0]); TL_SetColor(TL11[0],RED); TL_SetColor(TL12[0],RED); TL_SetColor(TL13[0],RED); TL_SetColor(TL14[0],RED); Text_Delete(tx1[0]); tx1[0] = Text_New(sdate,stime,H1[0],NumToStr((H1[0]-L1[0])*소수점자리조정,0)); Text_SetColor(tx1[0],RED); Text_SetStyle(tx1[0],1,1); } if time == 유럽종료 or (time > 유럽종료 and time[1] < 유럽종료) Then Tcond2 = false; if stime == 유럽시작 or (stime > 유럽시작 and stime[1] < 유럽시작) Then{ SD2[0] = sdate; ST2[0] = stime; H2[0] = H; L2[0] = L; Tcond2 = true; for cnt = 1 to 9{ SD2[cnt] = SD2[cnt-1][1]; ST2[cnt] = ST2[cnt-1][1]; ED2[cnt] = ED2[cnt-1][1]; ET2[cnt] = ET2[cnt-1][1]; H2[cnt] = H2[cnt-1][1]; L2[cnt] = L2[cnt-1][1]; } #전일 TL_Delete(TL21[1]); TL_Delete(TL22[1]); TL_Delete(TL23[1]); TL_Delete(TL24[1]); TL21[1] = TL_New(SD2[1],ST2[1],H2[1],ED2[1],ET2[1],H2[1]); TL22[1] = TL_New(SD2[1],ST2[1],L2[1],ED2[1],ET2[1],L2[1]); TL23[1] = TL_New(SD2[1],ST2[1],H2[1],SD2[1],ST2[1],L2[1]); TL24[1] = TL_New(ED2[1],ET2[1],H2[1],ED2[1],ET2[1],L2[1]); TL_SetColor(TL21[1],YELLOW); TL_SetColor(TL22[1],YELLOW); TL_SetColor(TL23[1],YELLOW); TL_SetColor(TL24[1],YELLOW); Text_Delete(tx2[1]); tx2[1] = Text_New(ED2[1],ET2[1],H2[1],NumToStr((H2[1]-L2[1])*소수점자리조정,0)); Text_SetColor(tx2[1],YELLOW); Text_SetStyle(tx2[1],1,1); #전전일 TL_Delete(TL21[2]); TL_Delete(TL22[2]); TL_Delete(TL23[2]); TL_Delete(TL24[2]); TL21[2] = TL_New(SD2[2],ST2[2],H2[2],ED2[2],ET2[2],H2[2]); TL22[2] = TL_New(SD2[2],ST2[2],L2[2],ED2[2],ET2[2],L2[2]); TL23[2] = TL_New(SD2[2],ST2[2],H2[2],SD2[2],ST2[2],L2[2]); TL24[2] = TL_New(ED2[2],ET2[2],H2[2],ED2[2],ET2[2],L2[2]); TL_SetColor(TL21[2],YELLOW); TL_SetColor(TL22[2],YELLOW); TL_SetColor(TL23[2],YELLOW); TL_SetColor(TL24[2],YELLOW); Text_Delete(tx2[2]); tx2[2] = Text_New(ED2[2],ET2[2],H2[2],NumToStr((H2[2]-L2[2])*소수점자리조정,0)); Text_SetColor(tx2[2],YELLOW); Text_SetStyle(tx2[2],1,1); } if Tcond2 == true Then{ ED2[0] = Sdate; ET2[0] = Stime; if H > H2[0] Then H2[0] = H; if L < L2[0] Then L2[0] = L; #당일 TL_Delete(TL21[0]); TL_Delete(TL22[0]); TL_Delete(TL23[0]); TL_Delete(TL24[0]); TL21[0] = TL_New(SD2[0],ST2[0],H2[0],ED2[0],ET2[0],H2[0]); TL22[0] = TL_New(SD2[0],ST2[0],L2[0],ED2[0],ET2[0],L2[0]); TL23[0] = TL_New(SD2[0],ST2[0],H2[0],SD2[0],ST2[0],L2[0]); TL24[0] = TL_New(ED2[0],ET2[0],H2[0],ED2[0],ET2[0],L2[0]); TL_SetColor(TL21[0],YELLOW); TL_SetColor(TL22[0],YELLOW); TL_SetColor(TL23[0],YELLOW); TL_SetColor(TL24[0],YELLOW); Text_Delete(tx2[0]); tx2[0] = Text_New(sdate,stime,H2[0],NumToStr((H2[0]-L2[0])*소수점자리조정,0)); Text_SetColor(tx2[0],YELLOW); Text_SetStyle(tx2[0],1,1); } if time == 미국종료 or (time > 미국종료 and time[1] < 미국종료) Then Tcond3 = false; if stime == 미국시작 or (stime > 미국시작 and stime[1] < 미국시작) Then{ SD3[0] = sdate; ST3[0] = stime; H3[0] = H; L3[0] = L; Tcond3 = true; for cnt = 1 to 9{ SD3[cnt] = SD3[cnt-1][1]; ST3[cnt] = ST3[cnt-1][1]; ED3[cnt] = ED3[cnt-1][1]; ET3[cnt] = ET3[cnt-1][1]; H3[cnt] = H3[cnt-1][1]; L3[cnt] = L3[cnt-1][1]; } #전일 TL_Delete(TL31[1]); TL_Delete(TL32[1]); TL_Delete(TL33[1]); TL_Delete(TL34[1]); TL31[1] = TL_New(SD3[1],ST3[1],H3[1],ED3[1],ET3[1],H3[1]); TL32[1] = TL_New(SD3[1],ST3[1],L3[1],ED3[1],ET3[1],L3[1]); TL33[1] = TL_New(SD3[1],ST3[1],H3[1],SD3[1],ST3[1],L3[1]); TL34[1] = TL_New(ED3[1],ET3[1],H3[1],ED3[1],ET3[1],L3[1]); TL_SetColor(TL31[1],BLUE); TL_SetColor(TL32[1],BLUE); TL_SetColor(TL33[1],BLUE); TL_SetColor(TL34[1],BLUE); Text_Delete(tx3[1]); tx3[1] = Text_New(ED3[1],ET3[1],H3[1],NumToStr((H3[1]-L3[1])*소수점자리조정,0)); Text_SetColor(tx3[1],BLUE); Text_SetStyle(tx3[1],1,1); #전전일 TL_Delete(TL31[2]); TL_Delete(TL32[2]); TL_Delete(TL33[2]); TL_Delete(TL34[2]); TL31[2] = TL_New(SD3[2],ST3[2],H3[2],ED3[2],ET3[2],H3[2]); TL32[2] = TL_New(SD3[2],ST3[2],L3[2],ED3[2],ET3[2],L3[2]); TL33[2] = TL_New(SD3[2],ST3[2],H3[2],SD3[2],ST3[2],L3[2]); TL34[2] = TL_New(ED3[2],ET3[2],H3[2],ED3[2],ET3[2],L3[2]); TL_SetColor(TL31[2],BLUE); TL_SetColor(TL32[2],BLUE); TL_SetColor(TL33[2],BLUE); TL_SetColor(TL34[2],BLUE); Text_Delete(tx3[2]); tx3[2] = Text_New(ED3[2],ET3[2],H3[2],NumToStr((H3[2]-L3[2])*소수점자리조정,0)); Text_SetColor(tx3[2],BLUE); Text_SetStyle(tx3[2],1,1); } if Tcond3 == true Then{ ED3[0] = Sdate; ET3[0] = Stime; if H > H3[0] Then H3[0] = H; if L < L3[0] Then L3[0] = L; #당일 TL_Delete(TL31[0]); TL_Delete(TL32[0]); TL_Delete(TL33[0]); TL_Delete(TL34[0]); TL31[0] = TL_New(SD3[0],ST3[0],H3[0],ED3[0],ET3[0],H3[0]); TL32[0] = TL_New(SD3[0],ST3[0],L3[0],ED3[0],ET3[0],L3[0]); TL33[0] = TL_New(SD3[0],ST3[0],H3[0],SD3[0],ST3[0],L3[0]); TL34[0] = TL_New(ED3[0],ET3[0],H3[0],ED3[0],ET3[0],L3[0]); TL_SetColor(TL31[0],BLUE); TL_SetColor(TL32[0],BLUE); TL_SetColor(TL33[0],BLUE); TL_SetColor(TL34[0],BLUE); Text_Delete(tx3[0]); tx3[0] = Text_New(sdate,stime,H3[0],NumToStr((H3[0]-L3[0])*소수점자리조정,0)); Text_SetColor(tx3[0],BLUE); Text_SetStyle(tx3[0],1,1); }
프로필 이미지
yes
2015-11-03
266
글번호 92017
지표
답변완료

다시 문의드립니다.

아래답변을 받았는데요, 5분봉에 적용해보니 매도신호가 하나도안뜹니다. 수정부탁드립니다. var : TF(0),cnt(0); Array : HH[10](0),LL[10](0); TF = TimeToMinutes(stime); if Bdate != bdate[1] or (Bdate == Bdate[1] and stime < 150000 and TF < TF[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 9{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[2] > 0 and LL[2] > 0 Then{ if HH[0] > max(HH[1],HH[2]) Then buy(); if ll[0] < mIN(LL[1],LL[2]) Then sell(); }
프로필 이미지
해월정
2015-11-03
208
글번호 92015
시스템