커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식문의

수고하십니다~~ 틱 챠트로 매매하고 있습니다. 실시간에서 받은 데이타와 재조회시에 받은 데이타가 달라서 수신받은 데이타가 누락이 있어 발생하는 경우가 많습니다. 이문제를 해결하고 싶습니다. 기존 수식으로 매매중 포지션 없을 때 또는 일정시간마다 자동으로 챠트를 새로고침하는 수식 가능할까요? 새로고침은 수동으로만 가능한 건가요?
프로필 이미지
저은아빠
2022-07-11
1436
글번호 160663
시스템
답변완료

시스템식 문의 드립니다.

예전에 시스템식을 작성요청드려서 작성되었던 시스템식입니다. 그런데 일부 이상한 부분이 있어 혼자선 수정이 불가하여 요청드립니다. 문제점 1. 3%,4%,5%,7%,10% 차례대로 분할매도청산 식에서 평단가가 3%가 되었을때 매도를 안하다가 4% 가 되면 4%로 매도되고 주가가 떨어지면서 3%가 매도가 됩니다. 결과론적으로 condition2 가 매도가 되어야 condition1 이 시스템식이 적용됩니다. 문제점 2. 위의 그림파일을 보시다시피 3%,4%,5%,7%,10% 차례대로 분할매도청산 되는 부분에서 성능보고서와 같이 매도가 되었는데, 실제 차트로는 10%까지 분할 매도 되어야 하는데 왜 안되는건지 이상합니다. 위 그림파일중에 엑셀파일을 보시면 아시겠지만 65주 중에서 해당비중으로 매도가 되어야 하는데 왜 성능보고서 처럼 적용되는지 확인 부탁드리겠습니다. ㅜ.ㅜ 참고로 타점이 A1 타점만 적용되었다면 제대로 적용되는데, 분할매수되면 꼬이는것 같습니다. ------------------------------------------------------------------ input : 고점(7000); input : 원금(1000000); var : A1(0),A2(0),A3(0),A4(0),A5(0), 손절(0); Var : day(0),EntryDay(0),entry(False),dd(0),ED(0); A1 = 고점*0.95; A2 = 고점*0.93; A3 = 고점*0.91; A4 = 고점*0.89; A5 = 고점*0.87; 손절 = 고점*0.85; if Bdate != Bdate[1] Then { Condition1 = False; entry = true; day = day+1; dd = dd+1; } if TotalTrades > TotalTrades[1] Then entry = False; if DAYClose(1) >= DayClose(2)*1.29 OR DAYClose(2) >= DayClose(3)*1.29 OR DAYClose(3) >= DayClose(4)*1.29 OR DAYClose(4) >= DayClose(5)*1.29 OR DAYClose(5) >= DayClose(6)*1.29 OR DAYClose(6) >= DayClose(7)*1.29 Then Condition1 = TRUE; if condition1 == true AND MarketPosition == 0 and entry == true and c > J1 Then Buy("A매수",AtLimit,J1,Floor((원금*0.2)/A1)); if condition1 == true and entry == true and LatestExitName(1) != "손절" AND ((LatestEntryName(0) == "A매수") OR (MarketPosition == 0 AND C < J1 AND C >= J2)) Then Buy("B매수",AtLimit,J2,Floor((원금*0.2)/A2)); if condition1 == true and entry == true and LatestExitName(1) != "손절" AND ((LatestEntryName(0) == "B매수") OR (MarketPosition == 0 AND C < J2 AND C >= J3)) Then Buy("C매수",AtLimit,J3,Floor((원금*0.2)/A3)); if condition1 == true and entry == true and LatestExitName(1) != "손절" AND ((LatestEntryName(0) == "C매수") OR (MarketPosition == 0 AND C < J3 AND C >= J4)) Then Buy("D매수",AtLimit,J4,Floor((원금*0.2)/A4)); if condition1 == true and entry == true and LatestExitName(1) != "손절" AND ((LatestEntryName(0) == "D매수") OR (MarketPosition == 0 AND C < J4 AND C >= J5)) Then Buy("E매수",AtLimit,J5,Floor((원금*0.2)/A5)); #매수진입 if MarketPosition == 1 Then { #전봉대비 수량 감소(일부 청산발생을 위미) if CurrentContracts < CurrentContracts[1] Then { #청산가 저장 var1 = LatestExitPrice(0); Condition1 = False; Condition2 = False; Condition3 = False; Condition4 = False; Condition5 = False; } #전봉대비 수량 증가(추가 진입발생을 의미) if CurrentContracts > CurrentContracts[1] Then { #현재수량 저장 Var3 = CurrentContracts; Condition1 = False; Condition2 = False; Condition3 = False; Condition4 = False; Condition5 = False; } if var1 > 0 and C < AvgEntryPrice then ExitLong("bx"); if Condition1 == False AND ((LatestEntryName(0) == "A매수") OR (LatestEntryName(0) == "B매수") or (LatestEntryName(0) == "C매수"))Then ExitLong("3%익절",AtLimit,AvgEntryPrice*1.03,"",Floor(Var3*0.4),1); if Condition2 == False AND ((LatestEntryName(0) == "A매수") OR (LatestEntryName(0) == "B매수") or (LatestEntryName(0) == "C매수")) Then ExitLong("4%익절",AtLimit,AvgEntryPrice*1.04,"",Floor(Var3*0.3),1); if Condition3 == False AND ((LatestEntryName(0) == "A매수") OR (LatestEntryName(0) == "B매수") or (LatestEntryName(0) == "C매수")) Then ExitLong("5%익절",AtLimit,AvgEntryPrice*1.05,"",Floor(Var3*0.1),1); if Condition4 == False AND ((LatestEntryName(0) == "A매수") OR (LatestEntryName(0) == "B매수") or (LatestEntryName(0) == "C매수")) Then ExitLong("7%익절",AtLimit,AvgEntryPrice*1.07,"",Floor(Var3*0.1),1); ExitLong("10%익절",AtLimit,AvgEntryPrice*1.10); if Condition1 == False AND ((LatestEntryName(0) == "D매수"))Then ExitLong("1-D%익절",AtLimit,AvgEntryPrice*1.01,"",Floor(Var3*0.3),1); if Condition2 == False AND ((LatestEntryName(0) == "D매수")) Then ExitLong("2-D%익절",AtLimit,AvgEntryPrice*1.02,"",Floor(Var3*0.3),1); if Condition3 == False AND ((LatestEntryName(0) == "D매수")) Then ExitLong("3-D%익절",AtLimit,AvgEntryPrice*1.03,"",Floor(Var3*0.3),1); if Condition4 == False AND ((LatestEntryName(0) == "D매수")) Then ExitLong("4-D%익절",AtLimit,AvgEntryPrice*1.04,"",Floor(Var3*0.1),1); if Condition1 == False AND ((LatestEntryName(0) == "E매수"))Then ExitLong("본절",AtLimit,AvgEntryPrice*1.003,"",Floor(Var3*0.5),1); if Condition2 == False AND ((LatestEntryName(0) == "E매수")) Then ExitLong("1-E%익절",AtLimit,AvgEntryPrice*1.01,"",Floor(Var3*0.4),1); if Condition3 == False AND ((LatestEntryName(0) == "E매수")) Then ExitLong("2-E%익절",AtLimit,AvgEntryPrice*1.02,"",Floor(Var3*0.1),1); } Else#매수진입중이 아니면 { #변수 0으로 초기화 var1 = 0; Var2 = 0; } if MarketPosition == 1 Then ExitLong("손절",AtStoP,손절);
프로필 이미지
맴맴잉
2022-07-11
1914
글번호 160662
시스템
답변완료

