커뮤니티

예스랭귀지 Q&A

글쓰기

손느린주식 님에 의해서 삭제되었습니다.

프로필 이미지
손느린주식
2023-10-02
0
글번호 172826
검색
답변완료

사용자함수를 안쓰고 파일안에서만 사용하는 루틴

종목검색에서 if 구절마다 반복되는 루틴을 함수화 하고 싶습니다. 사용자함수는 여러파일에 걸쳐서 사용하기에 알맞지 다른 파일에서는 사용안하지만 코드의 간결화, 오류방지를 위해서 단일파일안에서 여러번 반복하는 항목들을 함수선언하고 싶은데 방법이 있을까요?
프로필 이미지
코타
2023-10-02
831
글번호 172825
종목검색
답변완료

과거 특정 시점 가격 돌파시 매수

항상 친절한 답변 감사드립니다. 다음 전략 수식 부탁드립니다. 1. 과거 어떤날 시가대비 종가가 20%상승하고, 2. 같은날 거래대금이 1000억원이 발생하고 이후 하락했을 때 3. 그날의 종가를 돌파하는 시점에서 매수하고, 4. 그날 종가보다 10% 높은 가격에서 수익실현하며 5. 그날 종가보다 -5%하향할 때 손절하는 전략 기준은 일봉으로 진입, 청산은 분봉으로하고자 합니다.
프로필 이미지
소총부대
2023-10-02
791
글번호 172824
시스템
답변완료

키움서 쓰던 수식인데 변환 부탁 드립니다.

적응이 쉽지가 않네요.. ㅠ.ㅠ 밸브웬의 월2[1] 여기서 막혔습니다. 도와주세요ㅎㅎ 월2=floor(date/100); 전체2=sum(c); 총거래일수2=countsince(월2!=월2(1),c>0); 거래일2=전체2-valuewhen(1,월2!=월2(1),전체2(1)); 월종=거래일2/총거래일수2 결과 = (월시+월종)/2 결과
프로필 이미지
올드송
2023-10-02
814
글번호 172823
지표
답변완료

봉의 중간값보다 높은거나 낮은값 문의

안녕하세요. 현재 봉의 최고점과 최저점 사이의 중간값보다 약간 높거나 낮을 경우 진입하려는데요. C > (H + L)/2 로 하면 현재봉의 중간값보다 높을경우로 이해하고 있습니다. 그런데 중간값보다 약간 더 높거나 낮을경우, 예를 들어 /2가 아닌 /1.5 나 /2.5 로 할경우 수식이 제대로 된 값으로 인식을 못하는것 같습니다. 정확히는 /2 이하 /1.9로 해도 전혀 시스템트레이드상에서 전혀 진입을 안하고, /2이상 /2.1이상부터는 현재값이 그 값보다 낮은경우에도 무조건 진입하게 됩니다. 확인 부탁드립니다.
프로필 이미지
페리도트
2023-10-02
833
글번호 172822
시스템
답변완료

키움수식 변환 부탁드립니다.

지수평균((highest(종가,(기간/2))+highest(종가,기간))/2,기간)+ if(종가>시가,1-(abs(종가-시가)/abs(highest((종가- 시가),기간))),1)*D1*stdev((저가+고가+종가)/3,기간);
프로필 이미지
gunbike
2023-10-02
878
글번호 172821
시스템
답변완료

지표수식요청

아래의 4가지 함수를 사용자함수에 등록하려합니다 예스랭귀지로 변환 부탁드립니다^^ 요일(DATE)함수 M=floor(D/100)%100; YY=if((M+1-1) == 1 or (M+1-1) == 2, floor(D/10000)-1, floor(D/10000)); YA=floor(YY/100); YB=YY%100; MM=if((M+1-1) ==1, 13, if((M+1-1) == 2, 14, M)); DD=D%100; A=(DD+floor(13*(MM+1)/5) + YB + floor(YB/4) + floor(YA/4) + YA*5)%7; if(A==0,6,A-1) 이전주고가(N)함수 A=요일(DATE); HH=HIGHESTSINCE(1, A(1)>A && DATE != DATE(1) , H); Valuewhen(n, A(1)>A && DATE != DATE(1), HH(1)); 이전주누적거래량(N) S=SUM(V); A=요일(DATE); B=Valuewhen(n, A(1)>A && DATE != DATE(1), S(1)); B1=Valuewhen(n+1, A(1)>A && DATE != DATE(1), S(1)); B-B1 주0봉누적거래량() S=SUM(V); A=요일(DATE); B=Valuewhen(1, A(1)>A && DATE != DATE(1), S(1)); S-B 감사합니다
프로필 이미지
트라이
2023-10-01
1067
글번호 172820
사용자 함수
답변완료

