커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

재문의드립니다.

식이 복잡하므로 조금씩 부탁드립니다. 차트에 3분봉을 띄우고 3분봉으로 매수매도를 합니다. 3분봉에서 기준선을 2개 만드는데요. 일봉기준으로 기준선을 만듭니다. 일봉에서 가장 최근에 음봉이 발생하면 이 때의 최근 음봉을 음봉1 이라 하고 종가를 b 라 하고 가장 최근 음봉 보다 이전에 발생한 음봉들을 관찰하고 최근 음봉 종가 b < 이전에 발생한 음봉2의 종가 동시에 최근 음봉 시가 < 이전에 발생한 음봉2의 시가 를 만족하는 이전의 음봉2을 찾는 것입니다 . 그 음봉을 찾았으면 대음봉을 만드는데요. 종가는 당연히 최근 음봉 종가 b 가 되고요 시가는 음봉2의 시가가 대음봉 시가가 됩니다. 이렇게 대음봉 몸통이 만들어 졌으면 몸통의 1/2 즉 몸통의 절반가격을 대음봉 기준선B 라고 합니다 기준선 B 까지 수식을 부탁드립니다. 제가 일봉과 분봉을 결합시키는 것을 모르겠어요. 수고에 감사드립니다.
프로필 이미지
종호
2022-03-22
941
글번호 157366
시스템

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

프로필 이미지
hakona
2022-03-23
141
글번호 157365
시스템
답변완료

76429 글 다시 확인 좀 요청 드립니다.

* 전일 해주신 수식 작성했으나 별표가 안 찍힙니다. 아래 내용 문법에 맞는지 확인 좀 부탁 드립니다. ##매수통합 Condition1 = CrossUp(var55-0.6, mid ) ; Condition2 = CrossUp(var55-0.6, Lmav) and c > ma(L,5) ; Condition3 = CrossUp(LRLv - PriceScale*23 , var80 - PriceScale*13) and value17 < -20 ; Condition4 = CrossUp(LRLv-PriceScale*20,var81-PriceScale*14) AND value8 < -0.001 ; Condition5 = CrossUp(LRLv - PriceScale*23 , var80 - PriceScale*13) ; Condition6 = CrossUp(LRLv1 - PriceScale*23 ,var93 - PriceScale*16) AND L < MA(C,230) and value17 < -28 ; Condition7 = CrossUp(LRLv-PriceScale*20,var81-PriceScale*11) AND StoD2<30 AND LRLv92-PriceScale*23 > LRLv91-PriceScale*23 AND StoD4 < 30 AND Value65 > -0.008 ; Condition8 = CrossUp(LRLv - PriceScale*20 ,var81 - PriceScale*14) AND value8 < -0.001 and value17 < -28 ; if //dayindex() >= 2 and CountIf(Condition1==true,bw) >= 1 and CountIf(Condition2==true,bw) >= 1 and CountIf(Condition3==true,bw) >= 1 and CountIf(Condition4==true,bw) >= 1 and CountIf(Condition5==true,bw) >= 1 and CountIf(Condition6==true,bw) >= 1 and CountIf(Condition7==true,bw) >= 1 and CountIf(Condition8==true,bw) >= 1 and (Condition1 == true or Condition2 == true or Condition3 == true or Condition4 == true or Condition5 == true or Condition6 == true or Condition7 == true or Condition8 == true ) Then {Tx03 = Text_New(sdate,stime,MA(L,5)-3.0 ,"★"); Text_SetStyle(Tx03,2,2); Text_SetColor(Tx03, RGB(0,50,200) ); Text_SetSize(Tx03,26); } * 항상 고맙습니다. 수고하십시요.
프로필 이미지
요타
2022-03-22
874
글번호 157364
강조
답변완료

수식 수정 부탁드립니다.