시간 매수매도 문의

안녕하세요 개발자님. 단순하게 오후 3시 30분 매수, 다음날 오후 3시 30분 매도를 구현하려 합니다. 아래와 같은 수식을 했는데 하루는 제대로 진행되고, 하루는 매수하자마자 청산이 되네요.. 해결 방법 문의 드립니다! 항상 도움 주셔서 감사합니다~! /////////////////////////////////////////////////////////////////// If sTime == 153000 Then Buy("매수"); If sDate > EntryDate and EntryDate>1 and sTime == 153000 Then ExitLong("매수청산"); MessageLog("%.2f %.2f %.2f",sDate,EntryDate,MarketPosition);
프로필 이미지
히익
2022-07-11
1630
글번호 160661
시스템

황금구름 님에 의해서 삭제되었습니다.

프로필 이미지
황금구름
2022-07-11
1
글번호 160660
종목검색
답변완료

5분전 체결강도

안녕하세요 5분전 체결강도 수식부탁드립니다 감사합니다
프로필 이미지
bestkim
2022-07-11
1485
글번호 160659
지표
답변완료

에러 재질문

이전 답변에 대한 재 질문 드립니다. 첨부해주신 그림에 컴파일 상에는 에러가 뜨지 않지만, 함수 적용이 안되어 메시지로그를 통해 Var10 값을 보니 그림과 같이 에러가 나옵니다..! 해결 방법이 있을까요? 항상 도움 주셔서 감사합니다^^ ///////////////////////////////////////////////////////////// 그림 1 안녕하세요 예스스탁입니다. 답변드린 수식에 첨부된 그림과 같이 오류가 없습니다. 지표나 시스템식 등에 복사해서 붙여넣기 해서 사용하시면 됩니다. 즐거운 하루되세요 > 히익 님이 쓴 글입니다. > 제목 : 에러 문제 > 답변 주신 함수 식 Var10 이 에러가 나옵니다. 아마 Var11 의 초기 값이 에러인 것 같아서 그런 듯 한데, 혹시 해결 방법이 어떻게 될까요..! ///////////////////////////////////////////////////// > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 상승률 합 > 안녕하세요 예스스탁입니다. 함수의 기간값이나 이전봉 참조를 변동값을 사용하시면 1024봉까지가 최고입니다. 작성하신 내용은 매봉 현재봉에서 첫봉까지 봉수만큼 루프가 돌게 되므로 로드가 상당히 심한 내용입니다. 수식이 차트에 적용되면 항상 첫봉부터 마지막봉으로 계산해서 오는 것을 감안하시고 식을 작성하시면 됩니다. 그러므로 아래와 같이 작성해 사용하시면 됩니다. #등락률계산 Var11 = Round((C/C[1]-1)*100,2); #var10에 매봉 누적 Var10 = Var10 + Var11; 즐거운 하루되세요 > 히익 님이 쓴 글입니다. > 제목 : 상승률 합 > 안녕하세요 개발자님. 차트 초기 봉부터 가격 상승률의 총합을 구하려고 합니다. 근데 거의 모든 자산에서 1025 봉 부터 오류가 나오더라구요. 올바른 값이 나오게 하려면 어떻게 해야할까요? 항상 도움주셔서 감사합니다. Var11=Round((C/C[1]-1)*100,2); Var10=0; ////////////////////////////////////////////////////////// Var : cnt(0); For cnt = 0 to Index-1 step 1 { Var10=Var10+Var11[cnt]; } ///////////////////////////////////////////////////////// MessageLog("%.2f %.2f %.2f",Var11,Var10,Index);
프로필 이미지
히익
2022-07-11
1693
글번호 160655
시스템
답변완료

