커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의합니다

전략실행차트에서 시스템수식을 선택하면 아래와 같이 실행이 불가합니다 해결방법이 있나요
프로필 이미지
남산
2021-06-22
1408
글번호 150179
시스템
답변완료

문의드립니다

몇가지 질문좀 드리고자 합니다. 1. 차트 설정창에서 진입지연주문 설정을 하면 예스스팟으로 전달되는 매매신호도 똑같이 지연된 신호가 가는지 알고 싶습니다. 2. //Buy신호 발생 if (Signal.signalKind == 1) { //주문할 종콕코드 var Bcode = Option1.GetATMCallRecent(0); //매수주문 Account1.OrderBuy(Bcode,1, Option1.GetAsk(Bcode,5),0); //내부파일에 Buy라는 이름으로 Bcode저장 Main.SetUserValue("Buy",Bcode); } //예스스팟에서 이런 식으로 매수 신호가 발생되어서 종목코드가 저장된후 청산되기 전에 실수로 예스스팟을 닫았다거나 전략을 닫았다가 켜면 저 종목코드 저장된게 없어지는건지 궁금합니다. 감사합니다.
프로필 이미지
시고르시고르
2021-06-22
1466
글번호 150176
시스템
답변완료

답변 잘 보았습니다

1.매수된 총 수량을 오늘 발생한 매도 신호에 1/2 매도 내일도 매도 신호 나오면 나머지 1/2 매도 내일 매도 신호 없으면 1/2 수량은 그냥 보유 이런식으로 하고 싶습니다 가능한지요? 2.아 그리고 오늘 매도 신호 발생해 매도 되었는데 다시 매수 신호 발생해 재 매수 되는 경우가 있네요 매도 신호 발생했으면 그 후는 진입 제한했으면 합니다 늘 많은 도움주셔서 감사합니다
프로필 이미지
안미남
2021-06-22
1746
글번호 150175
시스템
답변완료

수식 수정 의뢰드립니다!

안녕하세요! 아래 수식은 전메 만들어 주신겁니다! 매매를 하면서 전일시장과 당일 시장이 연장되지 않고 당일에 새로운 바탕선이 적용될 수 있도록 수정 부탁드립니다! 감사합니다! Input : Af(0.02), MaxAf(0.2); Var : direction(0), sar1(0), afval(0), ep(0),lowval(0),highval(0),count(0); if count == 0 then //변수들의 초기화 { highval = High; lowval = Low; direction = 0; sar1 = 0; afval = 0; ep = 0; count = 1; } if(ep != 0 ) then // 추세가 진행중 { if(direction == 1) then // 상승추세이면 { ep = highval; sar1 = sar1 + afval*(ep-sar1); // 상승추세에서 SAR값 계산 if(high > highval) then // 신고가 발생 { highval = high; afval = afval+Af; // 상승추세에서 신고가가 발생했으므로 가속변수 증가 if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } if( low < sar1) then // 추세변경(상승->하락) { // 다음 SAR값을 계산할 때 필요한 전SAR값은 하락추세로 전환되기 직전의 direction = -1; // 최고가를 사용하므로 sar1 = ep (ep에는 highval 들어있다) sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화 afval = 0; ep = 0; lowval = low; } } else // 하락 추세 { ep = lowval; // 하락추세에서는 EP로 저가 사용 sar1 = sar1 + afval*(ep-sar1); if(low < lowval) then // 신저가 발생 { lowval = low; afval = afval + Af; if( afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } if(high > sar1) then // 추세 변경(하락->상승) { // 다음 SAR 값을 계산할 때 필요한 전SAR값은 상승추세로 전환되기 직전의 direction = 1; // 최저가를 사용하므로 sar1 = ep (ep에는 lowval값이 들어있다) sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화 afval = 0; ep = 0; highval = high; } } } else if(sar1 != 0 && ep == 0) then //추세가 변경된후 첫번째 SAR계산 { if(direction == 1) then // 상승 추세 { ep = highval; // 상승추세에서는 신고가를 EP로 사용하므로 afval = Af; // 가속변수의 초기값인 AF(0.02) 적용 sar1 = sar1 + afval*(ep-sar1); if ( high > highval) then // 신고가가 발생 { Highval = high; afval = afval + Af; // 가속변수 증가 if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } } else // 하락추세 { ep = lowval; afval = Af; // 가속변수의 초기값인 AF(0.02) 적용 sar1 = sar1 + afval*(ep-sar1);// 하락추세에서 SAR 계산 if(low < lowval) then // 신저가 발생 { lowval = low; afval = afval + Af; // 가속변수 증가 if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } } } else // SAR 첨 시작 { if direction == 0 then // 추세가 없으므로 { if(c > c[1]) then // 상승추세로 시작 direction = 1; else if( c < c[1]) then // 하락추세로 시작 direction = -1; } else if direction == 1 then // 상승추세(추세변경이 일어날 경우 SAR 계산하기 시작) { if(c < c[1]) then // 추세 변경 (상승->하락) SAR 계산하기 시작 { direction = -1; sar1 = highval; // 하락추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최고가를 사용하므로 } } else if direction == -1 then // 하락추세(추세변경이 일어날 경우 SAR 계산하기 시작) { if( c > c[1]) then // 추세 변경 (하락->상승) SAR 계산하기 시작 { direction = 1; sar1 = lowval; // 상승추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최저가를 사용하므로 } } lowval = min(low, lowval); // 추세 변경시 전 SAR값으로 최고가나 최저가가 필요하므로 highval = max(high,highval); // low, high를 전의 최고가, 최저가와 비교하여 최고가, 최저가를 저장 } //처음 시작할 때 다음 추세 변경이 일어날 때까지 SAR는 invalid #if(sar1 != 0) then # User_Func_Sar = sar1; if sar1 > sar1[1] Then plot1(sar1,"파리볼릭",BLUE); else plot1(sar1,"파리볼릭",blue); Plot2(C,"종가");
프로필 이미지
qha71
2021-06-22
1762
글번호 150168
지표
답변완료

