커뮤니티
꺼꾸로 해보고싶은데요
2014-01-25 22:10:50
203
글번호 71874
안녕하세요
예스스탁 운영자님 테스트중 마이너스 -105 pt 네요
아래식 에서 모든 시스템 전체를 꺼꾸로 작성하려는데요
제가 실력이 안되어 부탁드립니다 수정은 어떻게하면 되나요? 감사드립니다
input : N(5);
var : unit(0);
var : entry(0),sumPL(0),Win(0),unitPL(0),cnt(0),count(0);
var : entry1(0),sumPL1(0),Win1(0),unitPL1(0);
var : sumdayentry(0),sumdayUnitPL(0),sumdaySumPL(0),sumdayWin(0);
Array : dayentry[30](0),daysumPL[30](0),dayWin[30](0),dayunitPL[30](0);
if ema(c,20) > ema(c,60) then
unit=2 ;
else if ema(c,50) > ema(c,20) and ema(C,20) >ema(c,60) then
unit=3 ;
else
unit=1;
if crossup(c,ema(c,20)) then
buy("b1",atmarket,def,unit);
if crossdown(c,ema(c,20)) then
sell("s1",atmarket,def,unit);
if marketposition == 1 then
exitlong("b1x",atstop,Highest(H,barsSinceEntry+1)-atr(20)*2);
if marketposition == -1 then
exitshort("s1x",atstop,lowest(L,barsSinceEntry+1)+atr(20)*2);
if date > date[1]+30 Then{
entry = 0;
UnitPL = 0;
SumPL = 0;
Win = 0;
}
if BarsSinceExit(1) == 1 Then{
entry = entry+1;
unitPL = unitPL + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
sumPL = sumPL + PositionProfit(1);
if PositionProfit(1) > 0 Then
Win = win+1;
}
if date != date[1] Then{
entry1 = entry[1];
UnitPL1 = UnitPL[1];
SumPL1 = SumPL[1];
Win1 = Win[1];
}
if date != date[1] Then{
dayentry[0] = 0;
dayUnitPL[0] = 0;
daySumPL[0] = 0;
dayWin[0] = 0;
for count = 1 to 29{
dayentry[count] = dayentry[count-1][1];
dayUnitPL[count] = dayUnitPL[count-1][1];
daySumPL[count] = daySumPL[count-1][1];
dayWin[count] = dayWin[count-1][1];
}
}
if MarketPosition != MarketPosition[1] and MarketPosition[1] != 0 Then{
dayentry[0] = dayentry[0]+1;
dayunitPL[0] = dayunitPL[0] + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
daysumPL[0] = daysumPL[0] + PositionProfit(1);
if PositionProfit(1) > 0 Then
dayWin[0] = daywin[0]+1;
}
sumdayentry = 0;
sumdayUnitPL = 0;
sumdaySumPL = 0;
sumdayWin = 0;
for cnt = 1 to N {
sumdayentry = sumdayentry+dayentry[cnt];
sumdayUnitPL = sumdayUnitPL+dayUnitPl[cnt];
sumdaySumPL = sumdaySumPL+daysumPL[cnt];
sumdayWin = sumdayWin+Daywin[cnt];
}
MessageLog("월거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",entry1,unitPL1,sumPL1,Win1,Win1/entry1*100);
MessageLog("N일거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",sumdayentry,sumdayunitPL,sumdaysumPL,sumdayWin,sumdayWin/sumdayentry*100);
답변 1
예스스탁 예스스탁 답변
2014-01-27 10:09:51
안녕하세요
예스스탁입니다.
input : N(5);
var : unit(0);
var : entry(0),sumPL(0),Win(0),unitPL(0),cnt(0),count(0);
var : entry1(0),sumPL1(0),Win1(0),unitPL1(0);
var : sumdayentry(0),sumdayUnitPL(0),sumdaySumPL(0),sumdayWin(0);
Array : dayentry[30](0),daysumPL[30](0),dayWin[30](0),dayunitPL[30](0);
if ema(c,20) > ema(c,60) then
unit=2 ;
else if ema(c,50) > ema(c,20) and ema(C,20) >ema(c,60) then
unit=3 ;
else
unit=1;
if crossup(c,ema(c,20)) then
sell("s1",atmarket,def,unit);
if crossdown(c,ema(c,20)) then
buy("b1",atmarket,def,unit);
if marketposition == -1 then
ExitShort("s1x",atlimit,Highest(H,barsSinceEntry+1)-atr(20)*2);
if marketposition == 1 then
ExitLong("b1x",AtLimit,lowest(L,barsSinceEntry+1)+atr(20)*2);
if date > date[1]+30 Then{
entry = 0;
UnitPL = 0;
SumPL = 0;
Win = 0;
}
if BarsSinceExit(1) == 1 Then{
entry = entry+1;
unitPL = unitPL + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
sumPL = sumPL + PositionProfit(1);
if PositionProfit(1) > 0 Then
Win = win+1;
}
if date != date[1] Then{
entry1 = entry[1];
UnitPL1 = UnitPL[1];
SumPL1 = SumPL[1];
Win1 = Win[1];
}
if date != date[1] Then{
dayentry[0] = 0;
dayUnitPL[0] = 0;
daySumPL[0] = 0;
dayWin[0] = 0;
for count = 1 to 29{
dayentry[count] = dayentry[count-1][1];
dayUnitPL[count] = dayUnitPL[count-1][1];
daySumPL[count] = daySumPL[count-1][1];
dayWin[count] = dayWin[count-1][1];
}
}
if MarketPosition != MarketPosition[1] and MarketPosition[1] != 0 Then{
dayentry[0] = dayentry[0]+1;
dayunitPL[0] = dayunitPL[0] + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
daysumPL[0] = daysumPL[0] + PositionProfit(1);
if PositionProfit(1) > 0 Then
dayWin[0] = daywin[0]+1;
}
sumdayentry = 0;
sumdayUnitPL = 0;
sumdaySumPL = 0;
sumdayWin = 0;
for cnt = 1 to N {
sumdayentry = sumdayentry+dayentry[cnt];
sumdayUnitPL = sumdayUnitPL+dayUnitPl[cnt];
sumdaySumPL = sumdaySumPL+daysumPL[cnt];
sumdayWin = sumdayWin+Daywin[cnt];
}
MessageLog("월거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",entry1,unitPL1,sumPL1,Win1,Win1/entry1*100);
MessageLog("N일거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",sumdayentry,sumdayunitPL,sumdaysumPL,sumdayWin,sumdayWin/sumdayentry*100);
즐거운 하루되세요
> yang오뚜기 님이 쓴 글입니다.
> 제목 : 꺼꾸로 해보고싶은데요
> 안녕하세요
예스스탁 운영자님 테스트중 마이너스 -105 pt 네요
아래식 에서 모든 시스템 전체를 꺼꾸로 작성하려는데요
제가 실력이 안되어 부탁드립니다 수정은 어떻게하면 되나요? 감사드립니다
input : N(5);
var : unit(0);
var : entry(0),sumPL(0),Win(0),unitPL(0),cnt(0),count(0);
var : entry1(0),sumPL1(0),Win1(0),unitPL1(0);
var : sumdayentry(0),sumdayUnitPL(0),sumdaySumPL(0),sumdayWin(0);
Array : dayentry[30](0),daysumPL[30](0),dayWin[30](0),dayunitPL[30](0);
if ema(c,20) > ema(c,60) then
unit=2 ;
else if ema(c,50) > ema(c,20) and ema(C,20) >ema(c,60) then
unit=3 ;
else
unit=1;
if crossup(c,ema(c,20)) then
buy("b1",atmarket,def,unit);
if crossdown(c,ema(c,20)) then
sell("s1",atmarket,def,unit);
if marketposition == 1 then
exitlong("b1x",atstop,Highest(H,barsSinceEntry+1)-atr(20)*2);
if marketposition == -1 then
exitshort("s1x",atstop,lowest(L,barsSinceEntry+1)+atr(20)*2);
if date > date[1]+30 Then{
entry = 0;
UnitPL = 0;
SumPL = 0;
Win = 0;
}
if BarsSinceExit(1) == 1 Then{
entry = entry+1;
unitPL = unitPL + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
sumPL = sumPL + PositionProfit(1);
if PositionProfit(1) > 0 Then
Win = win+1;
}
if date != date[1] Then{
entry1 = entry[1];
UnitPL1 = UnitPL[1];
SumPL1 = SumPL[1];
Win1 = Win[1];
}
if date != date[1] Then{
dayentry[0] = 0;
dayUnitPL[0] = 0;
daySumPL[0] = 0;
dayWin[0] = 0;
for count = 1 to 29{
dayentry[count] = dayentry[count-1][1];
dayUnitPL[count] = dayUnitPL[count-1][1];
daySumPL[count] = daySumPL[count-1][1];
dayWin[count] = dayWin[count-1][1];
}
}
if MarketPosition != MarketPosition[1] and MarketPosition[1] != 0 Then{
dayentry[0] = dayentry[0]+1;
dayunitPL[0] = dayunitPL[0] + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
daysumPL[0] = daysumPL[0] + PositionProfit(1);
if PositionProfit(1) > 0 Then
dayWin[0] = daywin[0]+1;
}
sumdayentry = 0;
sumdayUnitPL = 0;
sumdaySumPL = 0;
sumdayWin = 0;
for cnt = 1 to N {
sumdayentry = sumdayentry+dayentry[cnt];
sumdayUnitPL = sumdayUnitPL+dayUnitPl[cnt];
sumdaySumPL = sumdaySumPL+daysumPL[cnt];
sumdayWin = sumdayWin+Daywin[cnt];
}
MessageLog("월거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",entry1,unitPL1,sumPL1,Win1,Win1/entry1*100);
MessageLog("N일거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",sumdayentry,sumdayunitPL,sumdaysumPL,sumdayWin,sumdayWin/sumdayentry*100);
다음글
이전글