커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 부탁드립니다

부탁드립니다.if CrossUp(source, upper_band) Then Buy("Buy");if CrossDown(source, lower_band) Then Sell("Sell");Buy 진입 후 진입봉 제외 2연속 음봉이면 청산, 2연속 양봉이면 재진입.Sell 진입 후 진입봉 제외 2연속 양봉이면 청산 , 2연속 음봉이면 재진입.
프로필 이미지
사노소이
41
글번호 226967
시스템
답변완료

수식 부탁 드림니다

안녕하십니까?수식 부탁 드립니다1.변동폭라인-(상단선)종가고점=최고값(종가, 기간); 시가고점=최고값(시가, 기간);상단선=최대값(종가고점, 시가고점)---------------------------------------2.변동폭라인-(하단선)종가저점=최저값(종가, 기간);시가저점=최저값(시가, 기간);하단선=최소값(종가저점, 시가저점)---------------------------------------3.price_상단highest(H, period, R); --------------------------------------4.price하단lowest(L, period, R);----------------------------------------기간 = 5period = 5R = 1항상 감사 합니다
프로필 이미지
s1017051
42
글번호 226966
지표
답변완료

setstoploss 관련 질문 드립니다.

항상 많은 도움 감사드립니다.setstoploss 설정에 대해서 궁금한 점이 있어서 문의 드립니다.한 시스템 안에buy "A";buy "B";buy "C":라는 세가지 진입 수식이 있고 이에 따라서exitlong "A";exitlong "B";exitlong "C"; 세가지 청산식 있는 경우에 "A" 청산식에setstoploss(10,pointStop);exitlong "A";exitlong "B";exitlong "C"; 이런식으로 하나의 청산식에 setstoploss 설정을 하면 "B","C" 청산식까지 10포인트 손실이 나면 stoploss로 청산이 됩니다."A","B","C"청산에서 setstoploss값을 따로 설정하거나 "A"만 stoploss를 적용하고 "B","C"는 설정하지 않는 방법이 없을까요?조건 만족시 바로 청산 되는게 setstoploss밖에 없어서 빠른 손절을 위해 setstoploss를 사용할 수 밖에 없는데 setstoploss 값을 "A" =10,"B"=20,"C"=15 이런식으로 작성할 수는 없는지 아니면 다른 명령어를 쓰면 같은 효과를 낼 수 있는 방법이 있는지 문의드립니다.
프로필 이미지
비정성시
34
글번호 226965
시스템
답변완료

검색식 부탁드립니다

var: m40 (0) ,m20(0), m5(0),a(0),b(0),cnt(-1);m40 = WMa(c,40);m20 = wma(c,20);m5 = wma(c,5);if (((min(o[1],c[1]) < m5[1]) && (max(o,c) > m20) && m5<m20) or (o<m5 && c>m20) &&c[1] < c) && ((m5[1]<m20[1]) or (m20>o && m5<c && m20<m5)) && o<c Thena=h;//------------------------------------------------------------------------------------------- 1if CrossUp(c,a) && (m20[1] < m20 && m40[1] <m40) Then //-------------------------- 2 Find(c>1000 && v>100000 ); 1번 이후에 첫번째와 두번째 2번 검색식 부탁드립니다.항상 감사합니다.
프로필 이미지
nams60
35
글번호 226964
종목검색
답변완료

종목검색 잘부탁드립니다

