커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

사용자함수 만들기

아래와 같은 식을 책에 나온대로 넣었는데 EntriesToday라는 사용자함수를 먼저 만들어야 한다고 합니다. 사용자함수로 들어갔는데 활성화도 안되고 어떻게 해야 이 식이 작동하는지 알려주세요 Input : P1(50), P2(40), P3(10), StopLoss(2); Var1 = StochasticsK(P1, P2); Var2 = StochasticsD(P1, P2, P3); If EntriesToday(date)<1 Then { if CrossUp(Var1, 80) Then Buy(); if CrossDown(var1, 20) Then Sell(); } if CrossDown(Var1, Var2) Then ExitLong(); if CrossUp(Var1, Var2) Then ExitShort(); SetStopLoss(stopLoss); SetStopEndofday(1450);
프로필 이미지
Ohare
2021-09-25
997
글번호 152462
시스템
답변완료

키움수식변환좀 부탁드릴게요..

키움 수식은 아래와 같습니다. BBUP = BBandsUP( period, d1 ) ; BB = stochasticsslow(pds1,pds2) ; BBwiHH = highest(BB, period ) ; HHc = valuewhen(1, BBwiHH==BBwi, C ) ; HHCUP = valueWhen(1, crossup( BB, BBWIHH(1) ), C ) ; CDN = crossdown( bb, threshold ) ; CDN1 = valueWhen(1, CDN, C ) ; CDN2 = valueWhen( 2, CDN, C ) ; C1 = HHC < HHCUP && BB < threshold ; c2 = CDN1 < CDN2 ; c1 or ( c2 and !c2(1) ) 그럼 좋은 하루되세요.
프로필 이미지
예그리나
2021-09-25
1392
글번호 152461
검색
답변완료

지표 부탁드립니다.

안녕하세요! 다음은 참조데이터2의 최고최저 선긋기를 만들어주신것입니다. 감사드리고요. 한 가지 더 수정을 부탁드립니다. 1. 추세선 긋기를 0선을 기준으로 0선 위에서 최고, 0선 아래에서 최저를 그리게 해주세요. 2. 추세선이 캔들에도 같이 그려지게 해주세요. 꼭 부탁드립니다. 꾸뻑 var : C2(0,Data2),H2(0,Data2),L2(0,Data2),cnt(0,Data2); var : Sidx(0,Data2),Sidx1(0,Data2),Eidx(0,Data2),Eidx1(0,Data2),Pre1(0,Data2); C2 = Data2(c); if Data2(Bdate != Bdate[1]) Then { H2 = C2; L2 = C2; Sidx = data2(Index); Sidx1 = Sidx[1]; Eidx1 = Eidx[1]; } Eidx = data2(Index); if data2(Bdate != Bdate[1] or (Bdate == bdate[1] and C2 > h2)) Then h2 = C2; if data2(Bdate != Bdate[1] or (Bdate == Bdate[1] and C2 < l2)) Then l2 = C2; if Sidx1 > 0 Then { pre1 = 0; For cnt = data2(Index)-Eidx1 to data2(Index)-Sidx1 { if data2(sDate[cnt] < sDate and sTime[cnt] <= sTime) Then { pre1 = C2[cnt]; cnt = data2(Index-Sidx1+1); } } }
프로필 이미지
포보스
2021-09-25
1357
글번호 152460
지표
답변완료

지표 부탁드립니다.

안녕하세요! 일전에 아래와 같이 실매수 거래량과 최고최저 선긋기를 만들어주셔서 정말 감사드립니다. 한가지 더 수정을 부탁드립니다. 1. 추세선 긋기를 0선을 기준으로 0선 위에서 최고, 0선 아래에서 최저를 그리게 해주세요. 2. 추세선이 캔들에도 같이 그려지게 해주세요. 꼭 부탁드립니다. 꾸뻑 var : sum(0),sum1(0),idx(0),idx1(0),cnt(0),hh(0),ll(0); if Bdate != Bdate[1] Then { sum = 0; idx = 0; idx1 = idx[1]; } idx = idx+1; if C > O Then sum = sum+v; if C < O Then sum = sum-v; if Bdate != Bdate[1] or (Bdate == bdate[1] and sum > hh) Then hh = sum; if Bdate != Bdate[1] or (Bdate == Bdate[1] and sum < ll) Then ll = sum; sum1 = 0; Condition1 = False; For cnt = idx to (idx+idx1+1) { if Condition1 == False and sTime[cnt] <= stime Then { sum1 = sum[cnt]; Condition1 = true; } }
프로필 이미지
포보스
2021-09-25
1162
글번호 152459
지표
답변완료

