커뮤니티
수식수정 요청드립니다.
2015-09-24 17:52:49
134
글번호 90697
수정해주신 아래 수식에서
첫 신호 발생 후 손절 스위칭일 경우
처음 손실을 포함한 당일손실제한 강제청산 => 수식 정상 입니다.
첫 신호 발생 후 수익 스위칭일 경우
처음 수익을 제외한 당일손실제한 강제청산 => << 작성된 수식은 첫수익 포함 입니다.>>
(예1 : 첫 신호 발생 1PT 수익 스위칭 후 => 계속 수익 발생시 종가청산 하고,
수익 스위칭 후 부터, 손실일 경우 당일손실제한은 첫 수익 1PT을 제외하고 -1.5PT 적용 손절청산)
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
}
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 Bcount+Scount == 1 and TotalTrades > TotalTrades[1] Then{
if PositionProfit(1) > 0 Then{
Condition1 = true;
var1 = PositionProfit(1);
}
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
if Condition1 == false Then
loss = EntryPrice+당일손실-dayPL;
Else
loss = EntryPrice+당일손실-(dayPL-var1);
ExitLong("당일손실제한bx3",AtStop,Loss);
}
if MarketPosition == -1 Then{
if Condition1 == false Then
loss = EntryPrice-당일손실+dayPL;
Else
loss = EntryPrice-당일손실+(dayPL-var1);
ExitShort("당일손실제한sx3",AtStop,loss );
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------
답변 1
예스스탁 예스스탁 답변
2015-09-24 18:06:44
안녕하세요
예스스탁입니다.
식을 수정했습니다.
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
var1 = 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
var1 = PositionProfit(1);
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,EntryPrice+당일손실-(dayPL-var1));
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,EntryPrice-당일손실+(dayPL-var1));
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식수정 요청드립니다.
> 수정해주신 아래 수식에서
첫 신호 발생 후 손절 스위칭일 경우
처음 손실을 포함한 당일손실제한 강제청산 => 수식 정상 입니다.
첫 신호 발생 후 수익 스위칭일 경우
처음 수익을 제외한 당일손실제한 강제청산 => << 작성된 수식은 첫수익 포함 입니다.>>
(예1 : 첫 신호 발생 1PT 수익 스위칭 후 => 계속 수익 발생시 종가청산 하고,
수익 스위칭 후 부터, 손실일 경우 당일손실제한은 첫 수익 1PT을 제외하고 -1.5PT 적용 손절청산)
input :N(2),당일손실(-1.5);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
}
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 Bcount+Scount == 1 and TotalTrades > TotalTrades[1] Then{
if PositionProfit(1) > 0 Then{
Condition1 = true;
var1 = PositionProfit(1);
}
}
//------------------------------------------------------------------------
if MarketPosition == 1 Then{
if Condition1 == false Then
loss = EntryPrice+당일손실-dayPL;
Else
loss = EntryPrice+당일손실-(dayPL-var1);
ExitLong("당일손실제한bx3",AtStop,Loss);
}
if MarketPosition == -1 Then{
if Condition1 == false Then
loss = EntryPrice-당일손실+dayPL;
Else
loss = EntryPrice-당일손실+(dayPL-var1);
ExitShort("당일손실제한sx3",AtStop,loss );
}
//--------------------------------------------------------------------------------------
if MarketPosition == -1 and crossup(H,EntryPrice+0.5) and BCount+SCount < N and dayPL > 당일손실 Then
buy("1BX");
if MarketPosition == 1 and CrossDown(L,EntryPrice-0.5) and BCount+SCount < N and dayPL > 당일손실 Then
sell("1SX");
//--------------------------------------------------------------------------------------