예스스탁
예스스탁 답변
2016-04-04 10:42:26
안녕하세요
예스스탁입니다.
input : N(3),진입수량(1),누적진입횟수1(3);
input : 당일손실1(1.3),당일손실2(1.0),당일손실3(0.5);
input : 합산수익1(0.8),합산수익2(1.1),합산수익3(1.5);
var : dayLoss(0);
var : cnt(0),BCount(0),SCount(0),Xcond(false),ProfitCond(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : Bxcond(false),SxCond(false); // 피라미팅 설정수익
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond == false;
ProfitCond == 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 Condition1 == false and TotalTrades > TotalTrades[1] Then{
Condition1 = true;
if PositionProfit(1) > 0 Then
v1 = PositionProfit(1);
}
if TotalTrades > TotalTrades[1] and (IsExitName("당일손실제한bx3",1) or IsEntryName("당일손실제한sx3",1)) Then
Xcond = true;
Input : shortPeriod(12),longPeriod(26);
Var : value(0);
value = MACD(shortPeriod,longPeriod);
# 매수/매도청산
If CrossUP(value, 0) and BCount+SCount < N and Xcond == false Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) and BCount+SCount < N and Xcond == false Then
{
Sell();
}
if MarketPosition == 1 Then{
if MaxPositionProfit < 합산수익1 then
dayLoss = 당일손실1;
if MaxPositionProfit >= 합산수익1 and MaxPositionProfit < 합산수익2 then
dayLoss = 당일손실2;
if MaxPositionProfit >= 합산수익3 then
dayLoss = 당일손실3;
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(dayLoss+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
if MaxPositionProfit < 합산수익1 then
dayLoss = 당일손실1;
if MaxPositionProfit >= 합산수익1 and MaxPositionProfit < 합산수익2 then
dayLoss = 당일손실2;
if MaxPositionProfit >= 합산수익3 then
dayLoss = 당일손실3;
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(dayLoss+(dayPL-v1))/CurrentContracts);
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청드립니다.
> 안녕하세요.
작성해주신 수익구분 당일손실제한 수식을 아래 진입횟수제한 당일손실제한 수식에
추가 부탁드립니다. 제가하니까 잘안되네요.
input : N(3),당일손실(1.3),진입수량(1),누적진입횟수1(3);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : Bxcond(false),SxCond(false); // 피라미팅 설정수익
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond == false;
ProfitCond == 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 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);
}
//-----------------------------------------------------------------------------------------------
#MACD 기준선 진입수식(진입횟수, 기본당일손실제한 수식적용)
Input : shortPeriod(12),longPeriod(26);
Var : value(0);
value = MACD(shortPeriod,longPeriod);
# 매수/매도청산
If CrossUP(value, 0) and BCount+SCount < N and dayPL > -당일손실 Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) and BCount+SCount < N and dayPL > -당일손실 Then
{
Sell();
}
//-----------------------------------------------------------------------------------------------
감사합니다.
안녕하세요
예스스탁입니다.
#수익구분 당일손실제한
input : 당일손실1(1.3),당일손실2(1.0),당일손실3(0.5);
input : 합산수익1(0.8),합산수익2(1.1),합산수익3(1.5);
var : dayLoss(0);
if MarketPosition == 1 Then{
if MaxPositionProfit < 합산수익1 then
dayLoss = 당일손실1;
if MaxPositionProfit >= 합산수익1 and MaxPositionProfit < 합산수익2 then
dayLoss = 당일손실2;
if MaxPositionProfit >= 합산수익3 then
dayLoss = 당일손실3;
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(dayLoss+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
if MaxPositionProfit < 합산수익1 then
dayLoss = 당일손실1;
if MaxPositionProfit >= 합산수익1 and MaxPositionProfit < 합산수익2 then
dayLoss = 당일손실2;
if MaxPositionProfit >= 합산수익3 then
dayLoss = 당일손실3;
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayLoss-v1))/CurrentContracts);
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청드립니다.
> 안녕하세요.
당일청산 피라미딩 적용하는 아래 당일손실제한 일반수식을 합산수익(PT) 상승 후 하락할경우
당일손실제한 포인트(PT)을 3가지 조건만족 즉시청산 수식으로 변경 요청 드립니다.
( 합산수익 PT는 매도진입의 경우 당일저가, 매수의경우 당일고가을 기준으로하고
손절청산은 당일손실 PT 조건만족 즉시 청산하는 수식으로 요청드립니다.)
1. 매수 매도 후 총진입 합산수익1 이하 상승 후 하락할 경우 당일손실1(1.3PT) 적용 손절청산
2. 매수 매도 후 총진입 합산수익2 이상 상승 후 하락할 경우 당일손실2(1.0PT) 적용 손절청산
3. 매수 매도 후 총진입 합산수익3 이상 상승 후 하락할 경우 당일손실3(0.5PT) 적용 손절청산
( 매수 매도 후 수익없이 하락하는 경우도 당일손실1(1.3PT) 적용 손절청산 입니다.)
#당일손실제한
//and BCount+SCount < N and dayPL > -당일손실
input : 당일손실1(1.3),당일손실2(1.0),당일손실3(0.5);
input : 합산수익1(0.8),합산수익2(1.1),합산수익3(1.5);
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
감사합니다.