수식수정 부탁드립니다.

Inputs: 카운팅시작일자(20210910), 카운팅시작시간(070000),Period(112); var : cnt(0),Tcond(false); var : hh(0),ll(0),tl11(0),tl12(0),tl21(0),tl22(0); if sdate >= 카운팅시작일자 and stime >= 카운팅시작시간 Then Tcond = true; if Tcond == true Then { if (sdate != sdate[1] and stime >= 카운팅시작시간) or (sdate == sdate[1] and stime >= 카운팅시작시간 and stime[1] < 카운팅시작시간) Then Variables: BullP(0), BearP(0); BullP = (HIGH - ma(Close,Period)); BearP = (LOW - ma(Close,Period)); if BullP>0 then { var1 = BullP; } Else { var2 = BearP; } Var3=bullp; Var4=-bearp; plot1(Var3,"1",iff(Var3<>0,REd,BLUe)); plot2(Var4,"2",iff(Var4<>0,BLUe,REd)); PlotBaseLine1(0, "중심",black); if Bdate != Bdate[1] Then { hh = BullP; LL = BearP; tl11 = TL_New(sDate,sTime,99999999,sDate,sTime,0); TL_SetColor(tl11,YELLOW); TL12 = TL_New_Self(sDate,sTime,99999999,sDate,sTime,0); TL_SetColor(TL12,YELLOW); TL21 = TL_New(sDate,sTime,99999999,sDate,sTime,0); TL_SetColor(TL21,GREEN); TL22 = TL_New_Self(sDate,sTime,99999999,sDate,sTime,0); TL_SetColor(TL22,GREEN); } Else { if BullP > hh Then { hh = BullP; TL_SetBegin(TL11,sdate,sTime,99999999); TL_SetEnd(TL11,sdate,sTime,-99999999); TL_SetBegin(TL12,sdate,sTime,99999999); TL_SetEnd(TL12,sdate,sTime,-99999999); TL_SetColor(TL11,YELLOW); } if BearP< ll Then { ll = BearP; TL_SetBegin(TL21,sdate,sTime,99999999); TL_SetEnd(TL21,sdate,sTime,-99999999); TL_SetBegin(TL22,sdate,sTime,99999999); TL_SetEnd(TL22,sdate,sTime,-99999999); TL_SetColor(TL21,GREEN); } }} 상기 수식에서 bullp-bearp=결과값을 PlotBaseLine1(0, "중심",black); 기준으로 오실레이터로 나타내고싶습니다. 수고하세요!!
프로필 이미지
수색대대
2021-09-27
1332
글번호 152458
지표
답변완료

지표식 부탁합니다

안녕하십니까? 전월종가 실선을 만들고 그 선이 다음달까지 점선으로 그려지도록 식을 만들었습니다. 그런데 점선이 그려지지 않습니다. 수정부탁합니다. var1 = monthclose(1); var2 = var1[1]; var3 = index; plot1(var1, "전월종가", BLACK); If C>var2*0.8 && C<var2*1.2 Then{ If index>=var3 && index<=var3 + 20 && var1>var2 Then plot2(var2, "연장선", BLACK);} 고맙습니다.
프로필 이미지
등정
2021-09-25
1251
글번호 152457
지표
답변완료

marketposition 함수 질의

