커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

data1 A종목 일봉 data2 B종목 일봉 1000만원 가지고 A 와 B 를 50% 50% 씩 최대한 주식을 구매하여 (A몇주*A종가)+(B몇주*B종가)=월중합산가격 월말 월초 넘어가면 월중합산가격내에서 50% 50% 씩 최대한 주식을 구매하여 (A몇주*A종가)+(B몇주*B종가)=새로운월중합산가격 예) 1월 첫 영업일에 1000만원내 50%씩 A종목 B종목 종가*몇주로 1월초 합산가격 1월 중에 종가에 따라 갱신되다가 1월 마지막 영업일에 A종목 B종목 종가*몇주로 1월말 합산가격을 기억 2월 첫영업일에 1월말 합산가격내에서 50% 씩 A종목 B종목 종가*몇주로 2월초 합산가격 2월 중에 종가에 따라 갱신되다가 2월 마지막 영업일에 A종목 B종목 종가*몇주로 2월말 합산가격을 기억 ... 합산가격을 나타내는 지표 감사합니다
프로필 이미지
파인애플
2020-07-30
1165
글번호 141125
지표
답변완료

시작일 시작시간

Input : 투자금액(8000000),Period(20), MultiD(2), N(1),시작일(20200729),시작시간(094500),청산시간(153000); Input : loss(5),P(3),WRP(10); var : e(0),x(0),count(0),Tcond(false),BBup(0),BBdn(0),WR(0),Vma(0); var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false); var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false); Array : VV[5](0),XX[5](0); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); WR = WILLR(WRP); Vma = ma(V,P); vv[0] = floor((투자금액*0.1)/NextBarOpen); vv[1] = floor((투자금액*0.1)/NextBarOpen); vv[2] = floor((투자금액*0.2)/NextBarOpen); vv[3] = floor((투자금액*0.2)/NextBarOpen); vv[4] = floor((투자금액*0.4)/NextBarOpen); if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then Tcond = true; if bdate != bdate[1] Then count = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then count = count+1; if sdate >= 시작일 and stime >= 시작시간 Then Tcond = true; if Tcond == true then{ if (TotalTrades == 0 or MarketPosition == 0 and BarsSinceExit(1) > 2) then{ if MarketPosition == 0 and count < N and CrossDown(c,bbdn) and V >= Vma[1]*2.0 Then { buy("b1",atmarket,def,vv[MaxEntries]); } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then{ e = e +1; if e == 1 then XX[e] = CurrentContracts; Else XX[e] = CurrentContracts-CurrentContracts[1]; } #두번째 매수 if MarketPosition == 1 and e == 1 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b2",atmarket,def,vv[MaxEntries]); } #세번재매수 if MarketPosition == 1 and e == 2 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b3",atmarket,def,vv[MaxEntries]); } #네번재매수 if MarketPosition == 1 and e == 3 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b4",atmarket,def,vv[MaxEntries]); } #다섯번재매수 if MarketPosition == 1 and e == 4 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b5",atmarket,def,vv[MaxEntries]); } HH = highest(H,BarsSinceEntry); if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx1" Then Bxcond1 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx2" Then Bxcond2 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx3" Then Bxcond3 = true; if Bxcond1 == false and HH >= EntryPrice*1.10 and HH < EntryPrice*1.15 Then ExitLong("Bx1",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(1/5)),1); if Bxcond2 == false and HH >= EntryPrice*1.15 and HH < EntryPrice*1.20 Then ExitLong("Bx2",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(2/5)),1); }}} ----------------- 현재 설정사용중인 수식입니다. 시스템매수를 끊고 장 도중에 중간에 새로 시작하고 싶을때 시작시간을 예를들어 09:45분으로 변경해서 실행을 하면 다음날도 시스템작동 시작시간이 09:45분으로 시작되는건가요? 저는 시작일에 시작시간 09:45분이후부터 다음날에는 09:00시 시작으로 하고 싶은데 안되나요? 가능하다면 수식변경한번 부탁드립니다.
프로필 이미지
바나
2020-07-30
1133
글번호 141122
시스템
답변완료

호가잔량 이평 오실레이터

안녕하세요? 호가잔량 이평 오실레이터에서 이전봉 대비 매수총잔량이 우위시 빨간색, 이전봉 대비 매도총잔량 우위시 검정색으로 하여 막대그래프가 아닌 선 그래프로 표시하고 싶습니다. 참고로 MACD 오실레이터에서 이전봉 대비 +,- 의 경우 아래와 같이 수식을 작성해 주셨기에 이와 같이 부탁드립니다. 감사합니다. <MACD 오실레이터> input : P1(12),P2(26),P3(9); var1 =MACD_OSC(P1,P2,P3); if crossup(var1,0) Then value1 = var1; if var1 > 0 Then{ if var1 > value1 Then value1 = var1; if var1 < var1[1] and var1 < value1 Then plot1(var1,"osc",BLUE); Else plot1(var1,"osc",RED); } if CrossDown(var1,0) Then value2 = var1; if var1 < 0 Then{ if var1 < value2 Then value2 = var1; if var1 > var1[1] and var1 > value2 Then plot1(var1,"osc",RED); Else plot1(var1,"osc",BLACK); }
프로필 이미지
풍재보살
2020-07-30
1256
글번호 141119
지표
답변완료

시스템

항상 감사합니다 시스템 진입수식입니다 진입만 있고 청산조건이 없다해서 말로풀어봅니다 >청산 매수신호이후 매수캔들 저가와같거나 높고 캔들고가 높이고 올라가다가 최고봉 앞고가 캔들이후 다음캔들이 앞최고가 (고가같거나,고가보다가격낮고)못가고 다음캔들이 앞캔들저가깨면 청산 var : T(0),LL(0),Li(0); #고가@이면 1 if H > H[1] Then T = 1; #고가 @이면 -1 if H < H[1] Then T = -1; #고가 @반전발생 if T == -1 and T[1] != -1 Then { #최저장 LL = L; #최봉번호 Li = index; #발 변수 Condition1 = true; } #하 이후 if Condition1 == true then { #최 갱신 if L < LL Then { LL = L; Li = index; } #최봉 이후에 전봉고가보다 크고 저가는 최저가 이상이면 매수 if index > Li and H > H[1] and L >= LL Then { Condition1 = false; plot1(L,"검색",CYAN); } }
프로필 이미지
에리카
2020-07-30
1147
글번호 141116
시스템
답변완료

수정 좀 부탁드립니다!

안녕하세요! 운영자님! 항상 노고에 감사드립니다! 아래는 일전에 만들어 주셨던 수식 잘 사용하고 있습니다. 다름이 아니라 현재는 큰 진폭 파동선만 가격이 표시가 되는데 각각 녹색 파동선 진폭마디 마다 가격이 표시 되면 매매에 많은 도움이 될 것 같습니다. 수정 좀 부탁드립니다! input: period(20),봉수(2),파동굵기(0),글크기(0); Var:선두께(파동굵기),상승색(GREEN), 하락색(YELLOW),예비선색상(white),상승세로선색상(RED),하락세로선색상(BLUE); Var:j(0),T(0),TL11(0),Tx11(0),TL22(0),TX22(0),LC(0),HC(0),HO(0),LO(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),idx(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/; Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); r[0] = 0; r[1] = 2; r[2] = 3.; r[3] = -1; r[4] = -2.; r[5] = 1; r[6] = 0.5; For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(h,Period)[1]) Then T = 1; if CrossDown(c,Lowest(l,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; //ZZ[j+1] = ZZ[j]; } LoVal[0] = l; LoBar[0] = 0; //ZZ[0] = l; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,상승색); Tx = Text_New(date11,time11,Value11,"▼"); #동그라미 색상, 빨강 Text_SetColor(Tx,BLACK); Text_SetStyle(Tx,2,1); Text_SetSize(tx,15); tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine); Text_SetStyle(tx,2,1); Text_SetSize(tx,글크기); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } TL2[0] = TL_New(date21,time21,fr[0],date22,time22,fr[0]); TL_SetColor(TL2[0],white); #TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]); #TL_SetColor(TL2[1],RED); #TL_SetStyle(TL2[1], 3); #TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]); #TL_SetColor(TL2[2],red); #TL_SetSize(TL2[2],1); #TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2)); #Text_SetColor(Tx2[2],BWHITE); #Text_SetStyle(TX2[2],1,1); #TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]); #TL_SetColor(TL2[3],RED); #TL_SetStyle(TL2[3], 3); #TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]); #TL_SetColor(TL2[4],red); #TL_SetSize(TL2[4],1); #TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2)); #Text_SetColor(Tx2[4],BWHITE); #Text_SetStyle(TX2[4],1,0); TL2[5] = TL_New(date21,time21,fr[5],date22,time22,fr[5]); TL_SetColor(TL2[5],WHITE); TL_SetSize(tl2[5],1); idx = 0; } TL_SetEnd(TL11,sdate,stime,LC); Text_SetLocation(TX11,sdate,stime,LC); If LoVal[0] > l Then { LoVal[0] = l; LoBar[0] = 0; //ZZ[0] = l; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; //Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" "); #동그라미 색상, 빨강 //Text_SetColor(Tx,BLUE); //Text_SetStyle(Tx,1,0); TL_SetEnd(TL2[0],date22,time22,fr[0]); TL_SetEnd(TL2[1],date22,time22,fr[1]); TL_SetEnd(TL2[2],date22,time22,fr[2]); Text_SetLocation(TX2[2],date22,time22,fr[2]); TL_SetEnd(TL2[3],date22,time22,fr[3]); TL_SetEnd(TL2[4],date22,time22,fr[4]); Text_SetLocation(TX2[4],date22,time22,fr[4]); TL_SetEnd(TL2[5],date22,time22,fr[5]); TL_SetEnd(TL2[6],date22,time22,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); idx = 0; } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; //ZZ[j+1] = ZZ[j]; } HiVal[0] = h; HiBar[0] = 0; //ZZ[0] = h; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,하락색); Tx1 = Text_New(date11,time11,Value11, "▲"); #동그라미 색상, 파랑 Text_SetColor(Tx1,red); Text_SetStyle(Tx1,2,5); Text_SetSize(tx1,15); tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)); Text_SetStyle(tx,2,0); Text_SetSize(tx,글크기); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } TL3[0] = TL_New(date31,time31,fr[0],date32,time32,fr[0]); TL_SetColor(TL3[0],white); TL_SetSize(tl3[0],1); #TL3[1] = TL_New(date31,time31,fr[1],date32,time32,fr[1]); #TL_SetColor(TL3[1],BLUE); #TL_SetStyle(TL3[1], 3); #TL3[2] = TL_New(date31,time31,fr[2],date32,time32,fr[2]); #TL_SetColor(TL3[2],BLUE); #TL_SetSize(TL3[2],1); #TX3[2] = Text_New(date32,time32,fr[2],NumToStr(fr[2],2)); #Text_SetColor(Tx3[2],BWHITE); #Text_SetStyle(TX3[2],1,1); #TL3[3] = TL_New(date31,time31,fr[3],date32,time32,fr[3]); #TL_SetColor(TL3[3],BLUE); #TL_SetStyle(TL3[3], 3); #TL3[4] = TL_New(date31,time31,fr[4],date32,time32,fr[4]); #TL_SetColor(TL3[4],BLUE); #TL_SetSize(TL3[4],1); #TX3[4] = Text_New(date32,time32,fr[4],NumToStr(fr[4],2)); #Text_SetColor(Tx3[4],BWHITE); #Text_SetStyle(TX3[4],1,0); TL3[5] = TL_New(date31,time31,fr[5],date32,time32,fr[5]); TL_SetColor(TL3[5],white); idx = c; } TL_SetEnd(TL22,sdate,stime,HC); Text_SetLocation(TX22,sdate,stime,HC); If HiVal[0] < h Then { HiVal[0] = h; HiBar[0] = 0; //ZZ[0] = h; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; //Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" "); #동그라미 색상, 빨강 //Text_SetColor(Tx,RED); //Text_SetStyle(Tx,1,1); TL_SetEnd(TL3[0],date32,time32,fr[0]); TL_SetEnd(TL3[1],date32,time32,fr[1]); TL_SetEnd(TL3[2],date32,time32,fr[2]); Text_SetLocation(TX3[2],date32,time32,fr[2]); TL_SetEnd(TL3[3],date32,time32,fr[3]); TL_SetEnd(TL3[4],date32,time32,fr[4]); Text_SetLocation(TX3[4],date32,time32,fr[4]); TL_SetEnd(TL3[5],date32,time32,fr[5]); TL_SetEnd(TL3[6],date32,time32,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); idx = 0; } } idx = idx+1; TL_SetSize(tL,선두께); TL_SetSize(tL1,선두께); TL_SetColor(tL,예비선색상); var : VTL(0); if idx == 봉수 Then { } plot1(fr[0]); plot2(fr[5]); plot3(fr[6]);
프로필 이미지
qha71
2020-07-30
1052
글번호 141115
지표
답변완료

안녕하세요.

아래 수식을 시스템식 으로 부탁합니다. (지표가 0선 돌파시 매수,매도) input : period1(20),period2(12),sto1(5),sto2(3),short(12),long(26),signal(9),cciperiod(10); var : B1(0),B2(0),B3(0),B4(0),B5(0),B6(0),B7(0); B1=iff(ema(C,12)-ema(C,26) >ema(ema(C,12)-ema(C,26),9), 1,-1); B2=iff(C > ma(C, Period1), 1, -1); B3=iff((C - C[period2]) / C[period2] * 100 > 0, 1, -1) ; B4=iff(ema((C-lowest(L, sto1)) / (highest(H, sto1) - lowest(L, sto1)) * 100, sto2)>50, 1, -1); B5=iff(CCI(cciperiod)>0,1,-1); B6=iff(ema(accum(((C -L)-(H- C))/ (H-L)*V), 3) - ema(accum(((C -L)-(H- C))/(H-L)*V), 10) >=0,1,-1); B7=iff(SAR(0.02,0.2) < C,1,-1); var1 = B1+B2+B3+B4+B5+B6+B7; if var1 > var1[1] Then plot1(var1,"지표",RED); Else plot1(var1,"지표",blue); PlotBaseLine3(0, "기준선0");
프로필 이미지
뚜벅뚜벅
2020-07-30
1127
글번호 141114
시스템
답변완료

문의

아래 청산수식을 보조data3 에 사용할 수 있도록 요청드립니다. ************************************************************************** input : dnLOSS(1.30),dnLimit(99999), dnTRAIL1(3.40),최소수익2(10.00),dnTRAIL2(0.50),최소가격변화포인트(0.30), 봉갯수(40); input : dnHLtime(190000),dnbar2(19),dnHLrange(19); input : dn단기1(300),dn장기1(400); Input : dnPeriod1(700),dnPeriod2(200); input : exshortbar(50); input : dn연속봉1(2),dn연속small1(1.6),dn연속large1(1.8); input : 양봉(0.20),음봉(0.60),도지(0.60),합(1.00); SetStopLoss(dnLOSS,PointStop); SetStopProfittarget(dnLimit,PointStop); ExitShort("트레일링",AtStop,Lowest(l,BarsSinceEntry)+dnTRAIL1); SetStopTrailing(dnTRAIL2,최소수익2,PointStop); SetStopInactivity(최소가격변화포인트,봉갯수,PointStop); var : hh(0),ll(0),ii(0); if bdate != bdate[1] Then { hh = 0; ll = 0; ii = 0; } if stime >= dnHLtime then { ii = ii +1; if hh == 0 or (hh > 0 and h > hh) Then hh = h; if ll == 0 or (ll > 0 and l < ll) Then ll = l; if ii >= dnbar2 and hh-ll < dnHLrange Then ExitShort("time최소변화"); } var : ma1(0), ma2(0); ma1 = ma(C,dn단기1); ma2 = ma(C,dn장기1); if CrossUp(ma1, ma2) then ExitShort("이평12"); Var : 매수이평(0), 매도이평(0); 매수이평 = ma(bids, dnperiod1); 매도이평 = ma(asks, dnperiod2); if crossup(매수이평, 매도이평) then exitshort("호가이평1"); var1 = max(C,O); var2 = min(C,O); var5 = Lowest(var1,exshortbar); var6 = highest(var2,exshortbar); if var5[1] >= var6[1] Then Exitshort("s수평"); if accumN(iff(C>O,1,0),dn연속봉1) == dn연속봉1 and ExitDate(1) != sdate and AccumN(abs(C-O), dn연속봉1) >= dn연속small1 and AccumN(abs(C-O), dn연속봉1) < dn연속large1 then ExitShort("s연속봉1"); var : sum(0); if MarketPosition == -1 Then { if C > O Then sum = sum - 양봉; Else if C < O Then sum = sum + 음봉; Else sum = sum -도지; if sum <= -합 Then Exitshort("도지"); } Else sum = 0;
프로필 이미지
좌오비우오비
2020-07-30
1105
글번호 141113
시스템
답변완료

질문

안녕하세요. 하기 질문드립니다. 1. 시스템 합성 (수식1+2) 방법 ==> 기존에는 가능했는데 신규에서는 불가능합니다. 2. 챠트 업로드에 대한설명 ==> 챠트 설정을 확인하라는 멘트 나옵니다. 감사합니다.
프로필 이미지
한국사람73
2020-07-30
1040
글번호 141110
지표
답변완료

수식 의뢰 부탁드립니다.

개발자님의 노고에 감사드립니다 18시 이후 120틱 이익발생 시 청산 후 매매중지를 하려고 합니다 이리저리했지만 안 돼서 부탁드립니다 감사합니다 # 날짜 변경되면 해제 If sDate != sDate[1] Then { SetStopProfittarget(0);//해제 } #18시 이후 120틱 이익발생 시 청산 if stime > 180000 Then { SetStopProfittarget(120,PointStop); }
프로필 이미지
산이보리
2020-07-30
1010
글번호 141109
시스템

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

프로필 이미지
2wnwn
2020-07-30
25
글번호 141108
지표