커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

매수후 청산 수식 부탁드릴께요( 조건만족시 10만원씩 청산 )

국내 주식 tiger200 data1 tiger200 30분봉 data2 kodex200 일봉 data3 tiger200 일봉 매수 조건은 그대로 매수 청산 조건은 아래와 같이 " if MarketPosition == 1 Then { if MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 Then " 10만원씩 청산 " } " input : 일봉RSI기간(30); input : 일봉RSI값1(48),일봉RSI값2(36),일봉RSI값3(30); input : 최대투자금액(1500); input : 진입금액1(10); input : 진입금액2(15); input : 진입금액3(20); input : 진입금액4(25); input : 진입금액5(30); input : 진입금액6(35); input : 진입금액7(40); input : 진입금액8(50); input : 진입금액9(60); input : 진입금액10(70); input : 이차진입금액(100); input : 삼차진입금액(200); input : MFI기간(15),MFI값(90); input : 심리도기간(15),심리도값(80); var : mav(0,data2),MM(0,Data3),SS(0,Data3); var : MMM(0,Data2),SSS(0,Data2),Xcnt(0,Data2),Xvol(0,data1); MM = Data3(mfi(MFI기간)); SS = Data3(Simrido(심리도기간)); MMM = Data2(mfi(MFI기간)); SSS = Data2(Simrido(심리도기간)); var : vol(0); var : RSI2(0,Data2); RSI2 = Data2(RSI(일봉RSI기간)); if MarketPosition == 0 or (MarketPosition == 1 and AvgEntryPrice*CurrentContracts < 최대투자금액*10000 ) Then # and MM < MFI값 and SS < 심리도값 and MMM < MFI값 and SSS < 심리도값 Then { if data1(sTime == 93000 or sTime == 120000 ) Then # or sTime == 123000 { if Data2(RSI2 > 일봉RSI값1) Then { if MarketPosition == 0 or (MarketPosition == 1 and C >= AvgEntryPrice*0.98) Then vol = Floor(진입금액1*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.98 and C >= AvgEntryPrice*0.96 Then vol = Floor(진입금액2*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.96 and C >= AvgEntryPrice*0.94 Then vol = Floor(진입금액3*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.94 and C >= AvgEntryPrice*0.92 Then vol = Floor(진입금액4*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.92 and C >= AvgEntryPrice*0.90 Then vol = Floor(진입금액5*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.90 and C >= AvgEntryPrice*0.88 Then vol = Floor(진입금액6*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.88 and C >= AvgEntryPrice*0.86 Then vol = Floor(진입금액7*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.86 and C >= AvgEntryPrice*0.84 Then vol = Floor(진입금액8*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.84 and C >= AvgEntryPrice*0.82 Then vol = Floor(진입금액9*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.82 and C >= AvgEntryPrice*0.80 Then vol = Floor(진입금액10*10000/c); Buy("불타기매매1",OnClose,DEf,vol); } if Data2(RSI2 < 일봉RSI값2 and RSI2 > 일봉RSI값3 ) Then { Buy("하락과도매매1",OnClose,DEf,Floor(이차진입금액*10000/c)); } if Data2(RSI2 < 일봉RSI값3) Then { Buy("폭락과도매매1",OnClose,DEf,Floor(삼차진입금액*10000/c)); } } } if MarketPosition == 1 Then { if MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 Then " 10만원씩 청산 " }
프로필 이미지
이형지
2020-12-14
1267
글번호 144686
시스템
답변완료

시스템합성중에 잘안됩니다.

