커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식에서 기존 보유 수량을 반영이 가능할까요?

국내 주식 예스트레이드(하이투자증권) 적용 모든 수식이 매수 후 매도 가 로직인데... 기존 보유 주식이 있는 것도 반영이 되려면 어떻게 하면 될까요? 예를 들어 RSI(14)< 30 일때 분할 매수 100개 RSI(14)> 80 일때 분할 매도 100개 이런 수식에서 기존 보유 수량이 100개 있을때 기존 보유 수량 100개 RSI(14)< 30 일때 분할 매수 100개 RSI(14)> 80 일때 분할 매도 200개 아래 수식은 현재 사용하고 있는 수식입니다. 기존 사용 수식에 보유주식 1000개 있는 상태에서 반영될수 있게 수식 수정 부탁드릴께요 input : 시작일(20200101); input : 최대투자금액(2000); input : 기준평균봉값(80); input : 최초진입하락폭(0.97); input : 추가진입하락폭(0.99); input : MFI기간(15),MFI값(86); input : 심리도기간(15),심리도값(80); input : 분할매도횟수(4); input : 분할매도율(2); input : 제1매수금액(10); input : 제2매수금액(20); input : 제3매수금액(30); input : 제4매수금액(40); input : 제5매수금액(50); input : 제6매수금액(60); input : 제7매수금액(70); input : 제8매수금액(80); input : 제9매수금액(90); input : 제10매수금액(100); input : 제11매수금액(120); input : 제12매수금액(140); input : 제13매수금액(160); input : 제14매수금액(180); input : 제15매수금액(200); input : 제16매수금액(200); input : 제17매수금액(200); input : 제18매수금액(200); input : 제19매수금액(200); input : 제20매수금액(200); input : 제21매수금액(200); input : 제22매수금액(200); input : 제23매수금액(200); input : 제24매수금액(200); input : 제25매수금액(200); input : 제26매수금액(250); input : 제27매수금액(250); input : 제28매수금액(250); var : Xcond(False,data1); var : mav(0,data2),MM(0,Data3),SS(0,Data3); var : MMM(0,Data2),SSS(0,Data2),Xcnt(0,Data2),Xvol(0,data1); mav = data2(ma(c,기준평균봉값)); MM = Data3(mfi(MFI기간)); SS = Data3(Simrido(심리도기간)); MMM = Data2(mfi(MFI기간)); SSS = Data2(Simrido(심리도기간)); if Data1(sDate) >= 시작일 Then { If AvgEntryPrice*CurrentContracts < 최대투자금액*10000 Then { if MarketPosition == 0 and (MarketPosition == 0 or (MarketPosition == 1 and Xcond == False)) and data2(CrossDown(c,mav*최초진입하락폭)) then buy("b1",atlimit,C,Floor(제1매수금액*10000/min(NextBarOpen,C))); if MarketPosition == 1 then { if MaxEntries == 1 then # 85 buy("b2",AtLimit,LatestEntryPrice(0)*추가진입하락폭,Floor(제2매수금액*10000/c)); if MaxEntries == 2 then # 80 buy("b3",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.01),Floor(제3매수금액*10000/c)); if MaxEntries == 3 then # 75 buy("b4",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.015),Floor(제4매수금액*10000/c)); if MaxEntries == 4 then # 70 buy("b5",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.02),Floor(제5매수금액*10000/c)); if MaxEntries == 5 then # 65 buy("b6",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.025),Floor(제6매수금액*10000/c)); if MaxEntries == 6 then # 85 buy("b7",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.03),Floor(제7매수금액*10000/c)); if MaxEntries == 7 then # 80 buy("b8",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.035),Floor(제8매수금액*10000/c)); if MaxEntries == 8 then # 75 buy("b9",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.04),Floor(제9매수금액*10000/c)); if MaxEntries == 9 then # 70 buy("b10",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.045),Floor(제10매수금액*10000/c)); if MaxEntries == 10 then # 65 buy("b11",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.05),Floor(제11매수금액*10000/c)); if MaxEntries == 11 then # 80 buy("b12",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.055),Floor(제12매수금액*10000/c)); if MaxEntries == 12 then # 75 buy("b13",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.06),Floor(제13매수금액*10000/c)); if MaxEntries == 13 then # 70 buy("b14",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.065),Floor(제14매수금액*10000/c)); if MaxEntries == 14 then # 65 buy("b15",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.07),Floor(제15매수금액*10000/c)); if MaxEntries == 15 then # 80 buy("b16",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.075),Floor(제16매수금액*10000/c)); if MaxEntries == 16 then # 75 buy("b17",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.08),Floor(제17매수금액*10000/c)); if MaxEntries == 17 then # 70 buy("b18",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.085),Floor(제18매수금액*10000/c)); if MaxEntries == 18 then # 65 buy("b19",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.09),Floor(제19매수금액*10000/c)); if MaxEntries == 19 then # 85 buy("b20",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.095),Floor(제20매수금액*10000/c)); if MaxEntries == 20 then # 80 buy("b21",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.1),Floor(제21매수금액*10000/c)); if MaxEntries == 21 then # 75 buy("b22",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.105),Floor(제22매수금액*10000/c)); if MaxEntries == 22 then # 70 buy("b23",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.11),Floor(제23매수금액*10000/c)); if MaxEntries == 23 then # 65 buy("b24",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.115),Floor(제24매수금액*10000/c)); if MaxEntries == 24 then # 80 buy("b25",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.12),Floor(제25매수금액*10000/c)); if MaxEntries == 25 then # 75 buy("b26",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.125),Floor(제26매수금액*10000/c)); if MaxEntries == 26 then # 70 buy("b27",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.13),Floor(제27매수금액*10000/c)); if MaxEntries == 27 then # 65 buy("b28",AtLimit,LatestEntryPrice(0)*(추가진입하락폭-0.135),Floor(제28매수금액*10000/c)); } } } #================================================================================================== if MarketPosition == 1 Then { if Xcond == False and MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 Then { Xcond = true; Xcnt = 0; } if Xcond == true Then { Xcnt = Xcnt+1; if Xcnt < 분할매도횟수 then Xvol = MaxContracts*분할매도율/100 ; Else Xvol = CurrentContracts; ExitLong("bx",OnClose,DEf,"",Xvol,2); } } Else { Xcnt = 0; Xcond = False; }
프로필 이미지
이형지
2020-11-12
573
글번호 143838
시스템
답변완료

문의드립니다

var1 = dayhigh; var2 = daylow; var3 = var1-var2; plot1(var1-var3*0.236); plo2(var1-var3*0.500); plot3(var1-var3*0.764); 위수식으로 전일 고점부터 아래로피보나치 전일 저점으로부터 위로 피보나치 를 부탁드립니다 2가지를부탁드립니다~~미리감사드립니다
프로필 이미지
유선
2020-11-12
468
글번호 143835
지표
답변완료

수식 부탁드립니다

안녕하세요 현재가격이 10000원 이상이 되면 시장가 매수 1봉전 60분봉 20일선 이하로 내려가면 시장가 매도
프로필 이미지
부산사람
2020-11-12
412
글번호 143834
시스템

억수로 님에 의해서 삭제되었습니다.

프로필 이미지
억수로
2020-11-12
42
글번호 143833
지표
답변완료

문의

최근 100봉 중 MACD골든크로스가 0선 아래에서 N번 발생했다고 했을 때 가장 최근에 발생한 골든크로스 지점 (현재 봉)과 N개 중 가장 낮은 골든크로스 지점이 몇 개 봉 전인지 구하고 싶습니다. 그리고 최근 100봉 동안 MACD시그널선은 0선 아래에 있어야 합니다.
프로필 이미지
슈트
2020-11-12
460
글번호 143832
시스템
답변완료

[69863] 질문에 재질문 드립니다.

주식시장에서 틱차트의 봉패턴으로 시스템트레이딩을 만들려고 합니다. 틱차트 기준으로 특정패턴 만족시 자동검색되어서 자동주문까지 나가는 시스템은 불가능한 건가요.. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : [5034]양음양 일봉기준을 80틱 기준으로 하려면 어떻게 해야하는지요 > 안녕하세요 예스스탁입니다. 해당 수식은 수식 자체에 주기를 지정하는 부분이 없습니다. 종목검색 창에서 주기를 지정해 검색하시면 되는데 종목검색은 분봉이상만 지원해서 틱봉으로 검색을 하실수 없습니다. 즐거운 하루되세요
프로필 이미지
플로어
2020-11-11
536
글번호 143831
검색
답변완료

수식문의

Var:주(2),n(19),j(0),k(0),계산주기(0),X(0),sumXY(0),sumX(0),sumY(0),sumX²(0), MinLRS(0),MinB(0),MinLRL(0); Array:MinClose[100](0); if 주 >= BarInterval then { 계산주기 = 주/BarInterval; } k = k + 1; if DayIndex()%계산주기 == 0 then { for j = 98 downto 0 { MinClose[j+1] = MinClose[j]; } X = X + 1; k = 0; } MinClose[0] = (L+H)/2; sumXY = 0; sumX = 0; sumY = 0; sumX² = 0; For j = 0 To n-1 { sumXY = sumXY + (X-j)*MinClose[j]; sumX = sumX + (X-j); sumY = sumY + MinClose[j]; sumX²= sumX²+ (X-j)^2; } MinLRS = (n*sumXY - sumX*sumY)/(n*sumX²- sumX^2); MinB = (sumY*sumX²-sumX*sumXY)/(n*sumX²- sumX^2); MinLRL = MinLRS * X + MinB; //////////////////////////////////////////////////////// // 타주기를 쓰지 않고 일봉에서 주봉과 월봉의 MinLRL과 MinLRS 값을 각각 가져올수 있을까요?
프로필 이미지
까시서방
2020-11-11
548
글번호 143830
지표
답변완료

문의 드립니다.

특정 신호가 발생하면 1계약을 들어가고 거기서 정한 만큼 수익이 발생하면 익절하고 손실이 발생하면 계약이 2배씩 더 들어가서 정한만큼 이익이 발생하면 익절하는 전략입니다. positionprofit을 사용하지않고 코드를 짜는 방법이 있을까요?
프로필 이미지
qwer1234
2020-11-12
647
글번호 143829
시스템
답변완료

수정 부탁드립니다.

안녕하세요? 기존수식을 바꾸고싶어서 수정해봤는데, 잘 안되서 수정부탁드립니다. 조금 바꿔보았지만, 의도하는바와 다르게 정배열에서 매도, 역배열에서 매수 그리고 양봉에매도 음봉에 매도가 일어나고있습니다. 의도하는것을 적어보겠습니다. ** 진입 정배열 일때, 음봉(외부변수)다음 양봉(입력값 이상)에 매수 역배열 일때, 양봉(외부변수)다음 음봉(입력값 이상)에 매도 각 봉은 다외부변수이고 진입하는 봉은 외부변수로 정하는것보다 이상일시에만 진입. 부탁드립니다. 감사합니다. input : 양봉(5),진입음봉(5),음봉(5),진입양봉(5),p1(5),p2(20); input : entrycnt(3),profit(50),loss(50); var : entry(0); var1 = ma(c,p1); var2 = ma(c,p2); 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 entry < entrycnt and var1 < Var2 and MarketPosition == 0 and C == O-음봉*PriceScale and C[1] == O[1]+진입양봉*PriceScale then buy(); if entry < entrycnt and var1 > Var2 and MarketPosition == 0 and C == O+양봉*PriceScale and C[1] == O[1]-진입음봉*PriceScale then sell(); SetStopProfittarget(PriceScale*profit,PointStop); SetStopLoss(PriceScale*loss,PointStop);
프로필 이미지
대구어린울프
2020-11-11
652
글번호 143824
시스템
답변완료

틱봉에 마디선 표시

안녕하세요 일교차가 심합니다. 건강관리 잘 하시길 바랍니다. 오늘 여쭤볼 말씀은 틱 챠트에서(예:300틱 - 수치는 변환될수 있슴) 장 시작이 되면 300틱 챠트에서 상방일경우 이전봉의 고가를 넘기지 못하거나 아니면 같을경우 최초 시작봉에서 지금봉의 고점까지 마디의 4등분선을 표시하고 다음도 마찬가지로 넘기지 못한 고점부터 직전 틱봉의 저점을 깨거나 같으면 거기 다시 4등분표기 하는것들이 계속 이어지는 모습을 말합니다. 설명하기가 조금 어려운데 첨부파일 확인하시고 궁금하시면 연락부탁 드립니다.
프로필 이미지
라몬
2020-11-11
854
글번호 143823
지표