커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 부탁드립니다

안녕하세요. 아래의 키움수식 1 과 2를 각각의 종목검색 수식으로 변환 부탁드립니다. 감사합니다. ====================================================================== 수식1> AA=highest(V(1), p1); BB=crossup(V,AA*k); CC=highest(C(1), p1); DD=crossup(C, CC); EE=(highest(high(p2),p4)+lowest(low(p2),p4)+highest(high(p2),p5)+lowest(low(p2),p5))/4; FF=(highest(high(p2),p6)+lowest(low(p2),p6))/2; BB and DD and EE < C and FF < C ====================================================================== 수식2 > A=MFI(Period); (A(1) <= LPercent1 AND A >= LPercent1 AND C(1) <= C) OR (A(1) <= LPercent2 AND A >= LPercent2 AND C(1) <= C) OR (A(1) <= sPercent1 AND A >= sPercent1 AND C(1) <= C) OR (A(1) <= sPercent2 AND A >= sPercent2 AND C(1) <= C) =====================================================================
프로필 이미지
천지고원
2023-08-06
844
글번호 171252
종목검색

천지고원 님에 의해서 삭제되었습니다.

프로필 이미지
천지고원
2023-08-06
1
글번호 171251
종목검색
답변완료

문의드립니다

예를 들어 10분봉으로 if stime > 090000 and ~~~~ then buy(~~~~);(거래시간 바뀌기 전) 이런 식으로 식을 짜면 2번째 봉부터 거래가 가능한게 아니라 세번째 봉부터 거래가 가능하게 되는데 그 원리를 알고 싶습니다. 2번째 봉부터 거래가능 3번째 봉부터 거래가능 이런식으로 제한을 두려면 일반적으로 어떤 식으로 식을 짜는지도 알려주시면 감사하겠습니다. 질문2. 하단차트 data2 에서 당일 시가가 전일 종가보다 상승했다는 식하나만 부탁드립니다. dayopen~ 이런식으로 쓰면 전날것으로 인식되는것 같습니다.
프로필 이미지
시고르시고르
2023-08-06
656
글번호 171250
시스템
답변완료

문의드립니다.