1,아래 지표로 종목검색 부탁드립니다2,시장구분 변수 처리부탁3, 매수 상위 종목 중에서 100개중에서 검색 할려고 합니다 변수처리 해주세요4, bull reversal 이 신호종목 부탁립니다input : uselow_bull(true); input : usehigh_bear(true); input : line_forward(8); input : line_back(-200); input : label_offset(8); var : use_low_bull(0),use_high_bear(0); var : bull_dir(False),bear_dir(False),red_bar(false),green_bar(False); var : strong_bull_dir(False),strong_bear_dir(False),nuetral_bar(False); var : line_price(naN),label_price(NaN); var : is_bar_index(0),a(0),b(0),price(0); var : bull_break(False),bear_break(False); var : confirmed_bull_(False),bull_value(0); var : confirmed_bear_(False),bear_value(0); use_low_bull = IFf(uselow_bull,low,close); use_high_bear = IFF(usehigh_bear,high,close); bull_dir = close >= open[1]; bear_dir = close <= open[1]; red_bar = open < close; green_bar = open > close; strong_bull_dir = bull_dir and red_bar; strong_bear_dir = bear_dir and red_bar; nuetral_bar = strong_bear_dir == False and strong_bull_dir == False; is_bar_index = index; if is_bar_index>0 Then { TL_Delete(line_price); Text_Delete(label_price); a = close; b = is_bar_index; line_price = TL_new(sDate,sTime,a,NextBarSdate,NextBarStime,a); TL_SetColor(line_price, IFf(strong_bull_dir , red ,IFf(strong_bear_dir , lime , IFf(nuetral_bar , orange, Black)))); TL_SetExtRight(line_price,true); TL_SetExtLeft(line_price,true); label_price = Text_new(NextBarSdate,NextBarStime,a, ntostr(a,2)); Text_SetColor(label_price,iFf(strong_bull_dir , red ,IFf(strong_bear_dir , lime , IFf(nuetral_bar , orange, Black)))); Text_SetSize(label_price,20); } //================= //BEGIN Definitions //================= price = close; bull_break = price > high[1] and price > high[2] and price > high[3] and price > high[4] and price > high[5] and price > high[6] and price > high[7] and price > high[8] and price > high[9] and price > high[10] and price > high[11] and price > high[12] and price > high[13] and price > high[14]; // confirmed_bull_ = bull_break[1] and bull_break == False; if confirmed_bull_ == true Then bull_value = high; if bull_break == bull_break[1] Then plot1(bull_value,"bull_value",iff(bull_break != bull_break[1],Black ,red)); Else NoPlot(1); bear_break = price < low[1] and price < low[2] and price < low[3] and price < low[4] and price < low[5] and price < low[6] and price < low[7] and price < low[8] and price < low[9] and price < low[10] and price < low[11] and price < low[11] and price < low[12] and price < low[13] and price < low[14]; // confirmed_bear_ = bear_break[1] and bear_break == False; if confirmed_bear_ == true Then bear_value = low; if bear_break == bear_break[1] Then plot2(bear_value,"bear_value",iff(bear_break != bear_break[1],Black,green)); Else NoPlot(2); input : rsiLen(6); input : rsiOverbought(85); input : rsiOversold(15); var : rsiValue(0),rsiisoverbt(False),rsiisoversld(False); var : bear_signal(False),bull_signal(False); var : bulllabel1(Nan),bulllabel2(nan),bullline(NaN); var : bearlabel1(Nan),bearlabel2(nan),bearline(NaN); rsiValue = rsi(rsiLen); rsiisoverbt = rsiValue >= rsiOverbought; rsiisoversld = rsiValue <= rsiOversold; bear_signal = (bear_break[1] and bear_break == False); bull_signal = (bull_break[1] and bull_break == False); if bull_signal Then { Text_Delete(bulllabel1); bulllabel1 = Text_New(sDate,sTime,H,"Potential bear Reversal"+NewLine+NewLine); Text_SetColor(bulllabel1,Green); Text_SetStyle(bulllabel1,2,1); Text_Delete(bulllabel2); bulllabel2 = Text_New(sDate,sTime,H,"▼"); Text_SetColor(bulllabel2,Green); Text_SetStyle(bulllabel2,2,1); Text_SetSize(bulllabel2,20); } if bull_break Then { TL_Delete(bullline); bullline = TL_new(sDate,sTime,use_high_bear,NextBarSdate,NextBarStime,use_high_bear); TL_SetExtRight(bullline,true); TL_SetColor(bullline,Red); } if bear_signal then { Text_Delete(bearlabel1); bearlabel1 = text_new(sDate,sTime,L,"▲"); Text_SetColor(bearlabel1,Red); Text_SetStyle(bearlabel1,2,0); Text_SetSize(bearlabel1,20); Text_Delete(bearlabel2); bearlabel2 = text_new(sDate,sTime,L,NewLine+NewLine+"Potential bull Reversal"); Text_SetColor(bearlabel2,Red); Text_SetStyle(bearlabel2,2,0); } if bear_break Then { TL_Delete(bearline); bearline = TL_new(sDate,sTime,use_low_bull,NextBarSdate,NextBarStime,use_low_bull); TL_SetExtRight(bearline,true); TL_SetColor(bearline,green); } var : Sell_signal(False),Buy_signal(False); var : bull_function(False),bear_function(False),custom_signal(False); Sell_Signal = bull_signal; Buy_Signal = bear_signal; bull_function = Buy_Signal; bear_function = Sell_Signal; custom_signal = (bull_function or bear_function); //END CUSTOM FUNCTIONS==== // Plot BUY SELL markers input : show_sell_signals(false); input : show_buy_signals(false); var : tx1(0),tx2(0); if show_sell_signals == true and Sell_Signal == true Then { tx1 = text_new(sDate,sTime,H,"▼"); Text_SetColor(tx1,Red); Text_SetStyle(tx1,2,1); tx2 = text_new(sDate,sTime,H,"O-B"+NewLine); Text_SetColor(tx2,Yellow); Text_SetStyle(tx2,2,1); } if show_buy_signals == true and Buy_Signal == true Then { tx1 = text_new(sDate,sTime,L,"▲"); Text_SetColor(tx1,Lime); Text_SetStyle(tx1,2,0); tx2 = text_new(sDate,sTime,L,NewLine+"O-S"); Text_SetColor(tx2,Yellow); Text_SetStyle(tx2,2,0); }
프로필 이미지
매치다2
58
글번호 226963
종목검색
답변완료

