답변완료
문의드립니다
input : tenkan_len(9),tenkan_mult(2),kijun_len(26),kijun_mult(4),spanB_len(52),spanB_mult(6),offset(26);
Input : 수량1(1),수량2(2),당일수익틱수1(100),당일손실틱수1(200);
Input : 당일수익틱수2(200),당일손실틱수2(300);
Var : N1(0),dayPl(0),당일수익1(0),당일손실1(0),당일수익2(0),당일손실2(0),vol(0);
var : Xcond(false);
var : ATR1(0),up1(0),dn1(0),upper1(0),lower1(0),os1(0),spt1(0),max1(0),min1(0),tenkan(0);
var : ATR2(0),up2(0),dn2(0),upper2(0),lower2(0),os2(0),spt2(0),max2(0),min2(0),kijun(0);
var : senkouA(0);
var : ATR3(0),up3(0),dn3(0),upper3(0),lower3(0),os3(0),spt3(0),max3(0),min3(0),senkouB(0);
var : tenkan_css(0),kijun_css(0),cloud_a(0),cloud_b(0),chikou_css(0),tx(0);
ATR1 = ATR(tenkan_len)*tenkan_mult;
up1 = (h+L)/2 + ATR1;
dn1 = (h+L)/2 - ATR1;
upper1 = iff(C[1] < upper1[1],min(up1,upper1[1]),up1);
lower1 = iff(C[1] > lower1[1],max(dn1,lower1[1]),dn1);
os1 = iff(c > upper1 , 1 ,IFf(c < lower1, 0 , os1[1]));
spt1 = iff(os1 == 1 , lower1 , upper1);
max1 = iff(CrossUp(c,spt1) or CrossDown(c,spt1) , max(c,max1[1]) , IFf(os1 == 1 , max(c,max1[1]) , spt1));
min1 = iff(CrossUp(c,spt1) or CrossDown(c,spt1) , min(c,min1[1]) , iff(os1 == 0 , min(c,min1[1]) , spt1));
tenkan = avg(max1,min1);
ATR2 = ATR(kijun_len)*kijun_mult;
up2 = (h+L)/2 + ATR2;
dn2 = (h+L)/2 - ATR2;
upper2 = iff(C[1] < upper2[1],min(up2,upper2[1]),up2);
lower2 = iff(C[1] > lower2[1],max(dn2,lower2[1]),dn2);
os2 = iff(c > upper2 , 1 ,IFf(c < lower2, 0 , os2[1]));
spt2 = iff(os2 == 1 , lower2 , upper2);
max2 = iff(CrossUp(c,spt2) or CrossDown(c,spt2) , max(c,max2[1]) , IFf(os2 == 1 , max(c,max2[1]) , spt2));
min2 = iff(CrossUp(c,spt2) or CrossDown(c,spt2) , min(c,min2[1]) , iff(os2 == 0 , min(c,min2[1]) , spt2));
kijun = avg(max2,min2);
senkouA = avg(kijun,tenkan);
ATR3 = ATR(spanB_len)*spanB_mult;
up3 = (h+L)/2 + ATR3;
dn3 = (h+L)/2 - ATR3;
upper3 = iff(C[1] < upper3[1],min(up3,upper3[1]),up3);
lower3 = iff(C[1] > lower3[1],max(dn3,lower3[1]),dn3);
os3 = iff(c > upper3 , 1 ,IFf(c < lower3, 0 , os3[1]));
spt3 = iff(os3 == 1 , lower3 , upper3);
max3 = iff(CrossUp(c,spt3) or CrossDown(c,spt3) , max(c,max3[1]) , IFf(os3 == 1 , max(c,max3[1]) , spt3));
min3 = iff(CrossUp(c,spt3) or CrossDown(c,spt3) , min(c,min3[1]) , iff(os3 == 0 , min(c,min3[1]) , spt3));
senkouB = avg(max3,min3);
tenkan_css = Red;
kijun_css = Blue;
cloud_a = teal;
cloud_b = red;
chikou_css = Green;
당일수익1 = PriceScale*당일수익틱수1;
당일손실1 = PriceScale*당일손실틱수1;
당일수익2 = PriceScale*당일수익틱수2;
당일손실2 = PriceScale*당일손실틱수2;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
vol = 수량1;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익1 or daypl >= 당일수익2 Then
Xcond = true;
if IsExitName("dbp1",1) == true or IsExitName("dsp1",1) == true or
IsExitName("dbp2",1) == true or IsExitName("dsp2",1) == true Then
Xcond = true;
if vol == 수량1 and daypl <= -당일손실1 Then
{
vol = 수량2;
}
if vol == 수량2 and daypl <= -당일손실2 Then
{
Xcond = true;
}
if vol == 수량1 and (IsExitName("dbl1",1) == true or IsExitName("dsl1",1) == true) then
{
vol = 수량2;
}
if vol == 수량2 and (IsExitName("dbl2",1) == true or IsExitName("dsl2",1) == true) then
{
Xcond = true;
}
}
if Xcond == false Then
{
if CrossUp(tenkan,kijun) Then
{
Buy("b",OnClose,Def,vol);
}
if CrossDown(tenkan,kijun) Then
{
sell("s",OnClose,Def,vol);
}
}
if MarketPosition == 1 then
{
if vol == 수량1 Then
{
ExitLong("dbp1",atlimit,EntryPrice+((당일수익1-daypl)/CurrentContracts));
ExitLong("dbl1",AtStop,EntryPrice-((당일손실1+daypl)/CurrentContracts));
}
if vol == 수량2 Then
{
ExitLong("dbp2",atlimit,EntryPrice+((당일수익2-daypl)/CurrentContracts));
ExitLong("dbl2",AtStop,EntryPrice-((당일손실2+daypl)/CurrentContracts));
}
}
if MarketPosition == -1 then
{
if vol == 수량1 Then
{
ExitShort("dsp1",atlimit,EntryPrice-((당일수익1-daypl)/CurrentContracts));
ExitShort("dsl1",AtStop,EntryPrice+((당일손실1+daypl)/CurrentContracts));
}
if vol == 수량2 Then
{
ExitShort("dsp2",atlimit,EntryPrice-((당일수익2-daypl)/CurrentContracts));
ExitShort("dsl2",AtStop,EntryPrice+((당일손실2+daypl)/CurrentContracts));
}
}
수고 많으십니다
도움주신 수식 감사드립니다
위 수식이 제가 설명이 부족해 의도한데로 돼지않아
송구하지만 한번 더 도움 부탁드립니다
처음 수식은 1계약 진입하여 100틱 익절이나 손실이면
당일 매매 종료 였으나
100틱이 익절이면 당일 매매를 종료하고
만약 100틱이 소실이 난다면 그 시간부터
다시 2차를 적용하여 2계약으로
손실 200틱 이면 당일 2차매매 종료
익절 300틱 이면 당일 2차매매 종료
이렇게 부탁드립니다
현재 수식은 손절이 1차 2차 합처서 100틱면
당일 종료로 나와서 수정 요청드립니다
감사드립니다
2024-09-10
630
글번호 183314
시스템