커뮤니티
수정요청드립니다.
2015-10-15 20:05:56
110
글번호 91336
아래 수식에서 설정수익(외부변수)은 본신호 진입수익 + 피라미딩 진입 수량 합산수익
= 전체수익으로 해주시기 바랍니다.
수익보존 청산은
-> 매도진입 후 + 설정수익 발생 + MA10 이평이 MA 20이평 상향돌파 조건만족
-> 매수진입 후 + 설정수익 발생 + MA10 이평이 MA 20이평 하향돌파 조건만족
발생시에만 적용되도록 수정 요청 드립니다.
감사합니다.
-------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
PositionProfit함수가 현재 진입의 손익을 리턴해 주게 됩니다.
피라미딩 진입도 모두 포함해서 손익이 리턴됩니다.
그러므로 진입이후 2포인트이상 수익이 발생했다라는 부분은
highest(PositionProfit,BarsSinceEntry) >= 2
와 같이 조건을 주시면 됩니다
또한 2포인트 이상 수익후에 이평 골드/데드가
발생한 시점은 손실상태일수도 있습니다.
손실상태에서는 골드나 데드가 나도 청산되지 않게
매수청산에는 종가가 평단가위, 매도청산에는 종가가 평단가 아래라는 조건을
추가로 주었습니다.
이평간 골드/데드는 즉시 발생하게 작성이 되지 않습니다.
봉완성시로만 가능합니다.
참고하시기 바랍니다.
input :N(1),당일손실(1.5),i증감(0.1),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
}
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
if Condition1 == false and TotalTrades > TotalTrades[1] Then{
Condition1 = true;
if PositionProfit(1) > 0 Then
v1 = PositionProfit(1);
}
//-------------------------------------------------------------------------
#당일손실제한
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//------------------------------------------------------------------------------------------------------
#기존수식 손실손절 스위칭 피라미딩 적용수식
if MarketPosition == -1 and BCount+SCount < N and dayPL > -당일손실 Then
buy("1BX",AtStop,EntryPrice+1.2);
if MarketPosition == 1 and BCount+SCount < N and dayPL > -당일손실 Then
sell("1SX",AtStop,EntryPrice-1.2);
//------------------------------------------------------------------------------------------------------
if MarketPosition == 1 Then
Buy("bb",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 Then
sell("ss",AtStop,LatestEntryPrice(0)-i증감,진입수량);
//--------------------------------------------------------------------------------------
mav1 = ma(c,10);
mav2 = ma(C,20);
if MarketPosition == 1 and
highest(PositionProfit,BarsSinceEntry) >= 2 And
CrossDown(mav1,mav2) and C > AvgEntryPrice Then
exitlong();
if MarketPosition == -1 and
highest(PositionProfit,BarsSinceEntry) >= 2 And
CrossUp(mav1,mav2) and C < AvgEntryPrice Then
ExitShort();
답변 1
예스스탁 예스스탁 답변
2015-10-16 13:54:48
> dandy 님이 쓴 글입니다.
> 제목 : 수정요청드립니다.
> 아래 수식에서 설정수익(외부변수)은 본신호 진입수익 + 피라미딩 진입 수량 합산수익
= 전체수익으로 해주시기 바랍니다.
수익보존 청산은
-> 매도진입 후 + 설정수익 발생 + MA10 이평이 MA 20이평 상향돌파 조건만족
-> 매수진입 후 + 설정수익 발생 + MA10 이평이 MA 20이평 하향돌파 조건만족
발생시에만 적용되도록 수정 요청 드립니다.
감사합니다.
-------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
PositionProfit함수가 현재 진입의 손익을 리턴해 주게 됩니다.
피라미딩 진입도 모두 포함해서 손익이 리턴됩니다.
그러므로 진입이후 2포인트이상 수익이 발생했다라는 부분은
highest(PositionProfit,BarsSinceEntry) >= 2
와 같이 조건을 주시면 됩니다
또한 2포인트 이상 수익후에 이평 골드/데드가
발생한 시점은 손실상태일수도 있습니다.
손실상태에서는 골드나 데드가 나도 청산되지 않게
매수청산에는 종가가 평단가위, 매도청산에는 종가가 평단가 아래라는 조건을
추가로 주었습니다.
이평간 골드/데드는 즉시 발생하게 작성이 되지 않습니다.
봉완성시로만 가능합니다.
참고하시기 바랍니다.
input :N(1),당일손실(1.5),i증감(0.1),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
}
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
if Condition1 == false and TotalTrades > TotalTrades[1] Then{
Condition1 = true;
if PositionProfit(1) > 0 Then
v1 = PositionProfit(1);
}
//-------------------------------------------------------------------------
#당일손실제한
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//------------------------------------------------------------------------------------------------------
#기존수식 손실손절 스위칭 피라미딩 적용수식
if MarketPosition == -1 and BCount+SCount < N and dayPL > -당일손실 Then
buy("1BX",AtStop,EntryPrice+1.2);
if MarketPosition == 1 and BCount+SCount < N and dayPL > -당일손실 Then
sell("1SX",AtStop,EntryPrice-1.2);
//------------------------------------------------------------------------------------------------------
if MarketPosition == 1 Then
Buy("bb",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 Then
sell("ss",AtStop,LatestEntryPrice(0)-i증감,진입수량);
//--------------------------------------------------------------------------------------
mav1 = ma(c,10);
mav2 = ma(C,20);
if MarketPosition == 1 and
highest(PositionProfit,BarsSinceEntry) >= 2 And
CrossDown(mav1,mav2) and C > AvgEntryPrice Then
exitlong();
if MarketPosition == -1 and
highest(PositionProfit,BarsSinceEntry) >= 2 And
CrossUp(mav1,mav2) and C < AvgEntryPrice Then
ExitShort();
다음글
이전글