문의드립니다.

안녕하세요.시스템 수식을 부탁드립니다.매수조건1 성립:무포지션이거나 매도 포지션이면 매수조건1=0 으로 합니다.음봉이 발생하고 이후에 발생한 4봉만을 기준으로 합니다.4봉안에서 양봉이 3개이상 발생해야 합니다.최초 양봉 종가 < 2번째 양봉 종가 < 3번째 양봉 종가 이어야 합니다.4봉안에서 위의 조건을 만족하는 3개의 양봉 출현 전에 음봉이 발생한다고 하면발생한 음봉 종가는 위의 최초양봉 시가보다 커야 합니다.이런 조건을 다 만족하면 매수조건1 은 성립한다고 정의 합니다.물론 4봉안에서 음봉이 발생하지 않고 최초 양봉 종가 < 2번째 양봉 종가 < 3번째 양봉 종가양봉이 나와도 4봉째를 기다리지 않고 바로 매수조건1 =1 로 하고 비로서 매수조건1 은 성립이 됩니다.매수조건2:매수조건1 =1 성립되는 순간의 양봉이나매수조건1 =1 성립된 이후의 양봉에서양봉종가> 볼린저밴드 하단선 +20틱 되면( 볼린저밴드는 20이평,2 편차 기본셋팅 사용)매수조건2=1 로 정의합니다.매수조건2=1 일 때 해지 조건:음봉이던지 양봉던지 관계없이 종가가 볼린저밴드 하단선 +20틱 아래로 3번 있게되면 매수조건2 =0매수조건1 =0 으로 모두 조건이 해지됩니다.매수조건2=1 일 때 매수 조건 :매수조건2=1 을 만족할 때현재봉 양봉종가 > 볼린저밴드 하단선 +20틱 and (바로직전봉이 양봉일시) 바로 직전 첫째봉 양봉 종가 > 볼린저밴드 하단선 +20틱 이면 매수하고또는현재봉 양봉종가 > 볼린저밴드 하단선 +20틱 and (바로직전봉이 음봉이고 직전 2번째봉이 양봉이면) 직전 2번째봉 양봉종가 > 볼린저밴드 하단선 +20틱 이면 매수하고 또는매수조건2=1 을 만족한 이후에 음봉이 발생하고 발생하는 음봉 시가 < 다음봉 양봉 종가 일 때도 매수하고또는매수조건2=1 을 만족한 이후에 첫양봉종가< 2번째 양봉 종가 를 만족하는 양봉이 2연속 발생시도 매수합니다.매수후 손절청산:매수후 매수봉 저가를 현재가가 하방 이탈시 즉시 손절 청산합니다.매수후 이익청산:매수후 양봉종가> 매수봉 종가 되면 이익청산 합니다.매도수식 : 반대논리로 부탁드립니다.
프로필 이미지
종호
79
글번호 226962
시스템
답변완료