"marketposition은 신호상 포지션 방향만 알려주는 함수입니다." 질문1. marketposition 이 신호상 포지션 방향을 알려준다고 하면 "매수 신호가 발생하였으나 실제 매수가 이루어 지지 않은 경우에도 시스템은 매수가 된 것으로 인지하게 되며, 매수 청산 신호 시 매도 주문이 발생되어 "매도"포지션을 갖 게 될수 있다" 다시 말하면 "실제 매수가 이루어 지지 않은 경우에도 exitlong 주문이 sell 처럼 주문 실행이 될 수 있다"는 뜻으로 이해되는데 맞는지요? 제가 이해하는 것이 맞다면 "신호가 발생되어도 실제 주문이 체결되지 않은 경우"에 대응할 수 있는 어떤 방법이 별도로 있는지 문의드립니다. 질문2. 차트상의 신호에 따라 주문이 이루어지는 것과 별개로 각각 다른 전략, 다른 차트를 적용하여 각각의 종목에 대한 동시 매매가 가능 지 문의드립니다. (선물 차트를 통해 선물을 매수 보유한 상태에서, 옵션 차트에서 매도 신호가 발생한 경우 선물을 매수 청산하는 것이 아니라 옵션을 매도해서 결국 선물 1개 매수, 옵션 1개 매도 이렇게 두 포지션 동시 보유가 가능한지요) 예를 들면, 차트 1에는 전략1을 적용하여 국내선물을 매수, 매도 하고 차트2에서는 전략2를 적용하여 콜옵션을 매수, 매도 하고 차트3에서는 전략3을 적용하여 풋옵션을 매수, 매도를 하고 싶습니다. (선물의 경우에는 장기 보유하는 전략으로 포지션을 계속 보유한 채 상황에 따라 콜옵션, 풋옵션을 매도하는 전략을 동시에 실행하고자 하려는 것입니다.) 질문3. 질문1, 2와 관련하여 홈페이지를 보다보니 "예스스팟"이란 것이 있던데 "예스스팟"의 경우 실제 계좌와 연동할 수도 있고, 다수 종목 주문도 가능한 것으로 보이는데,맞는지요 또한 하이투자증권의 예스트레이더를 통해 "예스스팟"으로 전략 실행 가능한지도 문의드립니다.
프로필 이미지
hanbija
2021-09-25
1069
글번호 152456
시스템
답변완료

문의드립니다.

안녕하세요 빠른 F/B 감사드립니다. 아래 내용에 대한 수식을 문의드리고 싶습니다. 60분봉기준 이번봉의 종가가 전 봉의 고가 보다 높고 전봉의 저가가 시가보다 낮을때, 매수 표기 최대한 간단하게 표기될수 있으면 좋겠습니다. 감사합니다.
프로필 이미지
hi2378
2021-09-25
1526
글번호 152455
지표
답변완료

시스템식 문의 드립니다.

