커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식어 부탁드립니다

var : entry(0); if bdate != bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition <= 0 and entry < 1 Then buy("b",atlimit,dayhigh-PriceScale*12000); if MarketPosition == 1 Then exitlong("bx",atlimit,lowest(L,BarsSinceEntry)+PriceScale*120); if MarketPosition >= 0 and entry < 1 Then sell("s",atlimit,daylow+PriceScale*70); if MarketPosition == -1 Then ExitShort("sx",atlimit,Highest(H,BarsSinceEntry)-PriceScale*185); if sdate != sdate[1] Then SetStopEndofday(60000); if bdate != bdate[1] Then SetStopEndofday(0); ---------------------- 진입신호이후 상하 변동폭에 익절이 정해지는 식이여서 원하는 익절이 불가합니다. 진입신호에서 익절로 청산되는 식으로 변경을 부탁드리고 손절은 20틱입니다. ---------------------------- 위 수식어에서 청산을 틱이 아닌 특정시간으로 설정할 수있는지요. 청산이 아침 05시30분이 가능하다면 그런 청산의 수식어를 추가로 부탁드립니다.
프로필 이미지
푸른
2022-06-29
1439
글번호 160265
시스템
답변완료

매수 주문에 관한 질문

안녕하세요~ 제가 매수 A라는 시스템 로직을 짰는데요 이게 처음 신호가 나왔을때 1계약 매수하고, 청산할때까지 추가 매수는 없었으면 좋겠는데 계속 추가 주문이 들어가는데 어떻게 해야할까요? 피라미딩 체크도 허용안함입니다. 예를들어 MACD가 우상향할때 매수해서 우하향할때 매도해라 라는 수식을 쓰면 IF A=MACD(12,26,9) A>A[1] THEN Buy(s); if MarketPosition == 1 Then { if A<A[1] Then ExitLong(); } 이런 식으로 되어 있는데 현재 MACD가 우사향하고 다음봉도 우상향 3번째 봉도 우상향하면 2번째, 3번째 봉에서 계속 매수 신호가 나가나요? #질문1. 그렇다면 최초 신호에 진입하고 매도할때까지 매수를 안하려면 어떻게 설정해야하나요? #질문2. 현재 모의투자 계좌를 쓰고 있는데, A라는 매수요건에 해당해서 1계약이 체결 이후 매도 신호가 안나오는데 B라는 다른 차트에서 매수요건에 해당하여 1계약 추가 체결 이렇게 되면 제 계좌안에 2개의 매수 계약이 있는 상태라 평단가가 달라 지는데, 이게 싫다면 계좌를 여러개 개설해서 1계자당 1개의 시스템 매매만 돌리는 수밖에 없나요? 또한 이럴 경우 A의 청산로직이 발생하거나 B의 청산 로직이 A보다 먼저 발생할 경우 2계약 모두 매도가 나가게 하려면 어떤 수식을 사용해야 하나요? 그대로 두면 A의 청산 로직이 발생하면 1계약 매도 나가고, B가 발생하면 또 1계약 매도청산이 자동으로 되는게 맞죠~? #질문3. Buy(s); 와 Buy();의 차이가 무엇인가요? var : d7mav(0,Data7) 여기서 선언할때 괄호안의 0은 왜 넣어주는 건가요? 아래처럼 변수를 쓰는데 선언 이렇게 하면 제대로 한건지요? var : d1mav1(0,Data1),d1mav2(0,Data1),d1mav3(0,data1),d1mav4(0,data1),d1mav5(0,data1),d1atan(0,data1),d1macd(0,data1),d1stoK(0,data1),d1stoD(0,data1),d1CCI(0,data1); var : d7mav(0,Data7),d7stoK(0,Data7),d7stoD(0,Data7); d1mav1 = data1(ma(C,5)); d1mav2 = data1(ma(C,10)); d1mav3 = data1(ma(C,15)); d1mav4 = data1(ma(C,20)); d1mav5 = data1(ma(C,30)); d1atan = Atan((d1mav1 - d1mav1[1])/2); d1macd = data1(macd(5,20)); d1stoK = data1(FastK(5)); d1stoD = data1(FastD(5,3)); d1CCI = CCI(9); d7mav = data7(ma(C,5)); d7stoK = data7(FastK(5)); d7stoD = data7(FastD(5,3)); #질문4. 시뮬레이션차트는 장중에 작동이 안되나요? #질문5. 수식이 오류가 나는데 질문입니다. 매도 청산 로직이 현재 이렇게 되어 있는데요 if MarketPosition == 1 Then { if (data1(H<C) and data1(C==O) and data1(C>C[1]) and data1(H-C) <= -0.3) Then exitshort(); if (data1(C>C[1]) and d1CCI > d1CCI[1] and d1stok > d1stoD) Then exitshort(); if (data2(C>C[1]) and d2stok > d2stok[1] and d1stok > d1stoD) Then exitshort(); if (data14(H<C) and data14(C==O) and data14(C>C[1]) and data14(H-C) <= -0.3) Then exitshort(); if (data14(C>C[1]) and d14CCI > d14CCI[1] and d14stok > d14stoD) Then exitshort(); } ================================================================================= 위에 식을 괄호로 묶어서 OR로 연결하면 매도 신호가 안나가요? 오류가 뜨네요~ if MarketPosition == 1 Then { if ((data1(H<C) and data1(C==O) and data1(C>C[1]) and data1(H-C) <= -0.3) OR (data1(C>C[1]) and d1CCI > d1CCI[1] and d1stok > d1stoD) OR (data2(C>C[1]) and d2stok > d2stok[1] and d1stok > d1stoD OR (data14(H<C) and data14(C==O) and data14(C>C[1]) and data14(H-C) <= -0.3) OR (data14(C>C[1]) and d14CCI > d14CCI[1] and d14stok > d14stoD)) Then exitshort(); } 질문6. 현재 하나의 시스템 랭귀지 안에 4개의 부분으로 나눠놨는데 매도 청산신호가 안나갑니다 1. 매수로직 2. 매수청산 3. 매도로직 4. 매도청산 이렇게 되어 있는데 4번만 발생이 안되는데 왜 그럴까요~?
프로필 이미지
분당고래
2022-06-29
1270
글번호 160264
시스템