틱봉에서 30분봉 점찍기좀 부탁 드립니다

* 좋은 한주 되십시요. * 30분 분봉 crossup , crossdown시 차트에 점찍기(●) 요청 드립니다. 단 틱봉 사용 예정 입니다. 즉 틱 봉을 사용 하는데 30분봉 이평선(ma(c,30))이 ma(c,5) 와크로스 되거나 다운되면 점찍기를 요청 드립니다. 틱봉은 몇 틱봉을 사용 해야할지 아무리 찾아봐도 잘 모르겠습니다. 30분봉 점찍기 적당한 틱봉(또는 비슷) 계산해 주시면 사용 하겠습니다. 즉 매매시 30분봉 크로스업 다운이 중요한 변화라서 필요 합니다. 분봉을 틱봉에 점찍기 안되는 건가요? * 항상 많은 도움에 고맙습니다. 수고하십시요.
프로필 이미지
요타
2023-10-04
951
글번호 172819
지표
답변완료

업비트에서는 결과가 나오는데 동일전략이 다른 상품에서는 나오지 않습니다.

동일한 전략을 btckrw에서는 잘 적용이 되나 btc 마켓 종목에서는 적용이 되지 않습니다. 또한 아래 수식이 계산이 많이 들어가는 느낌이 드는데... 최적화할때에도 결과들이 누락되고 그래서... 속도를 더 빠르게 할 수 있는 코드로 수정이 가능할까요?? Input:maperiod(144),profittarget(0.8),stloss(15),water1(1),pleng(100),natrs(3),capital(1),trendscore(1.5); var : cont(0),mascoring(0); //추세판정 if ma(c,maperiod*7)>ma(c,maperiod*7)[maperiod*7] Then Value1=1; Else value1=-1; if ma(c,maperiod*5)>ma(c,maperiod*5)[maperiod*5] Then Value2=0.5; Else Value2=-0.5; if ma(c,maperiod*3)>ma(c,maperiod*3)[maperiod*3] Then Value3=0.25; Else Value3=-0.25; if ma(c,maperiod*2)>ma(c,maperiod*2)[maperiod*2] Then Value4=0.125; Else Value4=-0.125; if ma(c,maperiod*1)>ma(c,maperiod*1)[maperiod*1] Then Value5=0.0625; Else value5=-0.0625; Value10= value1+value2+value3+value4+value5; value11 = ATR( pLeng ) * nAtrs ; cont=(capital*0.01)/c; if marketposition==0 and Value10 >= trendscore and CrossDown(c,BollBandDown(60,2)) Then Begin Buy("매수",AtMarket,def,cont); End; if MarketPosition == 1 and MaxEntries == 1 Then Buy("mt1",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*2); if MarketPosition == 1 and MaxEntries == 2 Then Buy("mt2",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*4); if MarketPosition == 1 and MaxEntries == 3 Then Buy("mt3",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*8); if MarketPosition == 1 and MaxEntries == 4 Then Buy("mt4",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*16); if MarketPosition == 1 and MaxEntries == 5 Then Buy("mt5",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*32); if MarketPosition == 1 and MaxEntries == 6 Then Buy("mt6",AtLimit,LatestEntryPrice(0)*(1-water1*0.01),cont*64); if MarketPosition==1 and (OpenPositionProfit/CurrentContracts)/AvgEntryPrice >= profittarget*0.01 Then Begin ExitLong("매수청산",AtMarket); End;
프로필 이미지
예스모어
2023-10-01
1189
글번호 172818
시스템

트라이 님에 의해서 삭제되었습니다.

프로필 이미지
트라이
2023-10-01
4
글번호 172817
종목검색