커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다.

> 3분봉상 볼린저밴드(20.2) 기준입니다. 매수 매도 시간 09:00~2:20 매수 1차매수 - 현재가 볼린저밴드(20.2) 하단선이하 -0.8% 현재가가 위치시 매수 : 매수금액 1000000원 2차매수 - 1차매수 시점에서 2% 하락시 매수 : 매수금액 1000000원 3차매수 - 2차매수 시점에서 2% 하락시 매수 : 매수금액 2000000원 수익 실현 조건 1차 매수시 0.5%, 1.1%, 2.0% 분할 매도(or 3분봉 상 20일선 닿을 시 전량매도) - 매수 금액의 2:1:1의 비율 -이익보존율 80% 2차 매수시 0%, 0.5%, 1.1% 분할 매도(or 3분봉 상 20일선 닿을 시 전량매도)- 매수 금액의 2:1:1의 비율 -이익보존율 80% 3차 매수시 0%, 0.5% 분할 매도(or 3분봉 상 20일선 닿을 시 전량매도)- 매수 금액의 1:1 의 비율 -이익보존율 80% 손절 3차 매수 후 2% 추가 하락시 전량 매도 부탁드립니다. 추가내용 ----------- 3차 매수 후 2% 추가 하락시 전량 매도 된 종목은 그날 매매 하지 않는 수식으로 수정 부탁드립니다. input : 금액1(1000000),금액2(1000000),금액3(2000000); if CodeCategory == 1 Then { if BasePrice < 50000 Then { Var1 = int(int(금액1/C)/10)*10; Var2 = int(int(금액1/C)/10)*10; Var3 = int(int(금액1/C)/10)*10; } Else{ Var1 = int(금액1/C); Var2 = int(금액2/C); Var3 = int(금액3/C); } } if CodeCategory == 2 Then { Var1 = int(금액1/C); Var2 = int(금액2/C); Var3 = int(금액3/C); } if CodeCategory == 6 Then { Var1 = int(금액1/(C*BigPointValue)); Var2 = int(금액2/(C*BigPointValue)); Var3 = int(금액3/(C*BigPointValue)); } value1 = BollBandDown(20,2); if MarketPosition == 0 Then buy("b",Atlimit,value1*0.92,var1); if MarketPosition == 1 and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then{ buy("b2",atlimit,EntryPrice*0.98,var2); buy("b3",atlimit,EntryPrice*0.94,var3); } if MarketPosition == 1 Then{ if CrossDown(c,ma(c,20)) Then exitlong(); if CurrentEntries == 1 Then { if CurrentContracts == MaxContracts Then ExitLong("bx11",atlimit,EntryPrice*1.005,"",int(CurrentContracts*0.5),1); if CurrentContracts < MaxContracts Then ExitLong("bx12",atlimit,EntryPrice*1.011,"",int(CurrentContracts*0.25),1); if CurrentContracts < MaxContracts Then ExitLong("bx13",atlimit,EntryPrice*1.02,"",int(CurrentContracts*0.25),1); } if CurrentEntries == 2 Then { if CurrentContracts == MaxContracts and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then ExitLong("bx21",atlimit,EntryPrice,"",int(CurrentContracts*0.5),1); if CurrentContracts < MaxContracts and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 1 Then ExitLong("bx22",atlimit,EntryPrice*1.005,"",int(CurrentContracts*0.25),1); if CurrentContracts < MaxContracts and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 2 Then ExitLong("bx23",atlimit,EntryPrice*1.011); } if CurrentEntries == 3 Then { if CurrentContracts == MaxContracts Then ExitLong("bx31",atlimit,EntryPrice,"",int(CurrentContracts*0.5),1); if CurrentContracts < MaxContracts Then ExitLong("bx32",atlimit,EntryPrice*0.005); } if CurrentEntries == 3 Then exitlong("bxx",AtStop,EntryPrice*0.94); }
프로필 이미지
사과쥬스
2012-07-31
322
글번호 53395
시스템
답변완료

지표식 내용대로 강조식과 시스템식을 부탁드립니다.