배움이 님에 의해서 삭제되었습니다.

프로필 이미지
배움이
2022-06-29
123
글번호 160263
지표

분당고래 님에 의해서 삭제되었습니다.

프로필 이미지
분당고래
2022-06-29
0
글번호 160262
시스템
답변완료

틱차트 기간 최대가 10년째 1000틱 밖에 설정이 안되는 건가요?

안녕하세요~ 저는 다른 증권사 HTS에서 틱차트 기간을 최대 30000만까지도 보고 있는데, 예스에서 구현을 하려고 보니 1000틱으로 제한이 걸려 있던데, 이걸 해제하거나, 다른 방법이 없나요? 이런 문의가 2012년에도 있었더군요... 기간 풀어주는게 어렵지 않을텐데..(이미 1000틱까지 구현 되어 있기에..) 안되어 있다면 건의사항에좀 올려주세요. 10년 전 글에도 논의해 보겠다고만 답변이 되어 있네요 ㅠㅠ
프로필 이미지
분당고래
2022-06-28
1151
글번호 160261
지표
답변완료

수식 변환 문의

수고 하십니다. 아래 식 변환 부탁드립니다. 수고하세요... ######################### input length = 5; def n = length; def bn = BarNumber(); def lastBar = HighestAll(if IsNaN(close) then 0 else bn); def x = bn; def y = close; # calculate summation values def startBar = lastBar - (n - 1); def sumX = if bn < startBar then 0 else x + sumX[1]; def sumY = if bn < startBar then 0 else y + sumY[1]; def sumX2 = if bn < startBar then 0 else Power(x, 2) + sumX2[1]; def sumX3 = if bn < startBar then 0 else Power(x, 3) + sumX3[1]; def sumX4 = if bn < startBar then 0 else Power(x, 4) + sumX4[1]; def sumXY = if bn < startBar then 0 else x * y + sumXY[1]; def sumX2Y = if bn < startBar then 0 else Power(x, 2) * y + sumX2Y[1]; # intermediary calculations def xx = sumX2 - Power(sumX, 2) / n; def xy = sumXY - (sumX * sumY / n); def xx2 = sumX3 - (sumX2 * sumX / n); def x2y = sumX2Y - (sumX2 * sumY / n); def x2x2 = sumX4 - (Power(sumX2, 2) / n); # calculate coefficients def a0 = (x2y * xx - xy * xx2) / (xx * x2x2 - Power(xx2, 2)); def b0 = (xy * x2x2 - x2y * xx2) / (xx * x2x2 - Power(xx2, 2)); def c0 = sumY / n - b0 * sumX / n - a0 * sumX2 / n; # for a, b, and c use the final value on the last bar of the chart for all calculations def a = GetValue(a0, bn - lastBar); def b = GetValue(b0, bn - lastBar); def c = GetValue(c0, bn - lastBar); # calculate and plot plot theCurve = if bn < startBar then Double.NaN else a * Power(x, 2) + b * x + c;
프로필 이미지
오이도인
2022-06-28
1413
글번호 160260
지표
답변완료

수식문의 (틱속도)

1. 100틱이나 200틱까지 체결될때까지의 시간을 단순히 표시할수 있는 수식이 있을까요?? 2. 조금더 나아가면 100틱까지 걸리는 시간이 5초라면 체결강도 100 , 10초라면 체결강도 70 이런식으로 숫자를 나타낼수 있는 수식을 알려주시면 감사하겠습니다. 3. 체결강도 70에서 매수신호 나오게 할수 있을까요?
프로필 이미지
el콘도르
2022-06-28
1123
글번호 160256
시스템
답변완료

수식변환의뢰

아래의 수식을 예스언어로 변환부탁드립니다. StdevIf(data, compare, value) - data 벡터에서 value와 비교하여 해당되는 값들로만 전체 구간에 대해 표준편차를 구한다. (compare=-1:value보다작음, 0:value와 같음, 1:value보다 큼) StdevIf(C-avg(C, 24), -1, 0) 종가-24일평균값이 0보다 작은 값들에 대해서만, 표준편차를 구한다. 사용법 : AvgIf(data, compare, value) - data 벡터에서 value와 비교하여 해당되는 값들로만 평균을 구한다. (compare=-1:value보다작음, 0:value와 같음, 1:value보다 큼) AvgIf(C-avg(C, 24), -1, 0) 종가-24일평균값이 0보다 작은 값들에 대해서만 평균값을 구한다.
프로필 이미지
심홍
2022-06-28
1652
글번호 160253
사용자 함수

오이도인 님에 의해서 삭제되었습니다.

프로필 이미지
오이도인
2022-06-28
3
글번호 160252
지표
답변완료

문의

타플렛폼 수식인데요 예스차트로 변환부탁드립니다. A = DayHigh() - DayLow(); B = A * 0.52; D = DayLow() + B; D
프로필 이미지
뽀로오스
2022-06-28
1553
글번호 160251
지표