시스템 질문입니다

지수선물 적용예정 입니다 1.N봉 전의 주가 보다 현재 주가가 더 높으면 매수 N봉 전의 주가 보다 현재 주가가 더 낮으면 매도 2. N일 전의 주가 보다 현재 주가가 더 높으면 매수 N일 전의 주가 보다 현재 주가가 더 낮으면 매도 신속한 답변 바랍니다
프로필 이미지
우리상향
2021-06-22
1794
글번호 150167
시스템
답변완료

수식 질문드립니다.

예를들어서 현재 buy 포지션 유지중인데, 익절이 20 pt 입니다. 그런데 익절 나오기전에 또 buy 신호가 뜬다면 여기서 추가로 한개 더 진입하게할수없나요? 사진에서 피라미딩하용하면 하루에 몰아서 다 때려넣는데, 이렇게 말고 신호뜨면 하루 1개만 추가진입하게하고 싶습니다. 반대신호 뜨면 다 청산하고 다시 한개만 진입하고,, data --------------------- # input : StartTime(90500),EndTime(151000); Input : s1(120), s2(200); //input : s11(28),s12(265); input : 손절(5.6); input : 익절(30.2); //input : way(9),road(-8),road2(-8); //input : 최소이익(2),손실범위(0.1); input : bf11(0.2),sf11(-0.85),bf12(0.85),sf12(-0.5); input : bf13(0.8),sf13(-0.8),bf14(0.5),sf14(-0.32); //var : condi(0); var : Tcond(false,Data1); var : C2(0,Data2); var : C3(0,Data3); var : C4(0,Data4); var : C5(0,Data5); var : C6(0,Data6); var : C7(0,Data7); value1 = ma(c2,s1); value2 = ma(c2,s2); //value12 = Ma(c2,600); //value13 = Ma(c3,600); //value14 = Ma(c4,600); //value15 = Ma(c5,600); value12 = Average(c2,600); value13 = Average(c3,600); value14 = Average(c4,600)*4; value15 = Average(c5,600)*4; if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; C2 = Data2(c); C3 = Data3(c); C4 = Data4(c); C5 = Data5(c); C6 = Data6(c); C7 = Data7(c); if Tcond == true Then { If #CrossUp(Value3,0) value13 < -0.32 and (value14 < -0.32 or value14>0.32) //and c6+c7>road #39.62 //and c2<bf11 //and c3<bf12 #47.86 //and c4<bf13 //and c5<bf14 Then { Buy(); } If #CrossDown(Value3,0) value13 > 0.32 and (value14 < -0.32 or value14 > 0.32) //and c6+c7<-road //and c2>sf11 //and c3>sf12 //and c4>sf13 //and c5>sf14 Then { Sell(); } } # #SetStopEndofday(EndTime); SetStoploss(손절,PointStop); SetStopProfittarget(익절,PointStop); #SetStopContract();#생략가능 #SetStopTrailing(손실범위 , 최소이익 , PointStop);
프로필 이미지
캣피쉬
2021-06-22
1547
글번호 150161
시스템
답변완료

수식작성