안녕하세요.. 아래식은 지표식입니다. 이 지표식의 내용대로 강조식과 시스템식을 만들고 싶습니다. 1. 강조식 1값을 가질때 빨간색봉, -1값을 가질때 파란색봉을.. 0값일때는 회색봉으로 표현하고 싶습니다. 2. 시스템식 1값을 가질때 매수신호, -1값을 가질때 매도신호.. 청산신호는 없어도 됩니다. --------------------------------------------------------------- input : period(15),percent(3); var1 = highest(H,Period)[1]; var2 = lowest(L,period)[1]; if var1 < var2 * (1+percent/100) and C > Var1 and V[1] > 0 then Var3 = 1; Else Var3 = 0; if var1 < var2 * (1+percent/100) and C < Var2 and V[1] > 0 then Var4 = -1; Else Var4 = 0; Plot1(var3,"1"); Plot2(var4,"-1"); Plot3(0,"0");
프로필 이미지
회원
2012-07-31
331
글번호 53394
시스템
답변완료

수식작성 부탁드립니다.

챠트 : 옵션1분봉 (피라미딩 다른진입시만 허용) 07/30 일자 C245 챠트 아래와 같은 수식으로 각 진입명 별로 거래회수를 제한하고 싶은데 잘 안되네요... B01 은 2번, B02 는 3번 만 진입하도록 하고 싶습니다. 이전자료 찾아서 작성해 보았는데 잘 안되네요... 도와주세요... Inputs : In(1), Stval(0.1); Vars : cnt(0), B1cnt(0), B2cnt(0); if stime==090000 then value1=data1(close); if date<>date[1] then Begin cnt = 0; B1cnt = 0; B2cnt = 0; End; //for cnt = 0 to 20{ // if MarketPosition(cnt) == 1 and IsEntryName("B01",B1cnt) Then // B1cnt = B1cnt+1; // if MarketPosition(cnt) == 1 and IsEntryName("B02",B2cnt) Then // B2cnt = B2cnt+1; //} //Entry if stime>=090000 and stime<=150000 Then Begin if B1cnt <= 2 then begin buy("B01", AtStop, value1+0.01, In); B1cnt = B1cnt + 1; End; if B2cnt <= 3 then begin buy("B02", AtStop, value1+0.02, In); B2cnt = B2cnt + 1; End; End; SetStopContract; SetStopEndofday(151000); SetStopLoss(Stval,PointStop); print("D://tt.txt", "value1 %.2f cnt %.2f B1cnt %.2f B2cnt %.2f", value1, cnt, B1cnt, B2cnt);
프로필 이미지
회원
2012-07-31
307
글번호 53393
시스템
답변완료

문의드립니다.

당일 첫 진입 수익시 진입금지, 손실 시 물량을 계속 2배수 하여 당일누적수익이 플러스가 될 때까지 계속해서 재진입 시스템을 만들고 싶습니다. 수정 부탁드립니다. 예1) 첫 진입(1계약) 수익 매매 끝 예2) 첫 진입(1계약) 손실, 두 번째 진입(2계약)으로 손실 복구 및 수익 매매 끝 예3) 첫 진입(1계약) 손실, 두 번째 진입(2계약) 손실, 세 번째 진입(4계약) 손실..... 최대 5연패 시 매매 정지. Input : shortPeriod(5), longPeriod(20), 당일손익(1); var : PredayPL(0),XCommission(0),XSlippage(0),dayPL(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); #당일누적손익계산 시작 if date != date[1] Then PredayPL = NetProfit[1]; XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 if MarketPosition() == 0 Then dayPL = (NetProfit-PredayPL); Else dayPL = (NetProfit-PredayPL)+(PositionProfit-(XCommission+XSlippage)); # 매수/매도청산 If value1 > value2 and dayPL < 당일손익 Then { Buy(); } # 매도/매수청산 If value1 < value2 and dayPL < 당일손익 Then { Sell(); }
프로필 이미지
나로이
2012-07-31
340
글번호 53385
시스템
답변완료

안녕하세요

