커뮤니티

출력문제 다시 부탁

프로필 이미지
sungdong
2018-07-16 12:55:28
194
글번호 120619
답변완료
1.일정기간(20거래일정도)에 시스템의 성능보고서처럼 출력을 화일로 받도록 수정 부탁합니다. 2.또한가지는 sx또는 sp를 먼저찾고나서 b를 찾을 수는 없는지요? Input : short(12),long(26),sig(9),시작시간(90000),종료시간(150000),당일수익틱수(30),텍스트표시소숫점자리수(2),Period(20); Var : MACDv(0),MACDS(0),MACDO(0),T1(0),T2(0),tx(0),NP(0),N1(0),Tcond(false),당일수익(0),daypl(0),Xcond(false),Bcond(false),Scond(false); NP = NetProfit; MACDv = MACD(short, long); MACDs = ema(MACDv,sig); MACDO = MACDV-MACDS; var1 = ma(C,Period); 당일수익 = PriceScale*당일수익틱수; if MACDV > MACDS Then T1 = 1; Else T1 = -1; if var1 > var1[1] Then T2 = 1; Else T2 = -1; if stime == 시작시간 or (stime > 시작시간 and stime[1] <시작시간) Then{ Tcond = true; Xcond = false; N1 = Np; } daypl = NP-N1; if TotalTrades > TotalTrades[1] and IsExitName("sp",1) == true Then{ Xcond = true; tx = Text_New(sdate,stime,H,"매도청산"+NumToStr(ExitPrice(1),텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,red); } bcond = T1 == 1 and T2 == 1; Scond = T1 == -1 and T2 == -1; if Tcond == true and Xcond == false then{ if MarketPosition <= 0 and Bcond == true and Bcond[1] == false Then{ buy("b"); tx = Text_New(sdate,stime,H,"매수진입 :"+NumToStr(C,텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,RED); } if MarketPosition == -1 and Scond == false Then{ ExitShort("sx"); tx = Text_New(sdate,stime,H,"매도청산"+NumToStr(c,텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,red); } if MarketPosition == -1 Then ExitShort("sp",AtLimit,EntryPrice-당일수익+daypl); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-07-16 15:24:31

안녕하세요 예스스탁입니다. 1 csv파일로 출력되게 작성해 드립니다. 파일은 프로그램 설치폴더의 yeslang폴더 아래에 만들어 집니다. 파일추출함수(print)에 관래서는 아래 링크 참고하시기 바랍니다. https://www.yesstock.com/YesTrader/YesLanguage/YesLanguage_help/4_3.htm Input : short(12),long(26),sig(9),시작시간(90000),종료시간(150000),당일수익틱수(30),텍스트표시소숫점자리수(2),Period(20); Var : MACDv(0),MACDS(0),MACDO(0),T1(0),T2(0),tx(0),NP(0),N1(0),Tcond(false),당일수익(0),daypl(0),Xcond(false),Bcond(false),Scond(false); NP = NetProfit; MACDv = MACD(short, long); MACDs = ema(MACDv,sig); MACDO = MACDV-MACDS; var1 = ma(C,Period); 당일수익 = PriceScale*당일수익틱수; if MACDV > MACDS Then T1 = 1; Else T1 = -1; if var1 > var1[1] Then T2 = 1; Else T2 = -1; if stime == 시작시간 or (stime > 시작시간 and stime[1] <시작시간) Then{ Tcond = true; Xcond = false; N1 = Np; } daypl = NP-N1; if TotalTrades > TotalTrades[1] and IsExitName("sp",1) == true Then { Xcond = true; tx = Text_New(sdate,stime,H,"매도청산"+NumToStr(ExitPrice(1),텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,red); } bcond = T1 == 1 and T2 == 1; Scond = T1 == -1 and T2 == -1; if Tcond == true and Xcond == false then { if MarketPosition <= 0 and Bcond == true and Bcond[1] == false Then { buy("b"); tx = Text_New(sdate,stime,H,"매수진입 :"+NumToStr(C,텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,RED); } if MarketPosition == -1 and Scond == false Then{ ExitShort("sx"); tx = Text_New(sdate,stime,H,"매도청산"+NumToStr(c,텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,red); } if MarketPosition == -1 Then ExitShort("sp",AtLimit,EntryPrice-당일수익+daypl); } if TotalTrades > TotalTrades[1] Then { print("report.csv",",포지션,%.f,진입일,%.f,진입시간,%.f,진입가격,%.2f,청산일,%.f,청산시간,%.f,청산가격,%.2f,손익,%.2f", MarketPosition(1), EntryDate(1),EntryTime(1),EntryPrice(1),ExitDate(1),ExitTime(1),ExitPrice(1),PositionProfit(1)); } 2 신호발생시 같이 출력되는 내용입니다. 신호발생 순서로 출력됩니다. 임의로 먼저 찾게 할수는 없습니다. 3 올려주신 수식은 매수진입(buy)만 있고 매도진입(sell)은 없는데 청산은 매도포지션청산(exitshort)수식만 있고 매수포지션청산(exitlong)은 없습니다. 수식 내용 살펴보시기 바랍니다. 즐거운 하루되세요 > sungdong 님이 쓴 글입니다. > 제목 : 출력문제 다시 부탁 > 1.일정기간(20거래일정도)에 시스템의 성능보고서처럼 출력을 화일로 받도록 수정 부탁합니다. 2.또한가지는 sx또는 sp를 먼저찾고나서 b를 찾을 수는 없는지요? Input : short(12),long(26),sig(9),시작시간(90000),종료시간(150000),당일수익틱수(30),텍스트표시소숫점자리수(2),Period(20); Var : MACDv(0),MACDS(0),MACDO(0),T1(0),T2(0),tx(0),NP(0),N1(0),Tcond(false),당일수익(0),daypl(0),Xcond(false),Bcond(false),Scond(false); NP = NetProfit; MACDv = MACD(short, long); MACDs = ema(MACDv,sig); MACDO = MACDV-MACDS; var1 = ma(C,Period); 당일수익 = PriceScale*당일수익틱수; if MACDV > MACDS Then T1 = 1; Else T1 = -1; if var1 > var1[1] Then T2 = 1; Else T2 = -1; if stime == 시작시간 or (stime > 시작시간 and stime[1] <시작시간) Then{ Tcond = true; Xcond = false; N1 = Np; } daypl = NP-N1; if TotalTrades > TotalTrades[1] and IsExitName("sp",1) == true Then{ Xcond = true; tx = Text_New(sdate,stime,H,"매도청산"+NumToStr(ExitPrice(1),텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,red); } bcond = T1 == 1 and T2 == 1; Scond = T1 == -1 and T2 == -1; if Tcond == true and Xcond == false then{ if MarketPosition <= 0 and Bcond == true and Bcond[1] == false Then{ buy("b"); tx = Text_New(sdate,stime,H,"매수진입 :"+NumToStr(C,텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,RED); } if MarketPosition == -1 and Scond == false Then{ ExitShort("sx"); tx = Text_New(sdate,stime,H,"매도청산"+NumToStr(c,텍스트표시소숫점자리수)); Text_SetStyle(tx,2,2); Text_SetColor(tx,red); } if MarketPosition == -1 Then ExitShort("sp",AtLimit,EntryPrice-당일수익+daypl); }