커뮤니티
문의드립니다.
2017-03-07 16:38:04
171
글번호 107551
1.
input : 기간(50),시작시간(180000),끝시간(0),당일수익틱수(20);
INPUT: P26(26), PER(1);
var : T(0),a1(0),a2(0),V1(0),V2(0),V3(0);
var : Tcond(false),N1(0),daypl(0),당일수익(0),Xcond(false);
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
if (끝시간 > 0 and (stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간))) or
(끝시간== 0 and sdate != sdate[1]) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
당일수익 = PriceScale*당일수익틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("dbx1",1) == true or IsExitName("dsx",1) == true) Then
Xcond = true;
var1 = Highest(h,기간);
var2 = Lowest(L,기간);
var3 = var1-var2;
value1 = var1-var3*0.382;
value2 = var1-var3*0.500;
value3 = var1-var3*0.618;
if value2 > value2[1] Then
T = 1;
if value2 < value2[1] Then
T = -1;
if T == 1 then{
a1 = value1;
a2 = value2;
}
else{
a1 = value3;
a2 = value2;
}
V1=(Highest(H,P26)+LOWEST(L,P26))/2;
V2=V1*(1+PER/100);
V3=V1*(1-PER/100);
if Tcond == true and Xcond == false then{
if crossup(a1,v1) Then
buy("매수",OnClose,def,1);
if CrossDown(a1,v1) Then
sell("매도",OnClose,def,1);
if MarketPosition == 1 Then{
ExitLong("매수10틱청",atlimit,EntryPrice+PriceScale*10,"",1,1);
ExitLong("dbx",AtLimit,EntryPrice+당일수익-daypl);
}
if MarketPosition == -1 Then{
ExitShort("매도10틱청",atlimit,EntryPrice-PriceScale*10,"",1,1);
ExitShort("dsx",AtLimit,EntryPrice-당일수익+daypl);
}
}
다름이아니라 제가원하는 방향되로 조금씩 변경은되고있습니다
위 수식을 적용할경우 위 사진상처럼
3월 6일자 거래를 보면
1번째 매도 -10틱 마이너스
2번쨰 매수 +10틱 수익
3번째 매도 +10틱 수익
4번째 매수 +10틱 수익
일경우 당일 20틱 수익이 맞을경우 당일 수익 이 나왔기떄문에 신호가 더이상
발생이 안되어야..?하는거같은데
5번째 매도 -11틱 마이너스
6번쨰 매수 +10틱수익
7번째 매수 +1틱 수익
3번의 거래가 더진행된거같은데 이점에 대해서는 어떤점이..?
거래를 계속 진행이 된건지 ...?
수정 이나..아니면 어떤점에서 문제점이있는지 궁금해서 여쭈어뵙니다..
- 1. 108087_제목_없음.png (0.02 MB)
답변 1
예스스탁 예스스탁 답변
2017-03-08 10:55:20
안녕하세요
예스스탁입니다
당일수익이 발생하면
매수상태에서는 dbx라는 이름의 청산,매도는 dsx라는 이름이 청산이 발생하고
해당 이름의 청산이 발생하면
Xcond가 true가 되서 더이상 진입을 하지 않는 구조입니다.
if TotalTrades > TotalTrades[1] and (IsExitName("dbx1",1) == true or IsExitName("dsx",1) == true) Then
Xcond = true;
이름체크부분에 dbx가 dbx1로 지정이 되어 있어 인지를 못햇습니다.
아래와 같이 변경하시면 됩니다.
if TotalTrades > TotalTrades[1] and (IsExitName("dbx",1) == true or IsExitName("dsx",1) == true) Then
Xcond = true;
또 하나는 수식은 위에서 아래로 읽어 들어갑니다.
그러므로 만약 10틱청산과 당일수익의 지점이 같으면
10틱 청산이 발동하고 진입이 한번더 들어가게 되므로
아래와 같이 청산식의 순서를 변경해 주시면 됩니다.
if MarketPosition == 1 Then{
ExitLong("dbx",AtLimit,EntryPrice+당일수익-daypl);
ExitLong("매수10틱청",atlimit,EntryPrice+PriceScale*10,"",1,1);
}
if MarketPosition == -1 Then{
ExitShort("dsx",AtLimit,EntryPrice-당일수익+daypl);
ExitShort("매도10틱청",atlimit,EntryPrice-PriceScale*10,"",1,1);
}
즐거운 하루되세요
> 곽민수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 1.
input : 기간(50),시작시간(180000),끝시간(0),당일수익틱수(20);
INPUT: P26(26), PER(1);
var : T(0),a1(0),a2(0),V1(0),V2(0),V3(0);
var : Tcond(false),N1(0),daypl(0),당일수익(0),Xcond(false);
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
Xcond = false;
N1 = NetProfit;
}
if (끝시간 > 0 and (stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간))) or
(끝시간== 0 and sdate != sdate[1]) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
당일수익 = PriceScale*당일수익틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("dbx1",1) == true or IsExitName("dsx",1) == true) Then
Xcond = true;
var1 = Highest(h,기간);
var2 = Lowest(L,기간);
var3 = var1-var2;
value1 = var1-var3*0.382;
value2 = var1-var3*0.500;
value3 = var1-var3*0.618;
if value2 > value2[1] Then
T = 1;
if value2 < value2[1] Then
T = -1;
if T == 1 then{
a1 = value1;
a2 = value2;
}
else{
a1 = value3;
a2 = value2;
}
V1=(Highest(H,P26)+LOWEST(L,P26))/2;
V2=V1*(1+PER/100);
V3=V1*(1-PER/100);
if Tcond == true and Xcond == false then{
if crossup(a1,v1) Then
buy("매수",OnClose,def,1);
if CrossDown(a1,v1) Then
sell("매도",OnClose,def,1);
if MarketPosition == 1 Then{
ExitLong("매수10틱청",atlimit,EntryPrice+PriceScale*10,"",1,1);
ExitLong("dbx",AtLimit,EntryPrice+당일수익-daypl);
}
if MarketPosition == -1 Then{
ExitShort("매도10틱청",atlimit,EntryPrice-PriceScale*10,"",1,1);
ExitShort("dsx",AtLimit,EntryPrice-당일수익+daypl);
}
}
다름이아니라 제가원하는 방향되로 조금씩 변경은되고있습니다
위 수식을 적용할경우 위 사진상처럼
3월 6일자 거래를 보면
1번째 매도 -10틱 마이너스
2번쨰 매수 +10틱 수익
3번째 매도 +10틱 수익
4번째 매수 +10틱 수익
일경우 당일 20틱 수익이 맞을경우 당일 수익 이 나왔기떄문에 신호가 더이상
발생이 안되어야..?하는거같은데
5번째 매도 -11틱 마이너스
6번쨰 매수 +10틱수익
7번째 매수 +1틱 수익
3번의 거래가 더진행된거같은데 이점에 대해서는 어떤점이..?
거래를 계속 진행이 된건지 ...?
수정 이나..아니면 어떤점에서 문제점이있는지 궁금해서 여쭈어뵙니다..
다음글
이전글