커뮤니티
수식요청 드립니다.
2016-06-29 09:04:03
128
글번호 99555
안녕하세요.
아래 당일청산 피라미딩진입 시스템의 당일손실제한 진입식이 1일 2회 진입할경우 1차 2차 진입(피라미딩진입포함)의 수익은 제외하고 손실은 합산한 당일손실제한 수식 입니다.
피라미딩 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 추가부터 당일손실이 초과하는 오류가 발생 합니다. 수정요청 드립니다.
=> 장시작 진입 후 청산한 모든수익은 제외하고 손실만 합산하는 당일손실제한 입니다.
감사합니다.
//----------------------------------------------------------------------------------------------
input : N(1),PN(2),PPN(3),당일손실(0.7),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false),ProfitCond(false);
var : TT(0),KK(0),DD(0),Bcnt(0),Scnt(0),BT(0),ST(0);
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);
}
//----------------------------------------------------------------------------------------------
#피라미딩수식
input : i증감(0.3),누적진입횟수(7);
if MarketPosition == 1 and Bxcond == false and MaxEntries < 누적진입횟수 Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false and MaxEntries < 누적진입횟수 Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Bcnt = Bcnt+1;
# 매수5회진입시 시간저장
if Bcnt == 5 Then
BT = TimeToMinutes(stime);
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Bcnt >= 6 and TimeToMinutes(stime) >= BT+20 Then
ExitLong("bx",OnClose,def,"",진입수량,1);
}
# 5회이상 진입부터 최근 진입가 -0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitLong("매수손절",AtStop,var1-0.4);
}
}
else
{
Bcnt = 0;
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Scnt = Scnt+1;
# 매도5회진입시 시간저장
if Scnt == 5 Then{
ST = TimeToMinutes(stime);
}
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Scnt >= 6 and TimeToMinutes(stime) >= ST+20 Then{
ExitShort("sx",OnClose,def,"",진입수량,1);
}
}
# 5회이상 진입부터 최근 진입가 +0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitShort("매도손절",AtStop,var1+0.4);
}
}
else
{
Scnt = 0;
}
//----------------------------------------------------------------------------------------------
#진입수식(예제)
Input : Period(20);
value1 = TRIX(Period);
# 매수/매도청산
If CrossUP(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Buy("TRIXB");
}
# 매도/매수청산
If CrossDown(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Sell("TRIXS");
}
//----------------------------------------------------------------------------------------------
SetStopEndofday(150000);
//----------------------------------------------------------------------------------------------
답변 2
예스스탁 예스스탁 답변
2016-06-29 11:00:15
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청 드립니다.
> 안녕하세요.
아래 당일청산 피라미딩진입 시스템의 당일손실제한 진입식이 1일 2회 진입할경우 1차 2차 진입(피라미딩진입포함)의 수익은 제외하고 손실은 합산한 당일손실제한 수식 입니다.
피라미딩 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 추가부터 당일손실이 초과하는 오류가 발생 합니다. 수정요청 드립니다.
=> 장시작 진입 후 청산한 모든수익은 제외하고 손실만 합산하는 당일손실제한 입니다.
감사합니다.
//----------------------------------------------------------------------------------------------
input : N(1),PN(2),PPN(3),당일손실(0.7),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false),ProfitCond(false);
var : TT(0),KK(0),DD(0),Bcnt(0),Scnt(0),BT(0),ST(0);
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);
}
//----------------------------------------------------------------------------------------------
#피라미딩수식
input : i증감(0.3),누적진입횟수(7);
if MarketPosition == 1 and Bxcond == false and MaxEntries < 누적진입횟수 Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false and MaxEntries < 누적진입횟수 Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Bcnt = Bcnt+1;
# 매수5회진입시 시간저장
if Bcnt == 5 Then
BT = TimeToMinutes(stime);
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Bcnt >= 6 and TimeToMinutes(stime) >= BT+20 Then
ExitLong("bx",OnClose,def,"",진입수량,1);
}
# 5회이상 진입부터 최근 진입가 -0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitLong("매수손절",AtStop,var1-0.4);
}
}
else
{
Bcnt = 0;
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Scnt = Scnt+1;
# 매도5회진입시 시간저장
if Scnt == 5 Then{
ST = TimeToMinutes(stime);
}
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Scnt >= 6 and TimeToMinutes(stime) >= ST+20 Then{
ExitShort("sx",OnClose,def,"",진입수량,1);
}
}
# 5회이상 진입부터 최근 진입가 +0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitShort("매도손절",AtStop,var1+0.4);
}
}
else
{
Scnt = 0;
}
//----------------------------------------------------------------------------------------------
#진입수식(예제)
Input : Period(20);
value1 = TRIX(Period);
# 매수/매도청산
If CrossUP(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Buy("TRIXB");
}
# 매도/매수청산
If CrossDown(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Sell("TRIXS");
}
//----------------------------------------------------------------------------------------------
SetStopEndofday(150000);
//----------------------------------------------------------------------------------------------
예스스탁 예스스탁 답변
2016-06-29 11:36:46
안녕하세요
예스스탁입니다.
input : N(1),PN(2),PPN(3),당일손실(0.7),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false),ProfitCond(false);
var : TT(0),KK(0),DD(0),Bcnt(0),Scnt(0),BT(0),ST(0);
var : sumLoss(0);#당일 손실난 거래의 손익값만 누적할 변수
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond == false;
ProfitCond == false;
sumloss = 0; #날짜 변경시 0으로 초기화
}
#청산발생하고 손실이면
if TotalTrades > TotalTrades[1] and PositionProfit(1) < 0 then
sumloss = sumloss + PositionProfit(1);
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-(당일손실+sumloss)/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+sumloss)/CurrentContracts);
}
//----------------------------------------------------------------------------------------------
#피라미딩수식
input : i증감(0.3),누적진입횟수(7);
if MarketPosition == 1 and Bxcond == false and MaxEntries < 누적진입횟수 Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false and MaxEntries < 누적진입횟수 Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Bcnt = Bcnt+1;
# 매수5회진입시 시간저장
if Bcnt == 5 Then
BT = TimeToMinutes(stime);
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Bcnt >= 6 and TimeToMinutes(stime) >= BT+20 Then
ExitLong("bx",OnClose,def,"",진입수량,1);
}
# 5회이상 진입부터 최근 진입가 -0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitLong("매수손절",AtStop,var1-0.4);
}
}
else
{
Bcnt = 0;
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Scnt = Scnt+1;
# 매도5회진입시 시간저장
if Scnt == 5 Then{
ST = TimeToMinutes(stime);
}
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Scnt >= 6 and TimeToMinutes(stime) >= ST+20 Then{
ExitShort("sx",OnClose,def,"",진입수량,1);
}
}
# 5회이상 진입부터 최근 진입가 +0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitShort("매도손절",AtStop,var1+0.4);
}
}
else
{
Scnt = 0;
}
//----------------------------------------------------------------------------------------------
#진입수식(예제)
Input : Period(20);
value1 = TRIX(Period);
# 매수/매도청산
If CrossUP(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Buy("TRIXB");
}
# 매도/매수청산
If CrossDown(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Sell("TRIXS");
}
//----------------------------------------------------------------------------------------------
SetStopEndofday(150000);
//----------------------------------------------------------------------------------------------
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 전화주시기 바랍니다.(02-3453-1060)
>
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청 드립니다.
> 안녕하세요.
아래 당일청산 피라미딩진입 시스템의 당일손실제한 진입식이 1일 2회 진입할경우 1차 2차 진입(피라미딩진입포함)의 수익은 제외하고 손실은 합산한 당일손실제한 수식 입니다.
피라미딩 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 추가부터 당일손실이 초과하는 오류가 발생 합니다. 수정요청 드립니다.
=> 장시작 진입 후 청산한 모든수익은 제외하고 손실만 합산하는 당일손실제한 입니다.
감사합니다.
//----------------------------------------------------------------------------------------------
input : N(1),PN(2),PPN(3),당일손실(0.7),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false),ProfitCond(false);
var : TT(0),KK(0),DD(0),Bcnt(0),Scnt(0),BT(0),ST(0);
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);
}
//----------------------------------------------------------------------------------------------
#피라미딩수식
input : i증감(0.3),누적진입횟수(7);
if MarketPosition == 1 and Bxcond == false and MaxEntries < 누적진입횟수 Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false and MaxEntries < 누적진입횟수 Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Bcnt = Bcnt+1;
# 매수5회진입시 시간저장
if Bcnt == 5 Then
BT = TimeToMinutes(stime);
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Bcnt >= 6 and TimeToMinutes(stime) >= BT+20 Then
ExitLong("bx",OnClose,def,"",진입수량,1);
}
# 5회이상 진입부터 최근 진입가 -0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitLong("매수손절",AtStop,var1-0.4);
}
}
else
{
Bcnt = 0;
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var1 = LatestEntryPrice(0);
var2 = var1[1];
var3 = var2[1];
Scnt = Scnt+1;
# 매도5회진입시 시간저장
if Scnt == 5 Then{
ST = TimeToMinutes(stime);
}
# 6회진입이후부터 20분 경과후 부터 진입이 발생하면 1계약씩 청산 <= 수익청산 할경우 당일손실제한 초과 오류발생
if Scnt >= 6 and TimeToMinutes(stime) >= ST+20 Then{
ExitShort("sx",OnClose,def,"",진입수량,1);
}
}
# 5회이상 진입부터 최근 진입가 +0.4 이하의 시세가 발생하면 전량 청산
if MaxEntries >= 진입횟수 then{
ExitShort("매도손절",AtStop,var1+0.4);
}
}
else
{
Scnt = 0;
}
//----------------------------------------------------------------------------------------------
#진입수식(예제)
Input : Period(20);
value1 = TRIX(Period);
# 매수/매도청산
If CrossUP(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Buy("TRIXB");
}
# 매도/매수청산
If CrossDown(value1, 0) and BCount+SCount < PPN and dayPL > -당일손실 Then{
Sell("TRIXS");
}
//----------------------------------------------------------------------------------------------
SetStopEndofday(150000);
//----------------------------------------------------------------------------------------------
다음글
이전글