안녕하세요 항상 감사드립니다. 지난주에 요청드렸던 부분에서 필요한 조건들을 추가하고자 하는데 수식작성에 어려움이 있어 요청을 드립니다. 아래에 해당되는 식은 타점1~5을 적어놓으면 조건에 해당되는 타점에서 매수하고 상승시 1프로, 2프로 분할익절 하락시 2차매수 후 분할익절, 손절청산 되는 수식인데, 여기서 추가하고자 하는 조건은 전부다 동일한 조건으로 진행되는데, 1차매수 2프로 익절 했을 경우에만, 다음타점으로 매수진행되도록 조건을 추가하고 싶습니다. 예를들어 5000원에 매수해서 2프로 익절까지 했을경우, 다음 4500원이 매수타점으로 되어 진행되도록 조건을 추가하고자 합니다. 아래는 기존식이고, 기존식 밑에 제가 수식을 이리저리 수정한 식인데, 아무리 해도 제가 생각하는 타점과 거리가 멀게 진행됩니다. 그래도 이리저리 생각해서 만든식이니 혹시나 작성하시는데 조그만한 도움이 될까 기존식 밑에다가 첨부하여 같이 올려봅니다. 그럼 잘 부탁드리겠습니다. 기존식. ---------------------------------------- input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액1(1000000),투자금액2(2000000); var : entry(False),HH(0); if Bdate != Bdate[1] Then { entry = True; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; if 타점1 < DayOpen*0.99 and 타점1 < DayClose(1) and 타점1 > HH Then HH = 타점1; if 타점2 < DayOpen*0.99 and 타점2 < DayClose(1) and 타점2 > HH Then HH = 타점2; if 타점3 < DayOpen*0.99 and 타점3 < DayClose(1) and 타점3 > HH Then HH = 타점3; if 타점4 < DayOpen*0.99 and 타점4 < DayClose(1) and 타점4 > HH Then HH = 타점4; if 타점5 < DayOpen*0.99 and 타점5 < DayClose(1) and 타점5 > HH Then HH = 타점5; } if TotalTrades > TotalTrades[1] Then entry = False; if MarketPosition == 0 and sTime < 133000 and entry == true Then { Buy("1차매수",AtLimit,HH,Floor(투자금액1/min(NextBarOpen,HH))); } if MarketPosition == 1 Then { Buy("2차매수.",AtLimit,HH*0.974,Floor(투자금액2/min(NextBarOpen,HH*0.974))); } if MarketPosition == 1 Then { if MaxEntries == 1 Then { ExitLong("1차매수 1프로익절",AtLimit,avgEntryPrice*1.01,"",Floor(MaxContracts*0.4)); ExitLong("1차매수 2프로익절",AtLimit,avgEntryPrice*1.02); } if MaxEntries == 2 Then { ExitLong("2차매수 0.3익절",AtLimit,avgEntryPrice*1.003,"",Floor(MaxContracts*0.5)); ExitLong("2차매수 0.5익절",AtLimit,avgEntryPrice*1.005); } ExitLong("손절",AtStop,HH*0.96); } SetStopEndofday(151800); ------------------------------------------------------------------- 제가 수정한 식 ---------------------------------------------------------------------- input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액1(1000000),투자금액2(2000000); var : entry(False), HH(0),hi(0); Array : VV[6](0); vv[1] = 타점1; vv[2] = 타점2; vv[3] = 타점3; vv[4] = 타점4; vv[5] = 타점5; if Bdate != Bdate[1] Then { HH = 0; hi = 0; if vv[1] < DayOpen*0.99 and vv[1] > HH and vv[1] < DayClose(1) Then { HH = vv[1]; hi = 1; } if vv[2] < DayOpen*0.99 and vv[2] > HH and vv[2] < DayClose(1) Then { HH = vv[2]; hi = 2; } if vv[3] < DayOpen*0.99 and vv[3] > HH and vv[3] < DayClose(1) Then { HH = vv[3]; hi = 3; } if vv[4] < DayOpen*0.99 and vv[4] > HH and vv[4] < DayClose(1) Then { HH = vv[4]; hi = 4; } if vv[5] < DayOpen*0.99 and vv[5] > HH and vv[5] < DayClose(1) Then { HH = vv[5]; hi = 5; } } if TotalTrades > TotalTrades[1] Then entry = False; if MarketPosition == 0 and sTime < 133000 and entry == true Then { Buy("1차매수",AtLimit,VV[hi],Floor(투자금액1/min(NextBarOpen,VV[hi]))); } if MarketPosition == 1 Then { Buy("2차매수.",AtLimit,VV[hi]*0.974,Floor(투자금액2/min(NextBarOpen,VV[hi]*0.974))); if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "1차매수 2프로익절" Then hi = hi-1; } if MarketPosition == 1 Then { if MaxEntries == 1 Then { ExitLong("1차매수 1프로익절",AtLimit,avgEntryPrice*1.01,"",Floor(MaxContracts*0.4)); ExitLong("1차매수 2프로익절",AtLimit,avgEntryPrice*1.02); } if MaxEntries == 2 Then { ExitLong("2차매수 0.3익절",AtLimit,avgEntryPrice*1.003,"",Floor(MaxContracts*0.5)); ExitLong("2차매수 0.5익절",AtLimit,avgEntryPrice*1.005); } ExitLong("손절",AtStop,HH*0.96); } SetStopEndofday(151800); ----------------------------------------------------------------------------------------------------------------
프로필 이미지
맴맴잉
2021-09-25
1752
글번호 152454
시스템
답변완료

선좀 부탁 드립니다.

* 좋은 한주 되십시요^^ * <질문1> 예제 : TL_ SetExtRight(TL1,True); 식별번호가 TL1인 추세선 개체를 오른쪽으로 확장합니다. 위 수식 적용하면 선이 150개 정도 나옴니다. 이전 30개 까지만 표시 할려면 어떻게 해야 하나요? <질문2> 아래 수식에서 중심선 좀 부탁드립니다. input : n(10),z(10); var : mav(0),tl1(0),tl2(0),tl3(0),tl4(0); mav = ma(c,n); TL_Delete(tl1); TL_Delete(tl2); TL_Delete(tl3); TL_Delete(tl4); tl1 = TL_New(sdate[n-1],stime[n-1],highest(H,n),sdate,stime,highest(H,n)); tl2 = TL_New(sdate[n-1],stime[n-1],Lowest(L,n),sdate,stime,Lowest(L,n)); tl3 = TL_New(sdate[n-1],stime[n-1],highest(H,n),sdate[n-1],stime[n-1],Lowest(L,n)); tl4 = TL_New(sdate,stime,highest(H,n),sdate,stime,Lowest(L,n)); * 고맙습니다. 좋은 한주 되십시요^^
프로필 이미지
요타
2021-09-27
1268
글번호 152452
지표