안녕하세요.반갑습니다 세가지 질문을 할까합니다 var1 = C-O;#몸통크기 value1 = accumn(var5,10); value2 = accumn(var15,20); if value1 > 0 and value2 > 0 and ma(c,1) > ma(c,2) Then Buy(); if value1 < 0 and value2 < 0 and ma(c,1) < ma(c,2) Then Sell(); 아래 1~3번 모두위의 식을 만족하면서 1.양봉(캔들)에서 macd osillater 양오실일때 매수 반대는 매도 신호 2.양봉(캔들)에서 macd 가 0선위에서 macd osillater양오실 매수 .반대는매도 신호를 받고자 합니다 3.stochastic slow(30.15.15) 시그널선위 매수 반대매도 감사합니다
프로필 이미지
회원
2012-07-31
322
글번호 53384
시스템
답변완료

자동매매시 실제 주문 가격은?

1. 자동매매시 종가에 신호가 발생 한다면 다음봉 시가에 주문 가격이 나가게 되는지요? 2. 만일 다음봉 시가가 신호가 발생한 봉의 종가보다 높거나 낮게 형성 될때 그 시가에 주문가격이 나가게 되는지요? 3. 아니면 신호가 발생한 봉의 종가의 가격에 주문가가 나가게 되는지요?
프로필 이미지
너무조아
2012-07-31
317
글번호 53383
시스템

황토가마 님에 의해서 삭제되었습니다.

프로필 이미지
황토가마
2012-07-31
73
글번호 53380
지표
답변완료

수식문의

날씨가 무덥습니다. 건강관리 잘 하시고, 항상 감사드립니다. ---------------------------------- 매수 : 지수이동평균선 1,2,3,4가 모두 정배열 상태일때 현재봉의 저가와 n봉의 볼린저밴드 하단선 가격의 차이가 n2 P 안에 들어올 때 무조건 매수 신호를 뿌려줌. 단, n봉의 볼린저밴드 하단선 가격이 지수이동평균선 n3값 보다 높을 때에만 매수신호를 뿌려줍니다. 매수청산 : 무조건 n틱 수익이 나면 이익 청산. 무조건 n2틱 손실이 나면 손절 청산. 매도 : 지수이동평균선 1,2,3,4가 모두 역배열 상태일때 현재봉의 고가와 n봉의 볼린저밴드 상단선 가격의 차이가 n2 P 안에 들어올 때 무조건 매도 신호를 뿌려줌. 단, n봉의 볼린저밴드 하단선 가격이 지수이동평균선 n3값 보다 낮을 때에만 매도신호를 뿌려줍니다. 매도 청산 : 무조건 n틱 수익이 나면 이익 청산. 무조건 n2틱 손실이 나면 손절 청산.
프로필 이미지
흑수돌
2012-07-31
231
글번호 53378
시스템
답변완료

수식 문의