주시스템은 패턴매매인데 for함수때문인지 매수매도를 어디에 두어야 하는지 잘안됩니다. . 그림과 같이 빨간선일때는 매수신호만 가능. 파란선일때는 매도신호만 가능 파라볼릭 var1>0일때는 매수만 var1<0일때로 해서 매수매신호에 넣어봐도 신호가 안먹히는 것같습니다. ₩ 그리고 청산신호도 다이버전스를 이용하여 할려하는데 안먹힙니다. ㅠㅠ 필터로 pci를 쓰고 있는데 그것도 안먹히는 것같습니다. 도와주세요..감사합니다. Input:length(10); Var:j1(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL11(0), Text1(0),처리구분(""),Buysetup(0),sellsetup(0); Array:고점[10,2](0),저점[10,2](0); //가격,위치 // Input : af(0.002), maxAF(0.2); var1 = CSar(af,maxAF); if var1 > C Then Condition1=true; Else Condition1=False; // Variables: NCO(0); NCO = C - C[Length]; //pci input : Period(20); var : mo(0),cnt(0),P(0),UPsum(0),Dnsum(0),PCI(0); Array : Gredient[100](0),Updev[100](0),Dndev[100](0); P = Period-1; Mo = C-C[Period]; for cnt = 0 to P{ Gredient[cnt] = C[P]+Mo*(P-cnt)/P; } for cnt = 0 to P{ Updev[cnt] = 0; Dndev[cnt] = 0; if C[cnt] > Gredient[cnt] Then Updev[cnt] = C[cnt]-Gredient[cnt]; if C[cnt] < Gredient[cnt] Then Dndev[cnt] = Gredient[cnt]-C[cnt]; } upsum = 0; Dnsum = 0; for cnt = 0 to P{ upsum = upsum +Updev[cnt]; Dnsum = dnsum +dndev[cnt]; } PCI = upsum/(upsum+Dnsum)*100; Condition7 = pci<10 or pci>90 ; //패턴시작 처리구분 = ""; 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 j1 = 10 DownTo 2 { 고점[j1,1] = 고점[j1-1,1]; 고점[j1,2] = 고점[j1-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(TL11) == sDate[sBar] and TL_GetBeginTime(TL11) == sTime[sBar] Then { TL_Delete(TL11); Text_Delete(Text1); } TL11 = 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)); Text_SetStyle(Text1, 2, 1); if Condition7 and Condition1==True then Buy("b"); } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j1 = 10 DownTo 2 { 저점[j1,1] = 저점[j1-1,1]; 저점[j1,2] = 저점[j1-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(TL11) == sDate[sBar] and TL_GetBeginTime(TL11) == sTime[sBar] Then { TL_Delete(TL11); Text_Delete(Text1); } TL11 = 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)); Text_SetStyle(Text1, 2, 0); if Condition7 and Condition1==False Then Sell("s"); } } inPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185); var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ; var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0); RSIV = RSI(RSIPeriod); RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line MidBand = ma(RSIV,BandPeriod); //Volatility_Band UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down # if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전 var1 = RSIPL[1]; var2 = var1[1]; var3 = C[1]; var4 = var3[1]; var5 = sdate[1]; var6 = var5[1]; var7 = stime[1]; var8 = var7[1]; if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고 var9 = 1; } else var9 = 0; if var9 == 1 then { //TL1 = TL_New(var6,var8,var4,var5,var7,var3); //TLi1= TL_New_self(var6,var8,var2,var5,var7,var1); TX1 = Text_new(var5, var7, L, "★"); //TL_SetSize(TL1, 2); //TL_SetColor(TL1, Red); //TL_SetSize(TLi1, 2); //TL_SetColor(TLi1, Red); //Text_SetColor(Tx1,Magenta); //Text_SetStyle(Tx1,0,0); } if CrossUp(RSIPL, DnBand) then { TX3 = Text_new(sdate, stime, L, "▲"); //Text_SetColor(Tx3,rgb(160,70,255)); //Text_SetStyle(Tx3,2,0); } if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전 var11 = RSIPL[1]; var12 = var11[1]; var13 = C[1]; var14 = var13[1]; var15 = sdate[1]; var16 = var15[1]; var17 = stime[1]; var18 = var17[1]; if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고 var19 = 1; } else var19 = 0; if var19 == 1 then { //TL2 = TL_New(var16,var18,var14,var15,var17,var13); //TLi2= TL_New_self(var16,var18,var12,var15,var17,var11); TX2 = Text_new(var15, var17, H, "★"); //TL_SetSize(TL2, 2); //TL_SetColor(TL2, blue); //TL_SetSize(TLi2, 2); //TL_SetColor(TLi2, blue); //Text_SetColor(Tx2,Lcyan); //Text_SetStyle(Tx2,0,1); } if CrossDown(RSIPL, UpBand) then { TX4 = Text_new(sdate, stime, H, "▼"); //Text_SetColor(Tx4,Rgb(0,255,0)); //Text_SetStyle(Tx4,2,1); } # //plot1(RSIPL, "RSIPL",Lgreen,def,0); //plot2(TSL,"TSL",red,def,0); //plot3(MidBand,"MidBand",magenta,def,0); //plot4(UpBand,"UpBand",blue,def,0); //plot5(DnBand,"DnBand",blue,def,0); //if CrossUp(RSIPL,DnBand) then //plot6(RSIPL, "상향돌파시점"); //if CrossDown(RSIPL, UpBand) then //plot7(RSIPL, "하향이탈시점"); //if var9 == 1 then //plot8(RSIPL, "상승다이버전스"); //if var19 == 1 then //plot9(RSIPL, "하락다이버전스"); if var19 == 1 then ExitLong("매수청"); if var9 == 1 then ExitShort("매도청"); if NCO<-50 Then ExitLong("매수손"); if NCO>50 Then ExitShort("매도손");
프로필 이미지
코샘매쓰
2020-12-14
1215
글번호 144685
시스템
답변완료

검색식 재문의드립니다

안녕하십니까 어제 수식 세가지 적어주신것 감사히 받아보았습니다 다름이 아니라 제가 아래와 같은 value2~5의 지표식을 사용하다가 작성해주신 검색식들을 대입해보니 작동하지 않아서 제가 어디서 실수를 했나 싶어서 여쭤봅니다 --------------------------------------------- var : count(0),mav(0); if value1 <= 0 and SwingHigh(1,h,10,10,21) != -1 Then{ var1 = H[1]; var2 = Var1[1]; value1 = 1; if var1 > var2 and var2 > 0 and var3 > var4 and var4 > 0 Then value2 = var1; } if value1 >= 0 and SwingLow(1,L,10,10,21) != -1 Then{ var3 = L[1]; var4 = Var3[1]; value1 = -1; if var3 < var4 and var4 > 0 and var1 < var2 and var2 > 0 Then value3 = var3; } if value9 <=0 and swinghigh(1,h,30,30,61) != -1 Then{ Var5 = h[1]; Var6 = Var5[1]; Value9 = 1; if Var5 > var6 and Var6 > 0 and Var7 > Var8 and Var8 > 0 Then Value4 = Var5; } if value9 >=0 and swinglow(1,l,30,30,61) != -1 Then{ Var7 = l[1]; Var8 = Var7[1]; value9 = -1; if Var7 < Var8 and Var8 > 0 and Var5 < Var6 and Var6 > 0 Then Value5 = Var7; } mav = ma(C,120); count = 0; if Value2 < mav and value2 != value2[1] Then count = count+1; if value3 < mav and value3 != Value3[1] Then count = count+1; if value4 < mav and value4 != Value4[1] Then count = count+1; if value5 < mav and Value5 != Value5[1] Then count = count+1; if count >= 1 Then Find(1); 번거로우시겠지만 어디가 잘못되었는지 첨삭 한번 부탁드리겠습니다..
프로필 이미지
하누왕
2020-12-14
1146
글번호 144684
검색
답변완료

문의드립니다.

안녕하세요. 문의드립니다. 제가 적용하고자 하는 수식을 과거 차트에 백테스트 해보고 싶은데요. 어떻게 하면 되는지 좀 알려주세요. 그냥 지나간 차트를 보면 잘 맞지 않는 경우가 있고 오랜기간 볼 수 없는거 같아서요. 틱봉하고 분봉 보고 싶은데 방법 있을까요??
프로필 이미지
새론시작
2020-12-14
917
글번호 144683
시스템

정이품송 님에 의해서 삭제되었습니다.

프로필 이미지
정이품송
2020-12-14
1
글번호 144682
종목검색

정이품송 님에 의해서 삭제되었습니다.

프로필 이미지
정이품송
2020-12-14
0
글번호 144681
종목검색

정이품송 님에 의해서 삭제되었습니다.

프로필 이미지
정이품송
2020-12-14
1
글번호 144680
종목검색

정이품송 님에 의해서 삭제되었습니다.

프로필 이미지
정이품송
2020-12-14
0
글번호 144679
종목검색

정이품송 님에 의해서 삭제되었습니다.

프로필 이미지
정이품송
2020-12-14
0
글번호 144678
종목검색

정이품송 님에 의해서 삭제되었습니다.

프로필 이미지
정이품송
2020-12-14
0
글번호 144677
종목검색