d2crossup

if data2(c>lowd(0)+1000) then buy(); if data2(c<highd(0)-1000) then sell(); 위 수식은 data2 차트를 참조하는 수식입니다 저점 대비 1000 상승하면 buy 고점 대비 1000 하락하면 sell 기준을 저점이나 고점 대신 0(zero)을 기준으로 하는 수식으로 변경 바랍니다. 0 기준대비 1000 상승하면 buy 0 기준대비 1000 하락하면 sell 항상 고맙습니다.
프로필 이미지
목마와숙녀
2023-04-24
1343
글번호 160654
시스템
답변완료

문의드립니다.

늘 노고에 감사드립니다. 1. 파라볼릭 매매에서 매수후 청산되고나서 같은 뱡항의 신호인 매수신호가 나올려면 다시 파라볼릭 매수 조건이 되더라도 매수신호가 나올려는 봉으로부터 이전 15봉 동안 나왔던 20이평 이격도 최고값 대비해 0.1%이상 차이가 나게 떨어졌으면 매수신호가 못나오게 하고 싶습니다. 역으로 매도인 경우도 동일합니다. 2. 1번에서 15봉동안 나왔던 20이평 이격도 최고값 대비가 아니라 직전 매수신호봉 대비해 0.1% 차이가 나게 떨여졌다면 매수신호가 못나오게하는 수식을 알고 싶습니다. 역으로 매도인 경우도 동일합니다. 그럼 부탁드리겠습니다.
프로필 이미지
카르마다
2022-07-11
1306
글번호 160653
시스템
답변완료

종목검색

1. 더운 날씨에 고생 많으십니다 2. 도움을 받고 싶은것은 종목검색식 일봉에서 일목균형표(9,26,52)의 후행스팬이 볼린져밴드 상단을 당일 돌파하는 종목을 찾는 검색식을 만들고 싶습니다. 3. 도움부탁드립니다.
프로필 이미지
포소망
2022-07-11
1726
글번호 160649
종목검색
답변완료

문의드립니다

안녕하세요 1.10분봉상 v>v[1]*3 이 일어난 시점을 1) 30분봉과 2)일봉에 표시하는 지표식과 종목검색식을 문의드립니다. 수고하세요~
프로필 이미지
qaz74
2022-07-11
1400
글번호 160647
지표