질문 2개(1. 포지션청산신호 2.종목보유수량제한)

안녕하세요? 지수선물 시스템 프로그램을 테스트 중 입니다.1. 반대포지션 전량을 청산하고 새로운 신호진입을 하려고 합니다.그런데 지금은 5개의 반대포지션 중 2개의 진입신호가 발생하면 3개의 반대포지션이 남는 것으로 끝납니다.예를 들어 매수조건 발생시 매도포지션청산신호를 먼저 발생시키는 순서라고 하더라도 전체 매도포지션 수량 중 매수신호의 수량만 빠지면서 매수진입이 되지 않는 경우가 발생합니다. 2. 신호 발생시 마다 진입하는 프로그램인데, 예수금 잔액을 고려해서 전체 포지션의 갯수를 제한하고 싶습니다.지금은 모의투자 중이라서 그런지? 에러가 발생합니다.if ( getnumaccounts() < 10 ) then {}에서if (getumaccounts ( 1223455-02 ) <10 ) then {}계좌번호 추가시 "-"에서 에러가 발생합니다.그리고 예스스탁 홈피 이상해요...크롬에서는 진입도 안되고빙에서 작업시 복사 기능도 안되고....
프로필 이미지
jhs0713
136
글번호 226955
시스템

김윤한 님에 의해서 삭제되었습니다.

프로필 이미지
김윤한
2025-10-16
2
글번호 226954
지표
답변완료

일봉전략을 5분봉전략으로의 변환 코드 검토 부탁 드립니다. (수정)

