커뮤니티
수정 부탁 합니다
2016-08-06 16:43:40
136
글번호 100791
항상 감사 합니다.
만들어주신 수식에 수익이던 손실이던 하루 1회만 매매했으면 합니다.
수정 부탁 드리겠습다.
수고하세요...^^
---------------------
input : AA(100),BB(100),수량2(1),수량3(1);
var : dncnt2(0,data2),d2(0,data2),dncnt3(0,data3),D3(0,data3);
var : V2(0,data2),V3(0,data2);
# data2 날짜변경되면 초기화
if data2(date != date[1]) Then
dncnt2 = 0;
#data2의 종가가 AA값을 하향이탈하면
if data2(CrossDown(C,AA)) Then{
#카운트
dncnt2 = dncnt2+1;
#3번째부터 5번째까지 매도진입
if dncnt2 >= 3 and dncnt2 <= 5 and stime < 143000 Then{
sell("s1",OnClose,def,수량2);
D2 = data2(c);
}
}
# dat32 날짜변경되면 초기화
if data3(date != date[1]) Then
dncnt3 = 0;
#data3의 종가가 BB값을 하향이탈하면
if data3(CrossDown(C,BB)) Then{
#카운트
dncnt3 = dncnt3+1;
#4번째부터 5번째까지 매도진입
if dncnt3 >= 4 and dncnt3 <= 5 and stime < 143000 Then{
sell("s2",OnClose,def,수량3);
D3 = data3(c);
}
}
if MarketPosition == -1 Then{
#평단가 대비 9틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp1",BarsSinceEntry) < 1 Then
ExitShort("sp1",atlimit,AvgEntryPrice-PriceScale*9,"",max(1,floor(MaxContracts*(1/3))),1);
#평단가 대비 17틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp2",BarsSinceEntry) < 1 Then
ExitShort("sp2",atlimit,AvgEntryPrice-PriceScale*17,"",max(1,floor(MaxContracts*(1/3))),1);
#평단가 대비 20틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp3",BarsSinceEntry) < 1 Then
ExitShort("sp3",atlimit,AvgEntryPrice-PriceScale*20);
#data2의 종가가 최근 진입당시 data2의 종가보다 10틱 반대로 가면 s1진입 모두 청산
if data2(c) >= AA+data2(PriceScale*5) Then
ExitShort("sx1",OnClose,def,"s1");
#data3의 종가가 최근 진입당시 data3의 종가보다 10틱 반대로 가면 s2진입 모두 청산
if data3(c) >= BB+data3(PriceScale*5) Then
ExitShort("sx2",OnClose,def,"s2");
}
SetStopEndofday(151000);
답변 1
예스스탁 예스스탁 답변
2016-08-08 11:28:00
안녕하세요
예스스탁입니다.
input : AA(100),BB(100),수량2(1),수량3(1);
var : dncnt2(0,data2),d2(0,data2),dncnt3(0,data3),D3(0,data3);
var : V2(0,data2),V3(0,data2);
var : cnt(0,data1),count(0,data1);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
# data2 날짜변경되면 초기화
if data2(date != date[1]) Then
dncnt2 = 0;
#data2의 종가가 AA값을 하향이탈하면
if data2(CrossDown(C,AA)) Then{
#카운트
dncnt2 = dncnt2+1;
#3번째부터 5번째까지 매도진입
if dncnt2 >= 3 and dncnt2 <= 5 and stime < 143000 and count < 1 Then{
sell("s1",OnClose,def,수량2);
D2 = data2(c);
}
}
# dat32 날짜변경되면 초기화
if data3(date != date[1]) Then
dncnt3 = 0;
#data3의 종가가 BB값을 하향이탈하면
if data3(CrossDown(C,BB)) Then{
#카운트
dncnt3 = dncnt3+1;
#4번째부터 5번째까지 매도진입
if dncnt3 >= 4 and dncnt3 <= 5 and stime < 143000 and count < 1 Then{
sell("s2",OnClose,def,수량3);
D3 = data3(c);
}
}
if MarketPosition == -1 Then{
#평단가 대비 9틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp1",BarsSinceEntry) < 1 Then
ExitShort("sp1",atlimit,AvgEntryPrice-PriceScale*9,"",max(1,floor(MaxContracts*(1/3))),1);
#평단가 대비 17틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp2",BarsSinceEntry) < 1 Then
ExitShort("sp2",atlimit,AvgEntryPrice-PriceScale*17,"",max(1,floor(MaxContracts*(1/3))),1);
#평단가 대비 20틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp3",BarsSinceEntry) < 1 Then
ExitShort("sp3",atlimit,AvgEntryPrice-PriceScale*20);
#data2의 종가가 최근 진입당시 data2의 종가보다 10틱 반대로 가면 s1진입 모두 청산
if data2(c) >= AA+data2(PriceScale*5) Then
ExitShort("sx1",OnClose,def,"s1");
#data3의 종가가 최근 진입당시 data3의 종가보다 10틱 반대로 가면 s2진입 모두 청산
if data3(c) >= BB+data3(PriceScale*5) Then
ExitShort("sx2",OnClose,def,"s2");
}
SetStopEndofday(151000);
즐거운 하루되세요
> epn 님이 쓴 글입니다.
> 제목 : 수정 부탁 합니다
> 항상 감사 합니다.
만들어주신 수식에 수익이던 손실이던 하루 1회만 매매했으면 합니다.
수정 부탁 드리겠습다.
수고하세요...^^
---------------------
input : AA(100),BB(100),수량2(1),수량3(1);
var : dncnt2(0,data2),d2(0,data2),dncnt3(0,data3),D3(0,data3);
var : V2(0,data2),V3(0,data2);
# data2 날짜변경되면 초기화
if data2(date != date[1]) Then
dncnt2 = 0;
#data2의 종가가 AA값을 하향이탈하면
if data2(CrossDown(C,AA)) Then{
#카운트
dncnt2 = dncnt2+1;
#3번째부터 5번째까지 매도진입
if dncnt2 >= 3 and dncnt2 <= 5 and stime < 143000 Then{
sell("s1",OnClose,def,수량2);
D2 = data2(c);
}
}
# dat32 날짜변경되면 초기화
if data3(date != date[1]) Then
dncnt3 = 0;
#data3의 종가가 BB값을 하향이탈하면
if data3(CrossDown(C,BB)) Then{
#카운트
dncnt3 = dncnt3+1;
#4번째부터 5번째까지 매도진입
if dncnt3 >= 4 and dncnt3 <= 5 and stime < 143000 Then{
sell("s2",OnClose,def,수량3);
D3 = data3(c);
}
}
if MarketPosition == -1 Then{
#평단가 대비 9틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp1",BarsSinceEntry) < 1 Then
ExitShort("sp1",atlimit,AvgEntryPrice-PriceScale*9,"",max(1,floor(MaxContracts*(1/3))),1);
#평단가 대비 17틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp2",BarsSinceEntry) < 1 Then
ExitShort("sp2",atlimit,AvgEntryPrice-PriceScale*17,"",max(1,floor(MaxContracts*(1/3))),1);
#평단가 대비 20틱 수익손실시 최대진입수량의 1/3 청산
if countif(LatestExitName(0) == "sp3",BarsSinceEntry) < 1 Then
ExitShort("sp3",atlimit,AvgEntryPrice-PriceScale*20);
#data2의 종가가 최근 진입당시 data2의 종가보다 10틱 반대로 가면 s1진입 모두 청산
if data2(c) >= AA+data2(PriceScale*5) Then
ExitShort("sx1",OnClose,def,"s1");
#data3의 종가가 최근 진입당시 data3의 종가보다 10틱 반대로 가면 s2진입 모두 청산
if data3(c) >= BB+data3(PriceScale*5) Then
ExitShort("sx2",OnClose,def,"s2");
}
SetStopEndofday(151000);