커뮤니티
수식요청드립니다.
2016-01-18 15:40:21
140
글번호 94489
안녕하세요.
당일 매수 매도 신호진입 후 피라미딩 진입조건 만족시 1차, 2차, 3차까지 추가 진입
할수있는 피라미딩 진입수식 변경 요청 드립니다.
1. 당일 매도진입후 계속 수익 발생하는경우
-> 0.3PT 하락시마다 첫진입포함 3EA 까지만 피라미딩 1차진입
-> 1차 진입후 합계수익이 6PT 달성시 피라미딩 2차 추가진입, 0.3PT 하락시마다 3EA 까지 추가진입
-> 2차 진입후 합계수익이 9PT 달성시 피라미딩 3차 추가진입, 0.3PT 하락시마다 3EA 까지 추가진입
-> 피라미딩1차 3EA + 피라미딩2차 3EA + 피라미딩2차 3EA = 피라미딩진입 합계 9E
2. 당일 매수진입후 계속 수익 발생하는경우
-> 0.3PT 상승시마다 첫진입포함 3EA 까지만 피라미딩 1차진입
-> 1차 진입후 합계수익이 3PT 달성시 피라미딩 2차 추가진입, 0.3PT 상승시마다 3EA 까지 추가진입
-> 2차 진입후 합계수익이 9PT 달성시 피라미딩 3차 추가진입, 0.3PT 상승시마다 3EA 까지 추가진입
-> 피라미딩1차 3EA + 피라미딩2차 3EA + 피라미딩2차 3EA = 피라미딩진입합계 9E
감사합니다.
//-------------------------------------------------------------------------------------
input : N(1),PN(2),당일손실(1.5),i증감(0.3),진입수량(1);
input : 누적진입횟수1차(3),누적진입횟수2차(3),누적진입횟수3차(3);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false);
var : TT(0),KK(0),DD(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond = 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);
}
//-----------------------------------------------------------------------------------------------------
//추가진입인 BB가 아닐때만 발동
if MarketPosition == 1 and IsEntryName("BB") == false Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
//추가진입인 SS가 아닐때만 발동
if MarketPosition == -1 and IsEntryName("SS") == false Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//-----------------------------------------------------------------------------------------------------
#피라미딩 (1차, 2차, 3차 추가진입 수정요청)
if MarketPosition == 1 and Bxcond == false and Xcond == false and MaxEntries < 누적진입횟수1차 Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and Sxcond == false and XCond == false and MaxEntries < 누적진입횟수1차 Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
//-----------------------------------------------------------------------------------------------------
#당일손실제한 청산이 발생하면 Xcond는 true로 변경
if MarketPosition == 0 and
TotalTrades > TotalTrades[1] and
(IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then
Xcond = true;
#추가진입
#무포지션이고 Xcond가 true이고
#직전청산이 당일손실제한일때만 발생
if MarketPosition == 0 and Xcond == true and
(IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then{
if Crossup(ma(c,10),ma(C,20)) Then
Buy("BB",AtMarket);
if CrossDown(ma(C,10),ma(C,20)) Then
Sell("SS",AtMarket);
}
#BB진입에 대한 청산
if MarketPosition == 1 and IsEntryName("BB") == true Then{
ExitLong("BL1",AtStop,avgEntryPrice-0.5);
ExitLong("BP1",AtLimit,avgEntryPrice+1.0);
}
#SS진입에 대한 청산
if MarketPosition == -1 and IsEntryName("SS") == true Then{
ExitShort("SL1",AtStop,avgEntryPrice+0.5);
ExitShort("SP1",AtLimit,avgEntryPrice-1.0);
}
//------------------------------------------------------------------------------------------------------
답변 1
예스스탁 예스스탁 답변
2016-01-19 10:59:43
안녕하세요
예스스탁입니다.
input : N(1),PN(2),당일손실(1.5),i증감(0.3),진입수량(1);
input : 누적진입횟수1차(3),누적진입횟수2차(3),누적진입횟수3차(3);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false);
var : TT(0),KK(0),DD(0);
var : BE2(false),BE3(false),SE2(false),SE3(false);
var : B2(0),B3(0),S2(0),S3(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond = 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);
}
//-----------------------------------------------------------------------------------------------------
//추가진입인 BB가 아닐때만 발동
if MarketPosition == 1 and IsEntryName("BB") == false Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
//추가진입인 SS가 아닐때만 발동
if MarketPosition == -1 and IsEntryName("SS") == false Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//-----------------------------------------------------------------------------------------------------
#피라미딩 (1차, 2차, 3차 추가진입 수정요청)
if MarketPosition == 1 and Bxcond == false and Xcond == false Then{
if MaxEntries < 누적진입횟수1차 Then
Buy("PBB1",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if BE2 == false and MaxEntries == 누적진입횟수1차 and C >= AvgEntryPrice+(3/MaxContracts) Then{
BE2 = true;
B2 = C;
}
if BE2 == true and MaxEntries == 누적진입횟수1차 Then
Buy("PBB21",AtStop,B2+i증감,진입수량);
if BE2 == true and MaxEntries > 누적진입횟수1차 and MaxEntries < 누적진입횟수1차+누적진입횟수2차 Then
Buy("PBB22",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if BE3 == false and MaxEntries == 누적진입횟수1차+누적진입횟수2차 and C >= AvgEntryPrice+(9/MaxContracts) Then{
BE3 = true;
B3 = C;
}
if BE3 == true and MaxEntries == 누적진입횟수1차+누적진입횟수2차 Then
Buy("PBB31",AtStop,B3+i증감,진입수량);
if BE3 == true and MaxEntries > 누적진입횟수1차+누적진입횟수2차 and MaxEntries < 누적진입횟수1차+누적진입횟수2차+누적진입횟수3차 Then
Buy("PBB32",AtStop,B3+i증감,진입수량);
}
if MarketPosition != 1 Then{
BE2 = false;
BE3 = false;
}
if MarketPosition == -1 and Sxcond == false and XCond == false Then{
if MaxEntries < 누적진입횟수1차 Then
sell("PSS1",AtStop,LatestEntryPrice(0)-i증감,진입수량);
if SE2 == false and MaxEntries == 누적진입횟수1차 and C <= AvgEntryPrice-(3/MaxContracts) Then{
SE2 = true;
S2 = C;
}
if SE2 == true and MaxEntries == 누적진입횟수1차 Then
Sell("PSS21",AtStop,S2-i증감,진입수량);
if SE2 == true and MaxEntries > 누적진입횟수1차 and MaxEntries < 누적진입횟수1차+누적진입횟수2차 Then
Sell("PSS22",AtStop,LatestEntryPrice(0)-i증감,진입수량);
if SE3 == false and MaxEntries == 누적진입횟수1차+누적진입횟수2차 and C <= AvgEntryPrice-(9/MaxContracts) Then{
SE3 = true;
S3 = C;
}
if SE3 == true and MaxEntries == 누적진입횟수1차+누적진입횟수2차 Then
Sell("PSS31",AtStop,S3-i증감,진입수량);
if SE3 == true and MaxEntries > 누적진입횟수1차+누적진입횟수2차 and MaxEntries < 누적진입횟수1차+누적진입횟수2차+누적진입횟수3차 Then
Sell("PSS32",AtStop,LatestEntryPrice(0)-i증감,진입수량);
}
if MarketPosition != -1 Then{
SE2 = false;
SE3 = false;
}
//-----------------------------------------------------------------------------------------------------
#당일손실제한 청산이 발생하면 Xcond는 true로 변경
if MarketPosition == 0 and
TotalTrades > TotalTrades[1] and
(IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then
Xcond = true;
#추가진입
#무포지션이고 Xcond가 true이고
#직전청산이 당일손실제한일때만 발생
if MarketPosition == 0 and Xcond == true and
(IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then{
if Crossup(ma(c,10),ma(C,20)) Then
Buy("BB",AtMarket);
if CrossDown(ma(C,10),ma(C,20)) Then
Sell("SS",AtMarket);
}
#BB진입에 대한 청산
if MarketPosition == 1 and IsEntryName("BB") == true Then{
ExitLong("BL1",AtStop,avgEntryPrice-0.5);
ExitLong("BP1",AtLimit,avgEntryPrice+1.0);
}
#SS진입에 대한 청산
if MarketPosition == -1 and IsEntryName("SS") == true Then{
ExitShort("SL1",AtStop,avgEntryPrice+0.5);
ExitShort("SP1",AtLimit,avgEntryPrice-1.0);
}
//------------------------------------------------------------------------------------------------------
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청드립니다.
> 안녕하세요.
당일 매수 매도 신호진입 후 피라미딩 진입조건 만족시 1차, 2차, 3차까지 추가 진입
할수있는 피라미딩 진입수식 변경 요청 드립니다.
1. 당일 매도진입후 계속 수익 발생하는경우
-> 0.3PT 하락시마다 첫진입포함 3EA 까지만 피라미딩 1차진입
-> 1차 진입후 합계수익이 6PT 달성시 피라미딩 2차 추가진입, 0.3PT 하락시마다 3EA 까지 추가진입
-> 2차 진입후 합계수익이 9PT 달성시 피라미딩 3차 추가진입, 0.3PT 하락시마다 3EA 까지 추가진입
-> 피라미딩1차 3EA + 피라미딩2차 3EA + 피라미딩2차 3EA = 피라미딩진입 합계 9E
2. 당일 매수진입후 계속 수익 발생하는경우
-> 0.3PT 상승시마다 첫진입포함 3EA 까지만 피라미딩 1차진입
-> 1차 진입후 합계수익이 3PT 달성시 피라미딩 2차 추가진입, 0.3PT 상승시마다 3EA 까지 추가진입
-> 2차 진입후 합계수익이 9PT 달성시 피라미딩 3차 추가진입, 0.3PT 상승시마다 3EA 까지 추가진입
-> 피라미딩1차 3EA + 피라미딩2차 3EA + 피라미딩2차 3EA = 피라미딩진입합계 9E
감사합니다.
//-------------------------------------------------------------------------------------
input : N(1),PN(2),당일손실(1.5),i증감(0.3),진입수량(1);
input : 누적진입횟수1차(3),누적진입횟수2차(3),누적진입횟수3차(3);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false);
var : TT(0),KK(0),DD(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond = 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);
}
//-----------------------------------------------------------------------------------------------------
//추가진입인 BB가 아닐때만 발동
if MarketPosition == 1 and IsEntryName("BB") == false Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
//추가진입인 SS가 아닐때만 발동
if MarketPosition == -1 and IsEntryName("SS") == false Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//-----------------------------------------------------------------------------------------------------
#피라미딩 (1차, 2차, 3차 추가진입 수정요청)
if MarketPosition == 1 and Bxcond == false and Xcond == false and MaxEntries < 누적진입횟수1차 Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and Sxcond == false and XCond == false and MaxEntries < 누적진입횟수1차 Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
//-----------------------------------------------------------------------------------------------------
#당일손실제한 청산이 발생하면 Xcond는 true로 변경
if MarketPosition == 0 and
TotalTrades > TotalTrades[1] and
(IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then
Xcond = true;
#추가진입
#무포지션이고 Xcond가 true이고
#직전청산이 당일손실제한일때만 발생
if MarketPosition == 0 and Xcond == true and
(IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then{
if Crossup(ma(c,10),ma(C,20)) Then
Buy("BB",AtMarket);
if CrossDown(ma(C,10),ma(C,20)) Then
Sell("SS",AtMarket);
}
#BB진입에 대한 청산
if MarketPosition == 1 and IsEntryName("BB") == true Then{
ExitLong("BL1",AtStop,avgEntryPrice-0.5);
ExitLong("BP1",AtLimit,avgEntryPrice+1.0);
}
#SS진입에 대한 청산
if MarketPosition == -1 and IsEntryName("SS") == true Then{
ExitShort("SL1",AtStop,avgEntryPrice+0.5);
ExitShort("SP1",AtLimit,avgEntryPrice-1.0);
}
//------------------------------------------------------------------------------------------------------
다음글
이전글