얼마 전 올렸던 질문(글번호: 194570) 관련 추가질문입니다.아래와 같이 코드를 변경했는데, 이게 맞나 싶네요... 결과가 너무 달라요.그리고, 날짜변경시 Daily~로 시작되는 변수들을 업데이트 하도록 했는데,한국투자증권 나스닥 선물 시간상 한국자정에 날짜가 바뀌는 거 같은데미국시장 기준으로 바꾸도록 하려면 어떻게 하나요?검토 좀 부탁 드립니다.늘 감사 드립니다.============= 원본코드 =============// --- 원본 전략 로직 시작 (문법 수정 적용) ---PcntChange = Close / DayClose(PChng) * 100;If PcntChange < 100 - OverRange then Begin OS = TRUE; HighBand = Highest( High , Bands ); End;If PcntChange > 100 + OverRange then Begin OB = TRUE; LowBand = Lowest( Low, Bands); End;if EntriesToday(sDate) < 1 and NoContract > 0 and TradeAllowed then { If OS and MarketPosition <> 1 Then Buy("B", AtStop, HighBand, NoContract); If OB and MarketPosition <> -1 then Sell("S", AtStop, LowBand, NoContract);}If marketposition == 1 and C > entryprice + profit then ExitLong("LX_Profit", AtMarket);if marketposition == -1 and C < entryprice - profit then ExitShort("SX_Profit", AtMarket);if MRO( OS == false, MRO_Length, MRO_Threshold ) == -1 then OS = false;if MRO( OB == false, MRO_Length, MRO_Threshold ) == -1 then OB = false;ExitLong("EL_Trail", AtStop, lowest(low,exitperiod));ExitShort("ES_Trail", AtStop, highest(high,exitperiod));SetStopLoss(stopPer, PercentStop);// --- 원본 전략 로직 종료 ---============= 수정코드 =============Array: DailyReturns[100](0), DailyOpenArray[100](0), DailyHighArray[100](0), DailyLowArray[100](0), DailyCloseArray[100](0);// ================== 로직 시작 ==================// 1. 5분봉을 일봉으로 집계CurrentDate = sDate;if Index == 0 then begin PrevDate = CurrentDate; DailyOpen = Open; DailyHigh = High; DailyLow = Low; DailyBarCount = 0;end// 날짜가 바뀌었을 때 (새로운 거래일 시작)if CurrentDate != PrevDate then begin // 전일 일봉 데이터를 배열에 저장 For Value1 = 99 DownTo 1 begin DailyOpenArray[Value1] = DailyOpenArray[Value1-1]; DailyHighArray[Value1] = DailyHighArray[Value1-1]; DailyLowArray[Value1] = DailyLowArray[Value1-1]; DailyCloseArray[Value1] = DailyCloseArray[Value1-1]; end; DailyOpenArray[0] = PrevDailyOpen; DailyHighArray[0] = PrevDailyHigh; DailyLowArray[0] = PrevDailyLow; DailyCloseArray[0] = PrevDailyClose; // 새로운 일봉 시작 DailyOpen = Open; DailyHigh = High; DailyLow = Low; DailyBarCount = DailyBarCount + 1; PrevDate = CurrentDate;end// 같은 날 내에서 고가/저가 업데이트if High > DailyHigh then DailyHigh = High;if Low < DailyLow then DailyLow = Low;DailyClose = Close;// 이전 일봉 데이터 저장PrevDailyOpen = DailyOpen;PrevDailyHigh = DailyHigh;PrevDailyLow = DailyLow;PrevDailyClose = DailyClose;.......... 생략 ..........if CurrentDate != PrevDate and DailyBarCount > 1 then begin if DailyOpenArray[1] > 0 then DailyReturn = (DailyOpenArray[0] - DailyOpenArray[1]) / DailyOpenArray[1] else DailyReturn = 0; For Value1 = VaR_Period - 1 DownTo 1 begin DailyReturns[Value1] = DailyReturns[Value1-1]; end; DailyReturns[0] = DailyReturn;end.......... 생략 ..........// 5. 원본 전략 로직 (일봉 기준 계산)if DailyBarCount >= Pchng and DailyCloseArray[Pchng-1] > 0 then PcntChange = DailyClose / DailyCloseArray[Pchng-1] * 100else PcntChange = 100;If PcntChange < 100 - OverRange then begin OS = true; // 최근 Bands개 일봉의 최고가 HighBand = DailyHighArray[0]; For Value1 = 1 to Bands-1 begin if DailyHighArray[Value1] > HighBand then HighBand = DailyHighArray[Value1]; end;endelse OS = false;If PcntChange > 100 + OverRange then begin OB = true; // 최근 Bands개 일봉의 최저가 LowBand = DailyLowArray[0]; For Value1 = 1 to Bands-1 begin if DailyLowArray[Value1] < LowBand then LowBand = DailyLowArray[Value1]; end;endelse OB = false;// 6. 주문 실행 (5분봉에서 즉시 실행)if EntriesToday(sDate) < 1 and NoContract > 0 and TradeAllowed then begin If OS and MarketPosition <> 1 then Buy("B", AtStop, HighBand, NoContract); If OB and MarketPosition <> -1 then Sell("S", AtStop, LowBand, NoContract);endIf MarketPosition == 1 and C > EntryPrice + profit then ExitLong("LX_Profit", AtMarket);if MarketPosition == -1 and C < EntryPrice - profit then ExitShort("SX_Profit", AtMarket);if MRO(OS == false, MRO_Length, MRO_Threshold) == -1 then OS = false;if MRO(OB == false, MRO_Length, MRO_Threshold) == -1 then OB = false;// exitperiod도 일봉 기준으로 계산Var: ExitLowBand(99999), ExitHighBand(0);ExitLowBand = DailyLowArray[0];ExitHighBand = DailyHighArray[0];For Value1 = 1 to exitperiod-1 begin if DailyLowArray[Value1] < ExitLowBand then ExitLowBand = DailyLowArray[Value1]; if DailyHighArray[Value1] > ExitHighBand then ExitHighBand = DailyHighArray[Value1];end;ExitLong("EL_Trail", AtStop, ExitLowBand);ExitShort("ES_Trail", AtStop, ExitHighBand);SetStopLoss(stopPer, PercentStop);
프로필 이미지
zapster
165
글번호 226942
시스템
답변완료

종목검색식 부탁드립니다

일목균형표 수치 2종 (A , B)--->선행스팬 수치 다름.(주의) A종 7 19 38 B종 9 26 52 (일반적 수치) 에서, 1. 일목균형표 A종의 선행스팬1 이, B종의 선행스팬2 를 돌파하는 종목검색식 부탁드려요. 2. 일목균형표 A종의 선행스팬2 가, B종의 선행스팬2 를 돌파하는 종목검색식 부탁드립니다.
프로필 이미지
일지매7
100
글번호 194678
종목검색