페어트레이딩 관련 수식인데요, 예스랭귀지 편집기에서 검증을 해보니 수많은 오류가 뜨네요 오류가 뜨는 부분 수정 부탁드립니다. 수식은 아래와 같습니다. 감사합니다. ---아 래---- //===♠페어트레이딩_ INPUT : ※수량이음수이면_매도(0); INPUT : 진입_일자(20190325), 진입_시간(193000); INPUT : D1_진입가(2808.25), D2_진입가(25553); INPUT : D1_수량(1), D2_수량(-1.4); // 실재 매매시는 2개와 3개 INPUT : ※_수수료는_편도(5); INPUT : D1_수수료(5), D2_수수료(5), 환율(1180); INPUT : 손익원화환산1(1); // 달러 표시 손익일 경우 환산 여부 지정 INPUT : 손익_상단(1572), 손익_하단(-1914); //=== 변수 선언 === var : D1현재가(0), D2현재가(0); //=== 현재가 지정 === D1현재가 = Data1(c); D2현재가 = Data2(c); //=== 틱단위와 틱가치 대입 === var : D1틱단위(0), D1틱가치(0); var : D2틱단위(0), D2틱가치(0); D1틱단위 = data1(PriceScale); D2틱단위 = data2(PriceScale); D1틱가치 = data1(PointValue); D2틱가치 = data2(PointValue); //=== 손익 산출 === var : D1손익(0), D2손익(0), 손익소계(0), 순손익(0); var : D1수수료(0), D2수수료(0), 수수료소계(0); //==== _손익 산출 D1손익 = ((D1현재가 - D1_진입가) / D1틱단위 * D1틱가치 * D1_수량); D2손익 = ((D2현재가 - D2_진입가) / D2틱단위 * D2틱가치 * D2_수량); 손익소계 = D1손익 + D2손익; D1수수료 = abs(D1_수량 * D1_수수료 * 2); //왕복 D2수수료 = abs(D2_수량 * D2_수수료 * 2); 수수료소계 = D1수수료 + D2수수료; 순손익 = 손익소계 - 수수료소계; //===원화 환산. 금액 단위 천원 iF 손익원화환산1 == 1 Then 순손익 = (순손익 * 환율) / 1000; //===== 손익 이평선 ===== Input : 소이평값(5), 중이평값(20), 대이평값(60); var : 소이평(0), 중이평(0), 대이평(0); 소이평 = ma(순손익, 소이평값); 중이평 = ma(순손익, 중이평값); 대이평 = ma(순손익, 대이평값); //=== 손익의 10 구간 계산 var : 중간선(0), 십등분(0); var : 이부선(0), 사부선(0), 육부선(0), 팔부선(0), 방향색(0); 중간선 = (손익_상단 + 손익_하단) / 2; 십등분 = (손익_상단 - 손익_하단) / 10; 이부선 = 손익_하단 + 십등분*2; 사부선 = 손익_하단 + 십등분*4; 육부선 = 손익_하단 + 십등분*6; 팔부선 = 손익_하단 + 십등분*8; //==== 방향표시바 색지정 if 순손익 >= 손익_상단 then 방향색 = RGB(0, 0, 217); // 진청 if 순손익 < 손익_상단 and 순손익 >= 팔부선 then 방향색 = RGB(0, 128, 255); // 연청 if 순손익 < 팔부선 and 순손익 >= 육부선 then 방향색 = RGB(0, 230, 230); //하늘색 if 순손익 < 육부선 and 순손익 >= 사부선 then 방향색 = RGB(0, 204, 0); //녹색 if 순손익 < 사부선 and 순손익 >= 이부선 then 방향색 = RGB(255, 128, 0); //주황 if 순손익 < 이부선 and 순손익 >= 손익_하단 then 방향색 = RGB(255, 128, 192); //연핑크 if 순손익 < 손익_하단 then 방향색 = RGB(255, 0, 255); //진핑크 //========지표의 출력 ============== //--지정일 지정시간 이후 지표 출력을 위한 것 if Condition1 == false and sDate >= 진입_일자 and sTime >= 진입_시간 Then Condition1 = true; if Condition1 == true Then { plot13(순손익, "순손익"); plot16(소이평, "소이평"); plot17(중이평, "중이평"); plot18(대이평, "대이평"); } //==== 손익 상단 하단 출력 및 음성 안내 ========= Input : 음성안내ON1(1); If 손익_상단 <= 순손익 Then { plot21(손익_상단, "손익_상단선"); If 음성안내ON1 == 1 Then playsound("C:₩____Mysound₩11₩풀룻Flute.WAV"); } If 손익_하단 >= 순손익 Then { plot22(손익_하단, "손익_하단선"); If 음성안내ON1 == 1 Then playsound("C:₩____Mysound₩11₩풀룻Flute.WAV"); } if 순손익 >= 이부선 and 순손익 <= 사부선 Then plot23(중간선, "중간선"); //==== 방향바 출력 ======= plot24(0, "■방향바", 방향색); /* //==== 데이터 검증영역 ===== plot41(D1손익, "D1 손익"); plot42(D2손익, "D2 손익"); plot43(손익소계, "손익소계"); plot44(수수료소계, "수수료합계"); Plot51(D1틱단위, "D1틱단위"); Plot52(D1틱가치, "D1틱가치"); Plot53(D2틱단위, "D2틱단위"); Plot54(D2틱가치, "D2틱가치"); Plot61(D1_진입가, "●D1진입가"); Plot62(D2_진입가, "○D2진입가"); Plot63(D1_수량, "■D1수량"); Plot64(D2_수량, "□D2수량"); Plot65(D1_수수료, "▲D1_수수료"); Plot66(D2_수수료, "△D2_수수료"); plot67(손익_상단, "@@손익_상단"); plot68(손익_하단, "@@손익_하단");
프로필 이미지
브루펜
2022-03-22
1036
글번호 157363
사용자 함수
답변완료