아래는 기본 지표에 있는 '세븐바이너리지표'를 갭보정하여 매수,매도가 나올 수 있도록 시스템 수식으로 만든 것입니다. 아래 수식을 data2(같은 종목의 타주기)의 매수 매도 조건으로 하고 매수 :::: data1에서는 조건1 : 스토캐스틱슬로우 4-3-3이 침체권 20에서 탈출하는 순간. 또는 조건2 : 스토캐스틱슬로우 4-3-3이 %K선이 %D선을 골드 크로스 치는 순간. 조건3 : 단 침체권 안에서의 골드크로스와 기준선 n값 이상에서의 골드크로스는 인정하지 않음) 매수 하되 조건4 : data2의 신호가 매수일때에만 위의 매수신호가 유효한 것으로 처리 (조건 1,2가 발생한 이후에 조건4가 충족될 때는 신호를 발생시키지 않습니다.) 매수 청산 ::: 주가가 종가상 n봉 전의 price channel n2값 하단을 깨고 내려가면 청산. 또는 data2가 매도 조건이 뜨면 청산. 매도 :::: data1에서는 조건1 : 스토캐스틱슬로우 4-3-3이 과열권 80에서 탈출하는 순간. 또는 조건2 : 스토캐스틱슬로우 4-3-3이 %K선이 %D선을 데드 크로스 치는 순간. 조건3 : 단 과열권 안에서의 데드크로스와 기준선 n값 이하에서의 골드크로스는 인정하지 않음) 매도 하되 조건4 : data2의 신호가 매도일때에만 위의 매수신호가 유효한 것으로 처리 (조건 1,2가 발생한 이후에 조건4가 충족될 때는 신호를 발생시키지 않습니다.) 매도 청산 : 주가가 종가상 n봉 전의 price channel n2값 상단을 뚫고 올라가면 청산. 또는 data2가 매수 조건이 뜨면 청산. ================ 위의 수식의 모든 조건값을 직접 수정할 수 있도록 해주시기 바랍니다. 질문 : data2의 조건을 data1에 그대로 옮겨 와서 (마치 일봉의 이평을 분봉에 옮겨 오듯이) data2를 안 깔고 위의 매수매도 시그널을 뿌려줄 수는 없을까요? (data2는 3분. data1은 1분) --------아래 -------------- Input: shortPeriod(13), longPeriod(26), Period(6), maPeriod(13), ROCPeriod(9), stoPeriod1(10), stoPeriod2(6), CCIPeriod(9); input: P1(13),P2(26),P3(6); var: value(0),BW_SEVEN(0); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); if date!=date[1] then { // 날짜가 변경되는 봉에서 gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap; // 시가에서 갭누적값을 차감 GH = H - sumGap; // 고가에서 갭누적값을 차감 GL = L - sumGap; // 저가에서 갭누적값을 차감 GC = C - sumGap; // 종가에서 갭누적값을 차감 //문장1 : MACD가 MACD 시그널선 보다 큼 if ema(gC,shortPeriod)-ema(gC,longPeriod) >= ema(ema(gC,shortPeriod)-ema(gC,longPeriod),Period) then value = 1; else value = -1; //문장2 : 종가가 이동평균선보다 큼 if gC >= ma(gC, maPeriod) then value = value + 1; else value = value - 1; //문장3 : Price ROC가 0선보다 큼 if (gC - gC[ROCPeriod]) / gC[ROCPeriod] * 100 >= 0 then value = value + 1; else value = value - 1; //문장4 : StochasticsK선이 50선 보다 큼 if ema((gC-lowest(gL, stoPeriod1)) / (highest(gH, stoPeriod1) - lowest(gL, stoPeriod1)) * 100, stoPeriod2)>=50 then value = value + 1; else value = value - 1; Variables: Sum(0), CCIcount(0), MD(0), Avgvalue(0),CCIV(0); If CCIPeriod > 0 Then Begin Avgvalue = Ma(GH + gL + GC, CCIPeriod); MD = 0; For CCIcount = 0 To CCIPeriod - 1 Begin MD = MD + Abs(GH[CCIcount] + gL[CCIcount] + GC[CCIcount] - Avgvalue); End; MD = MD / CCIPeriod; If MD == 0 Then CCIv = 0; Else CCIv = (GH + gL + GC - Avgvalue) / (0.015 * MD); End Else CCIv = 0; //CCI가 0선 보다 큼 if CCIv > 0 then value = value + 1; else value = value - 1; //CO가 0선 보다 큼 if ema(accum(((gC -gL)-(gH- gC))/ (gH-gL)*V), 3) - ema(accum(((gC -gL)-(gH- gC))/(gH-gL)*V), 10) >=0 then value = value + 1; else value = value - 1; input : AF(0.02),AFMAX(0.2); Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(h), LowValue(l), EP(0),Sarv(0); if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gl < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = gl; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if gh > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = gh; } } Sarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gh > HighValue then { HighValue = gh; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if gl < LowValue then { LowValue = gl; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } Sarv = SAR_Value; } else { if Direction == 0 then { if gc > gc[1] then Direction = 1; else if gc < gc[1] then Direction = -1; } else { if Direction == 1 then { if gc < gc[1] then { Direction = -1; SAR_Value = HighValue; Sarv = SAR_Value; } } if Direction == -1 then { if gc > gc[1] then { Direction = 1; SAR_Value = LowValue; Sarv = SAR_Value; } } } LowValue = min(gl, LowValue); HighValue = max(gh, HighValue); } } //문장7 : 종가가 파라볼릭보다 큼 if Sarv < gC then value = value + 1; else value = value - 1; BW_SEVEN = value; var1 = ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2); var2 = ema(var1,P3); var3 = var1-var2; # 매수/매도청산 If CrossUp(value,1) Then { Buy(); } # 매도/매수청산 If CrossDown(value,-1) Then { Sell(); }
프로필 이미지
흑수돌
2012-07-31
373
글번호 53375
시스템