input : StartTime(70000),EndTime(55000),Xtime(55500); var : Tcond(false),entry(0); var : B1(0),B2(0),BX1(0),BX2(0); var : S1(0),S2(0),SX1(0),SX2(0); if sdate != sDate[1] Then SetStopEndofday(Xtime); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; SetStopEndofday(0); entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*5.638; B2 = DayLow(1)+(DayHigh(1)-DayLow(1))*5.939; BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.400; BX2 = DayHigh(1); S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*-0.118; S2 = DayHigh(1)+(DayHigh(1)-DayLow(1))*-0.230; SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*-0.236; SX2 = DayLow(1)+(DayHigh(1)-DayLow(1))*-0.764; if Tcond == true and entry < 1 Then { if (MarketPosition == 0 or (MarketPosition == 1 and MaxEntries == 1)) Then { if L > B1 Then Buy("b1",AtLimit,B1); if L > B2 Then Buy("b2",AtLimit,B2); } if MarketPosition == 1 Then { ExitLong("bx1",AtLimit,BX1,"B1"); ExitLong("bx2",AtLimit,BX2,"B2"); } if (MarketPosition == 0 or (MarketPosition == -1 and MaxEntries == 1)) Then { if H < S1 Then Sell("S1",AtLimit,S1); if H < S2 Then Sell("s2",AtLimit,S2); } if MarketPosition == -1 Then { ExitShort("sx1",AtLimit,SX1,"S1"); ExitShort("sx2",AtLimit,SX2,"S2"); } } SetStopProfittarget(PriceScale*300,PointStop); SetStopLoss(PriceScale*30,PointStop); -------------------------------- 늘 감사드립니다. s1 (-0.118) 진입후 전일 피보나치 전체 수열의 0.236로 청산되는 수식 작성에 어려움이 있네요 수정 부탁드립니다.
프로필 이미지
푸른
2021-06-22
1773
글번호 150160
시스템
답변완료

월봉의 켈트너 채널, 볼린저 밴드

안녕하세요? 월봉의 켈트너 채널, 볼린저 밴드를 일봉에서 사용하고 싶은데요. 공식 도움 부탁드립니다. 너무 오래걸리시는 건이면 패스해주세요... 감사합니다~
프로필 이미지
롬롬7
2021-06-22
1820
글번호 150159
지표
답변완료

시스템식 문의 드립니다.

예전에 요청드렸던 시스템 식입니다. 여기에 추가적인 조건을 넣고 싶은데 계속 실패해서 이렇게 요청드리게 되었습니다. 위 그림에도 적혀있다 시피 1차 매수 타점은 당일 시가 X 0.97 (-3%)하락했을 경우 인데 전일 상한가를 쳤을 경우 또는 당일 오후 1시 이후 에는 1차 매수 타점이 당일 시가 X 0.94 (-6 %) 이 되록 바꾸고 싶습니다. 지난번에 요청드린 시스템식도 같이 올려드리오니 부탁드리겠습니다. 항상 감사드리고 있습니다. ---------------------------------------------- var : entry(0),AP(0); 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 MarketPosition == 0 Then { if entry == 0 or (entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then Buy("b1",AtLimit,DayOpen*0.97); } if (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or (MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06)) Then Buy("b2",AtLimit,DayOpen*0.94); if (MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true) Then Buy("b3",AtLimit,DayOpen*0.91); if MarketPosition == 1 Then { AP = AvgEntryPrice; if MaxEntries == 1 and IsEntryName("b1") == true Then { ExitLong("bp1",AtLimit,AP*1.02); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx1"); } if (MaxEntries == 2 and IsEntryName("b1") == true) or (MaxEntries == 1 and IsEntryName("b2") == true) Then { ExitLong("bp2",AtLimit,AP*1.01); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx2"); } if (MaxEntries == 3 and IsEntryName("b1") == true) or (MaxEntries == 2 and IsEntryName("b2") == true) Then { ExitLong("bp3",AtLimit,AP*1.005); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx3"); } ExitLong("bl",AtStop,DayOpen*0.88); } SetStopEndofday(151800); -----------------------------------------------------------------------------
프로필 이미지
맴맴잉
2022-02-27
2096
글번호 150158
시스템
답변완료

종목 검색 후 특정 조건 연동 관련 질문

안녕하세요, 1) 3분봉으로 A 조건에 부합하는지 검색 2) 당일 일봉 B 조건에도 부합 (예. 현재가가 일봉 5일선 위에 있는지 확인 if(Close > ma(c,50)) 1) 2) 조건 둘다 해당하는 경우에만 대응을 하려고 하는데요, 예스스팟으로 다음과 같이 구현이 될까요? 1. 1) 조건으로 검색 2. 검색결과로 나온 종목들에 2)를 시스템으로 적용하여 조건부합시 매수신호 발생 3. 매수신호 받아서 대응 처리 이런식으로 테스트로 만들어봤는데 일봉으로 시스템을 적용하면 적용시점에 바로 조건부합해서 매수신호가 들어가도 예스스팟에서 매수신호를 받지 못하는것 같아서요.. 분봉은 해당분이 끝나면 봉이 완성되는데 일봉은 그날 장마감이 되어야 완성되는것 같아서.. 이런 경우 어떻게 풀면 좋을지 조언 부탁드립니다.
프로필 이미지
edan
2021-06-22
1852
글번호 150157
시스템