함수

안녕하세요 가령 5일선 기준으로 max(SmaLL1, SmaHH1) min(SmaLL1, SmaHH1) 에서 max와 min는 무슨차이인가요? 수고하세요
프로필 이미지
달마7
2022-03-22
1037
글번호 157362
사용자 함수
답변완료

수식문의 드립니다

아래 지그재그 수식에서 고점저점 가격과 진폭(고저차)수치가 작게보여 크게 볼 수 있는 수식을 첨가 부탁드립니다. Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0), Text1(0),처리구분(""); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2) +NewLine+NumToStr((고점[1,1]-저점[1,1]),2)); Text_SetStyle(Text1, 3, 3); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2) +NewLine+NumToStr((고점[1,1]-저점[1,1]),2)); Text_SetStyle(Text1, 3, 3); } } TL_SetSize(TL1,3); TL_SetColor(TL1,lgreen);
프로필 이미지
한림
2022-03-22
1225
글번호 157361
지표

카이니스 님에 의해서 삭제되었습니다.

프로필 이미지
카이니스
2022-03-21
96
글번호 157359
시스템

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

프로필 이미지
종호
2022-03-21
6
글번호 157358
시스템
답변완료

주식 시스템 문의 드립니다.

안녕하세요 아래 코드로 현재 1분봉으로 매매중인데요 원하는 코드가 잘 안만들어져서 수정 부탁드리고자 합니다. 1. #돌파매수 실행시 Condition11 만족하는 봉 발생시 그 봉의 종가를 CC로 리턴하고 다음봉이 음봉이면 매수대기하다가 첫 양봉 출현시 매수하고자 함 (지금 코드는 임시방편입니다.) Ex) 조건발생 양봉 - 음봉 - 음봉 - 음봉 - 양봉 -매수 조건발생 양봉 - 양봉 - 매수 2. 마지막 분할매도 부분 수익율 3프로 이상발생한 후 var1 이평이 var3 이평을 crossdown하는 경우 전량 매도 (과거에 수익율이 3프로 이상 발생한 적이 한번이라도 있으면 현재 수익율이 얼마인지 관계없이 crossdown시 전량매도) 아래 코드로 적용해보았는데 작동되질 않습니다. if countif(C >= AvgEntryPrice*1.03, 60) >= 1 and crossdown(var1,Var3) Then ExitLong("Exit",OnClose,DEf,"",MaxContracts,1); 3. 분할매도시 주식수량 오차 종목당 일정 금액으로 매수를 하는데 분할매도하면 1~2주씩 남게 됩니다. 어찌해결하면 좋을지 부탁드려요 4. 전체적으로 코드 최적화 초심자이다 보니 코드가 체계적이고 효율적이지 못한것 같습니다. 효율적인 코드로 편집 부탁드릴께요 감사합니다. -------------------------------------------------------------------------------- input : P1(5),P2(20),P3(60),P4(120),P5(240),P6(480); Input : Period(12), Period1(6), Period2(10),Period3(12); var : StoK(0),StoD(0),RSIV(0); var : HH(0),LL(0),HV(0),HV1(0),HL(0),HL2(0),CC(0), CC1(0); var1=ma(c,P1); var2=ma(c,P2); var3=ma(c,P3); var4=ma(c,P4); var5=ma(c,P5); Var6=ma(c,P6); StoK = StochasticsK(Period,Period1); StoD = StochasticsD(Period,Period1,Period2); RSIV = RSI(Period3); HL = DayHigh/DayLow; #당일 고가-저가 차이 HH = Highest(H,120); LL = Lowest(L,120); HL2 = HH/LL; #2시간 내 고가 저가 차이 #돌파 신호 조건 If C >= O and C > Var5 and C > var6 and HL < 1.15 and HL2 < 1.1 and DayOpen < DayClose[1]*1.05 and countif(CrossDown(var5,Var6),240) == 0 and countif(M > 100000000,3) >= 1 and DayVolume > (DayVolume[1]*0.3) and Countif(crossup(RSIV,70),3) >= 1 Then Condition11 = true; Else Condition11 = false; if C < (AvgEntryPrice*0.95) and countif(M > 100000000,3) >= 1 and C > DayOpen and Countif(crossup(RSIV,70),4) >= 1 and C > var6 Then Condition12 = true; Else Condition12 = false; #돌파 매수 실행 if countif(Condition11[2],10)>= 1 and C >= O and sDate >= 20220301 and marketposition == 0 and countif(marketposition == 1,120) < 1 Then Buy("Buy1",OnClose); if CountIF(Condition12[2],10)>=1 and C >= O and MarketPosition == 1 and C >= O and CountIf(condition12[3],180) == 0 Then Buy("Buy2",OnClose); #분할매도 if c >= AvgEntryPrice*1.05 Then ExitLong("5Per",OnClose,DEf,"",MaxContracts*(1/4),1); if c >= AvgEntryPrice*1.10 Then ExitLong("10Per",OnClose,DEf,"",MaxContracts*(1/4),1); if c >= AvgEntryPrice*1.15 Then ExitLong("15Per",OnClose,DEf,"",MaxContracts*(1/4),1); if C >= AvgEntryPrice*1.03 and crossdown(var1,Var3) Then ExitLong("Exit",OnClose,DEf,"",MaxContracts,1);
프로필 이미지
마곡개미통
2022-03-21
1092
글번호 157344
시스템
답변완료

