커뮤니티
출력문제 다시 부탁
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);
}