커뮤니티
수식검토
2018-06-14 16:20:23
183
글번호 119735
아래 수식에서
손절,익절,TR 3가지가 시뮬레이션이 안되는데 검토바랍니다.
참고로 exitshort 대신에 아래수식을 사용하면 시뮬레이션이 됩니다.
SetStopLoss(손절틱수*PriceScale,PointStop);
SetStopProfittarget(수익틱수*PriceScale,PointStop);
SetStopTrailing(수익감소틱수*PriceScale,PointStop);
************************************************************************
input : 거래횟수(1),진입시간(090000),진입제한시간(150000),트레이드종료시간(151300),Pyra(0.8),n(3);
input : 손절(20),익절(20),TR(20);
input : 최소가격변화포인트(0.5), 봉갯수(50);
input : pt(0.10);
var : Tcond(false),T1(0), entry(0);
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 진입제한시간) or
(sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then
Tcond = false;
if (sdate != sdate[1] and stime >= 트레이드종료시간) or
(sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then
ExitShort();
if date != date[1] then {
var1 = 0;
var2 = 0;
t1 = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-t1;
Else
entry = TotalTrades-t1+1;
if C <= O+pt and Tcond == true and
entry < 거래횟수 Then
sell("s");
if MarketPosition == -1 and MaxContracts < n Then
sell("ss",AtStop,LatestEntryPrice(0)-Pyra);
if MarketPosition == -1 then
{
if IsEntryName("s1") == true then
{
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절);
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절);
ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR);
}
}
SetStopInactivity(최소가격변화포인트,봉갯수,PointStop);
답변 1
예스스탁 예스스탁 답변
2018-06-14 16:22:06
안녕하세요
예스스탁입니다.
청산식에 진입명이 s1일때만 동작되게 되어 있지만
진입식의 이름이 s,ss입니다.
청산식에 진입명 체크 내용을 삭제하시면 됩니다.
input : 거래횟수(1),진입시간(090000),진입제한시간(150000),트레이드종료시간(151300),Pyra(0.8),n(3);
input : 손절(20),익절(20),TR(20);
input : 최소가격변화포인트(0.5), 봉갯수(50);
input : pt(0.10);
var : Tcond(false),T1(0), entry(0);
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 진입제한시간) or
(sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then
Tcond = false;
if (sdate != sdate[1] and stime >= 트레이드종료시간) or
(sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then
ExitShort();
if date != date[1] then {
var1 = 0;
var2 = 0;
t1 = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-t1;
Else
entry = TotalTrades-t1+1;
if C <= O+pt and Tcond == true and
entry < 거래횟수 Then
sell("s");
if MarketPosition == -1 and MaxContracts < n Then
sell("ss",AtStop,LatestEntryPrice(0)-Pyra);
if MarketPosition == -1 then
{
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절);
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절);
ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR);
}
SetStopInactivity(최소가격변화포인트,봉갯수,PointStop);
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 수식검토
> 아래 수식에서
손절,익절,TR 3가지가 시뮬레이션이 안되는데 검토바랍니다.
참고로 exitshort 대신에 아래수식을 사용하면 시뮬레이션이 됩니다.
SetStopLoss(손절틱수*PriceScale,PointStop);
SetStopProfittarget(수익틱수*PriceScale,PointStop);
SetStopTrailing(수익감소틱수*PriceScale,PointStop);
************************************************************************
input : 거래횟수(1),진입시간(090000),진입제한시간(150000),트레이드종료시간(151300),Pyra(0.8),n(3);
input : 손절(20),익절(20),TR(20);
input : 최소가격변화포인트(0.5), 봉갯수(50);
input : pt(0.10);
var : Tcond(false),T1(0), entry(0);
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 진입제한시간) or
(sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then
Tcond = false;
if (sdate != sdate[1] and stime >= 트레이드종료시간) or
(sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then
ExitShort();
if date != date[1] then {
var1 = 0;
var2 = 0;
t1 = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-t1;
Else
entry = TotalTrades-t1+1;
if C <= O+pt and Tcond == true and
entry < 거래횟수 Then
sell("s");
if MarketPosition == -1 and MaxContracts < n Then
sell("ss",AtStop,LatestEntryPrice(0)-Pyra);
if MarketPosition == -1 then
{
if IsEntryName("s1") == true then
{
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절);
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절);
ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR);
}
}
SetStopInactivity(최소가격변화포인트,봉갯수,PointStop);