수식 수정부탁드립니다

input : v기간1(5),v기간2(20),K1(8),K2(10); input : 이평기간1(5),이평기간2(20),이평기간3(60),이평기간4(120),이평기간5(240); input : 양봉상승율(5), 최고량기간(240), 비교봉수(20), N(0); input : P(12),dv(2) ; var : mav1(0), mav2(0), mav3(0), mav4(0), mav5(0); var1 = MA(V,v기간1); var2 = MA(V,v기간2); mav1 = ma(C,이평기간1); mav2 = ma(C,이평기간2); mav3 = ma(C,이평기간3); mav4 = ma(C,이평기간4); mav5 = ma(C,이평기간5); var4 = BollBandUp(P,dv); Var5 = ma(C,P); Var6 = BollBandDown(P,dv); Condition1 = (( var1[1] * K1 < V ) or ( V >= V[1] * K2 )) and (C >= C[1]*(1+양봉상승율/100)) ; Condition2 = ( CrossDown(C, var4 ) or ( H > var4 and C < var4 ) ) and C < O ; Condition3 = ( CrossUp(C, var4) or ( C > var5 and L < var5 ) or ( C > var6 and L < var6 )) and mav1[1] < mav1 and C > O ; Condition4 = AccumN(iff((Condition1, 최고량기간 ), 1, 0), 비교봉수 ) >= 1 ; if CountIf( Condition1, 최고량기간 ) >= 1 and CountIf( Condition2, N ) >= 1 and Condition3 == true and Condition4 == true Then { find(1); } 상기 수식은 다음의 내용을 반영할 수 있는 것으로 만들어 본 것인데 Condition4 에서 문법에러가 난다고 하네요. 기간(240)으로 한 최고거래량이 발생(거래량 5이평보다 K1(8)배, 전일거래량보다 K2(10)배 많은 거래량이 발생)한것이 최근 비교봉수(30일)내에 있는 조건을 충족해한다. 그리고 Condition2는 최고거래량이 발생한 후 볼밴상단선을 이탈한 경우가 있어야 한다는 것이고, Condition3은 Condition2 이후 볼밴 상단선 또는 중심선 또는 하단선을 돌파하는 캔들출현시에 매수종목으로 검색되게 하는 것입니다. 이 이상의 내용을 반영한 식으로 수정해주시고요 추가적으로 Condition1 이 발생된후 특정기간(5) 이후에 Condition3 이 발생되어야 한다는 조건(돌파시의 캔들상승율은 5%이내이어야한다)을 추가해주시면 감사하겠읍니다
프로필 이미지
해피오
2022-03-21
1563
글번호 157340
종목검색