폭염속에 수고 많으십니다. 5, 20이평 골든/데드 매매에서 청산식중 하나로 아래 내용을 적용하고 있습니다. if CountIf(C <= O,6) == 4 Then{ exitlong("B_5",OnClose,def,"",1,1); 그런데 문제가 진입봉부터 봉수를 계산하는 것이 아니라 진입전부터 계산해서 조건에 만족하면 청산되는 단점이 있습니다. BarsSinceEntry >= 0 <= 이 수식을 추가해도 안됩니다. 이부분 해결하는 청산식 부탁드립니다. 미리 감사드립니다~
프로필 이미지
카르마다
2023-08-06
1463
글번호 171249
시스템

hakona 님에 의해서 삭제되었습니다.

프로필 이미지
hakona
2023-08-07
21
글번호 171248
시스템
답변완료

추가 매수가 되지 않아요 수식 검토 부탁드리겠습니다.

아래수식으로 구현했는데 최초 1차 매수는 되는데.. 하락시 추가적인 매수가 진행되지 않습니다. 피라미딩도 모든 진입신호 허용 으로 했는데도 안되네요... 한번 체크 부탁드릴께요~~ 적용조건은 다음과 같습니다. 예스트레이드(예스스탁) 삼성전자 60분봉 매수조건 600이평 아래시 최초 매수 10주 최초 매수금액에서 -5%하락시 20주 매수 최초 매수금액에서 -10%하락시 30주 매수 최초 매수금액에서 -15%하락시 40주 매수 최초 매수금액에서 -20%하락시 50주 매수 최초 매수금액에서 -25%하락시 60주 매수 그리고 평균매수가의 1% 수익시마다 분할매도되는 수식입니다. input : p(600); var : XV(0),Vol(0),cond(False); var1 = ma(C,P); if MarketPosition == 0 and CrossDown(C,var1) Then { Buy("b1",OnClose,Def,10); Buy("b2.",AtLimit,C*0.95,20); Buy("b3.",AtLimit,C*0.9,30); Buy("b4.",AtLimit,C*0.85,40); Buy("b5.",AtLimit,C*0.8,50); Buy("b6.",AtLimit,C*0.75,60); } if MarketPosition == 1 Then { if lowest(L,BarsSinceEntry) > EntryPrice*0.95 Then Buy("b2",AtLimit,C*0.95,20); if lowest(L,BarsSinceEntry) > EntryPrice*0.9 Then Buy("b3",AtLimit,C*0.9,30); if lowest(L,BarsSinceEntry) > EntryPrice*0.85 Then Buy("b4",AtLimit,C*0.85,40); if lowest(L,BarsSinceEntry) > EntryPrice*0.8 Then Buy("b5",AtLimit,C*0.8,50); if lowest(L,BarsSinceEntry) > EntryPrice*0.75 Then Buy("b6",AtLimit,C*0.75,60); if CurrentContracts > CurrentContracts[1] Then { XV = CurrentContracts; cond = False; } if C >= AvgEntryPrice*(1+1.01) and sTime == 110000 Then { if XV >= 100 Then vol = Floor(XV*0.01); # 계약수가 100개 이상일때 1% 분할매도 else if XV < 100 and XV >= 50 Then vol = Floor(XV*0.02); # 계약수가 50개~100 일때 2% 분할매도 else if XV < 50 and XV >= 20 Then vol = Floor(XV*0.05); # 계약수가 20개~50 일때 5% 분할매도 else if XV < 20 and XV >= 10 Then vol = Floor(XV*0.10); # 계약수가 10개~20 일때 10% 분할매도 Else vol = Floor(XV*0.50); # 계약수가 10개이하 일때 50% 분할매도 ExitLong("bx",OnClose,Def,"",vol,2); } } Else cond = False; ---------------------------------------------------------------------------- 500이평선 하락시 하락퍼센트마다 진입 버전 2023.09.01 # 하락시 분할매수 전략 // 분할매도 input : 시작일(20230901); input : p(500); input : 수익퍼센트(10); var : XV(0),Vol(0),cond(False); var1 = ma(C,P); if Data1(sDate) >= 시작일 Then { if MarketPosition == 0 and CrossDown(C,var1) Then { Buy("b1",OnClose,Def,10); Buy("b2.",AtLimit,C*0.95,20); Buy("b3.",AtLimit,C*0.9,30); Buy("b4.",AtLimit,C*0.85,40); Buy("b5.",AtLimit,C*0.8,50); Buy("b6.",AtLimit,C*0.75,60); } if MarketPosition == 1 Then { if lowest(L,BarsSinceEntry) > EntryPrice*0.97 Then Buy("b2",AtLimit,EntryPrice*0.97,15); if lowest(L,BarsSinceEntry) > EntryPrice*0.94 Then Buy("b3",AtLimit,EntryPrice*0.94,20); if lowest(L,BarsSinceEntry) > EntryPrice*0.91 Then Buy("b4",AtLimit,EntryPrice*0.91,25); if lowest(L,BarsSinceEntry) > EntryPrice*0.88 Then Buy("b5",AtLimit,EntryPrice*0.88,30); if lowest(L,BarsSinceEntry) > EntryPrice*0.85 Then Buy("b6",AtLimit,EntryPrice*0.85,35); if lowest(L,BarsSinceEntry) > EntryPrice*0.82 Then Buy("b7",AtLimit,EntryPrice*0.82,40); if lowest(L,BarsSinceEntry) > EntryPrice*0.79 Then Buy("b8",AtLimit,EntryPrice*0.79,45); if lowest(L,BarsSinceEntry) > EntryPrice*0.76 Then Buy("b9",AtLimit,EntryPrice*0.76,50); if lowest(L,BarsSinceEntry) > EntryPrice*0.73 Then Buy("b10",AtLimit,EntryPrice*0.73,55); if lowest(L,BarsSinceEntry) > EntryPrice*0.7 Then Buy("b11",AtLimit,EntryPrice*0.7,60); if lowest(L,BarsSinceEntry) > EntryPrice*0.67 Then Buy("b12",AtLimit,EntryPrice*0.67,65); if lowest(L,BarsSinceEntry) > EntryPrice*0.64 Then Buy("b13",AtLimit,EntryPrice*0.64,70); if lowest(L,BarsSinceEntry) > EntryPrice*0.61 Then Buy("b14",AtLimit,EntryPrice*0.61,75); if lowest(L,BarsSinceEntry) > EntryPrice*0.58 Then Buy("b15",AtLimit,EntryPrice*0.58,80); if lowest(L,BarsSinceEntry) > EntryPrice*0.55 Then Buy("b16",AtLimit,EntryPrice*0.55,85); if lowest(L,BarsSinceEntry) > EntryPrice*0.50 Then Buy("b17",AtLimit,EntryPrice*0.50,90); if lowest(L,BarsSinceEntry) > EntryPrice*0.45 Then Buy("b18",AtLimit,EntryPrice*0.45,100); if lowest(L,BarsSinceEntry) > EntryPrice*0.4 Then Buy("b19",AtLimit,EntryPrice*0.4,110); if lowest(L,BarsSinceEntry) > EntryPrice*0.35 Then Buy("b20",AtLimit,EntryPrice*0.35,120); if lowest(L,BarsSinceEntry) > EntryPrice*0.3 Then Buy("b21",AtLimit,EntryPrice*0.3,130); if lowest(L,BarsSinceEntry) > EntryPrice*0.25 Then Buy("b22",AtLimit,EntryPrice*0.25,140); if lowest(L,BarsSinceEntry) > EntryPrice*0.2 Then Buy("b23",AtLimit,EntryPrice*0.2,150); if lowest(L,BarsSinceEntry) > EntryPrice*0.15 Then Buy("b24",AtLimit,EntryPrice*0.15,160); if lowest(L,BarsSinceEntry) > EntryPrice*0.1 Then Buy("b25",AtLimit,EntryPrice*0.1,170); if lowest(L,BarsSinceEntry) > EntryPrice*0.05 Then Buy("b26",AtLimit,EntryPrice*0.05,180); if CurrentContracts > CurrentContracts[1] Then { XV = CurrentContracts; cond = False; } } if C >= AvgEntryPrice*(1+수익퍼센트*0.01) and sTime == 110000 Then { if XV >= 100 Then vol = Floor(XV*0.01); # 계약수가 100개 이상일때 1% 분할매도 else if XV < 100 and XV >= 50 Then vol = Floor(XV*0.02); # 계약수가 50개~100 일때 2% 분할매도 else if XV < 50 and XV >= 20 Then vol = Floor(XV*0.05); # 계약수가 20개~50 일때 5% 분할매도 else if XV < 20 and XV >= 10 Then vol = Floor(XV*0.10); # 계약수가 10개~20 일때 10% 분할매도 Else vol = Floor(XV*0.50); # 계약수가 10개이하 일때 50% 분할매도 ExitLong("bx",OnClose,Def,"",vol,2); } } Else cond = False;
프로필 이미지
이형지
2023-09-24
851
글번호 171247
시스템
답변완료

부탁드립니다

1. 기본차트 콜 종가가 보조차트의 당월물 풋 최고가와 같거나 그 이상이면 기본차트에 빨강색으로, 보조차트 풋 종가가 기본차트 당월물 콜 최고가와 같거나 그 이상이면 기본차트에 파란색으로 구현해 주세요 2, 당일 보조차트 풋의 현재가가 기본차트 콜의 최고가 이상으로 올랐다가 그 이하로 하락하면 그때 파란색으로 구현해 주세요 3. 당일 보조차트 풋의 현재가가 기본차트 콜의 최저가 이하로 하락하면 빨강색으로 구현해 주세요 4. 당일 보조차트가 시가 이상이면서 2.0 이상이면 빨강색으로 3.0 까지만 표시되게, 당일 시가 이하이면서 2.0 이하이면 파란색으로 1.0 까지만 기본차트에 각 표시되게 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2023-08-06
1010
글번호 171246
강조

hakona 님에 의해서 삭제되었습니다.

프로필 이미지
hakona
2023-08-07
40
글번호 171245
지표
답변완료

질문 드립니다.

현재 종가에만 원하는 지표를 기록해서 쓰고있습니다. 1. 종가만 사용해서 종목 6개를 사용하는 경우 2. 종가와 , 종가 아래 항목들 다섯개에 제가 원하는 지표를 임의로 기록해서 쓰는 경우 cpu 측면에서 2번이 1번대비 5~6배 유리한지 궁금합니다. 그리고 종가는 c , 미결은 interest 인건 아는데 종가 아래 나머지 항목들을 불러 쓰는 단축어 궁금합니다. 감사합니다.
프로필 이미지
캣피쉬
2023-08-06
814
글번호 171244
시스템

chancebo 님에 의해서 삭제되었습니다.

프로필 이미지
chancebo
2023-08-05
1
글번호 171243
사용자 함수