첨부 이미지
그림1
안녕하세요...
먼저 작성해주신 수식 감사하게 잘 사용 하고 있습니다...
그런데 매수, 매도 시스템 전부 시스템성능 보고서와 전략실행 차트에서 수익과 손실을 잘못 인식 하는것 같습니다...
수익이 발생하여도 손실로 표시 되기도 하고 손실이 발생하여도 수익으로 표시 되기도 합니다...
그리고 시스템 성능 보고서에서 수익 손실 포인트도 오류가 나는것 같습니다...
확인 부탁드립니다...
감사합니다...
아래는 수식 원본 입니다...
안녕하세요
예스스탁입니다.
당일청산은 임의로 05시30분으로 지정했습니다.
1. 매수
input : Tick(10);
var : TT(0),T1(0),entry(0);
var1 = PriceScale*tick;
TT = TotalTrades;
if sDate != sDate[1] Then
SetStopEndofday(053000);
if Bdate != Bda1te[1] Then
{
SetStopEndofday(0);
T1 = TT[1];
}
entry = IFf(MarketPosition == 0,TT-T1,TT-T1+1);
if MarketPosition == 0 Then
{
if entry == 0 Then
Buy("b1",AtLimit,DayOpen-PriceScale*160);
if entry == 1 Then
{
if IsExitName("bp1",1) == true Then
Buy("b21",AtLimit,DayOpen-PriceScale*260);
if IsExitName("bl1",1) == true Then
Buy("b22",AtStop,DayOpen-PriceScale*260);
}
}
if MarketPosition == 1 Then
{
if entry == 1 Then
{
ExitLong("bp1",AtLimit,EntryPrice+PriceScale*40);
ExitLong("bl1",AtStop,EntryPrice-PriceScale*180);
}
if entry == 2 Then
{
ExitLong("bp2",AtLimit,EntryPrice+PriceScale*50);
ExitLong("bl2",AtStop,EntryPrice-PriceScale*180);
}
}
2. 매도
input : Tick(10);
var : TT(0),T1(0),entry(0);
var1 = PriceScale*tick;
TT = TotalTrades;
if sDate != sDate[1] Then
SetStopEndofday(053000);
if Bdate != Bda1te[1] Then
{
SetStopEndofday(0);
T1 = TT[1];
}
entry = IFf(MarketPosition == 0,TT-T1,TT-T1+1);
if MarketPosition == 0 Then
{
if entry == 0 Then
Sell("s1",AtLimit,DayOpen+PriceScale*160);
if entry == 1 Then
{
if IsExitName("sp1",1) == true Then
Sell("s21",AtLimit,DayOpen+PriceScale*260);
if IsExitName("sl1",1) == true Then
Sell("s22",AtStop,DayOpen+PriceScale*260);
}
}
if MarketPosition == -1 Then
{
if entry == 1 Then
{
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*40);
ExitShort("sl1",AtStop,EntryPrice+PriceScale*180);
}
if entry == 2 Then
{
ExitShort("sp2",AtLimit,EntryPrice-PriceScale*50);
ExitShort("sl2",AtStop,EntryPrice+PriceScale*180);
}
}
즐거운 하루되세요
> 황금호랑이 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다...
> 시스템을 매수용 따로 매도용 따로 부탁드립니다...
틱으로 계산했는데...틱으로 계산이 안되는 경우 포인트로 해주셔도 괜찮습니다...
10틱= 1포인트
매수용 (해외선물 골드)
1차 매수 조건
당일시가 대비 -160틱 하락하면 매수 진입
1차 매도청산 조건
익절 1차 진입가 대비 +40틱
손절 1차 진입가 대비 -180틱
2차 매수조건
1차 진입 조건에서 익절이 난 경우
당일시가 대비 -260틱 하락 하면 매수 진입
1차 진입 조건에서 손절이 난 경우(시가대비 -340틱 하락 한 경우)
당일 시가 대비 -260틱 하락 하면 매수 진입 하여야 하는데 이미 -340틱이 났으므로
기다렸다가 손절가 대비 +80틱 오르면 매수진입
2차 청산조건
익절 2차 진입가 대비 +50틱
손절 2차 진입가 대비 -180틱
1차 매수조건에서 익절 혹은 손절이 된 경우 1차 매수조건에서는 진입하지 않고
2차 매수조건에서만 진입
2차 익절 혹은 손절 이후 매매 중지
매도용 (해외선물 골드)
1차 매도 조건
당일시가 대비 +160틱 상승하면 매도 진입
1차 매수청산 조건
익절 1차 진입가 대비 -40틱
손절 1차 진입가 대비 +180틱
2차 매도조건
1차 진입 조건에서 익절이 난 경우
당일시가 대비 +260틱 상승 하면 매도 진입
1차 진입 조건에서 손절이 난 경우(시가대비 +340틱 상승 한 경우)
당일 시가 대비 +260틱 상승 하면 매도 진입 하여야 하는데 이미 +340틱이 났으므로
기다렸다가 손절가 대비 -80틱 하락 매도진입
2차 청산조건
익절 2차 진입가 대비 -50틱
손절 2차 진입가 대비 +180틱
1차 매도조건에서 익절 혹은 손절이 된 경우 1차 매도조건에서는 진입하지 않고
2차 매도조건에서만 진입
2차 익절 혹은 손절 이후 매매 중지
감사합니다...
답변 1
예스스탁
예스스탁 답변
2025-04-28 09:18:23
안녕하세요
예스스탁입니다.
보고서의 손익에는 설정창에서 지정한 수수료와 슬리피지가 적용됩니다.
수수료와 슬리피지를 모두 0으로 지정하시면
진입-청산가격만으로 손익집계가 됩니다.
즐거운 하루되세요
> 황금호랑이 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다...
> 안녕하세요...
먼저 작성해주신 수식 감사하게 잘 사용 하고 있습니다...
그런데 매수, 매도 시스템 전부 시스템성능 보고서와 전략실행 차트에서 수익과 손실을 잘못 인식 하는것 같습니다...
수익이 발생하여도 손실로 표시 되기도 하고 손실이 발생하여도 수익으로 표시 되기도 합니다...
그리고 시스템 성능 보고서에서 수익 손실 포인트도 오류가 나는것 같습니다...
확인 부탁드립니다...
감사합니다...
아래는 수식 원본 입니다...
안녕하세요
예스스탁입니다.
당일청산은 임의로 05시30분으로 지정했습니다.
1. 매수
input : Tick(10);
var : TT(0),T1(0),entry(0);
var1 = PriceScale*tick;
TT = TotalTrades;
if sDate != sDate[1] Then
SetStopEndofday(053000);
if Bdate != Bda1te[1] Then
{
SetStopEndofday(0);
T1 = TT[1];
}
entry = IFf(MarketPosition == 0,TT-T1,TT-T1+1);
if MarketPosition == 0 Then
{
if entry == 0 Then
Buy("b1",AtLimit,DayOpen-PriceScale*160);
if entry == 1 Then
{
if IsExitName("bp1",1) == true Then
Buy("b21",AtLimit,DayOpen-PriceScale*260);
if IsExitName("bl1",1) == true Then
Buy("b22",AtStop,DayOpen-PriceScale*260);
}
}
if MarketPosition == 1 Then
{
if entry == 1 Then
{
ExitLong("bp1",AtLimit,EntryPrice+PriceScale*40);
ExitLong("bl1",AtStop,EntryPrice-PriceScale*180);
}
if entry == 2 Then
{
ExitLong("bp2",AtLimit,EntryPrice+PriceScale*50);
ExitLong("bl2",AtStop,EntryPrice-PriceScale*180);
}
}
2. 매도
input : Tick(10);
var : TT(0),T1(0),entry(0);
var1 = PriceScale*tick;
TT = TotalTrades;
if sDate != sDate[1] Then
SetStopEndofday(053000);
if Bdate != Bda1te[1] Then
{
SetStopEndofday(0);
T1 = TT[1];
}
entry = IFf(MarketPosition == 0,TT-T1,TT-T1+1);
if MarketPosition == 0 Then
{
if entry == 0 Then
Sell("s1",AtLimit,DayOpen+PriceScale*160);
if entry == 1 Then
{
if IsExitName("sp1",1) == true Then
Sell("s21",AtLimit,DayOpen+PriceScale*260);
if IsExitName("sl1",1) == true Then
Sell("s22",AtStop,DayOpen+PriceScale*260);
}
}
if MarketPosition == -1 Then
{
if entry == 1 Then
{
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*40);
ExitShort("sl1",AtStop,EntryPrice+PriceScale*180);
}
if entry == 2 Then
{
ExitShort("sp2",AtLimit,EntryPrice-PriceScale*50);
ExitShort("sl2",AtStop,EntryPrice+PriceScale*180);
}
}
즐거운 하루되세요
> 황금호랑이 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다...
> 시스템을 매수용 따로 매도용 따로 부탁드립니다...
틱으로 계산했는데...틱으로 계산이 안되는 경우 포인트로 해주셔도 괜찮습니다...
10틱= 1포인트
매수용 (해외선물 골드)
1차 매수 조건
당일시가 대비 -160틱 하락하면 매수 진입
1차 매도청산 조건
익절 1차 진입가 대비 +40틱
손절 1차 진입가 대비 -180틱
2차 매수조건
1차 진입 조건에서 익절이 난 경우
당일시가 대비 -260틱 하락 하면 매수 진입
1차 진입 조건에서 손절이 난 경우(시가대비 -340틱 하락 한 경우)
당일 시가 대비 -260틱 하락 하면 매수 진입 하여야 하는데 이미 -340틱이 났으므로
기다렸다가 손절가 대비 +80틱 오르면 매수진입
2차 청산조건
익절 2차 진입가 대비 +50틱
손절 2차 진입가 대비 -180틱
1차 매수조건에서 익절 혹은 손절이 된 경우 1차 매수조건에서는 진입하지 않고
2차 매수조건에서만 진입
2차 익절 혹은 손절 이후 매매 중지
매도용 (해외선물 골드)
1차 매도 조건
당일시가 대비 +160틱 상승하면 매도 진입
1차 매수청산 조건
익절 1차 진입가 대비 -40틱
손절 1차 진입가 대비 +180틱
2차 매도조건
1차 진입 조건에서 익절이 난 경우
당일시가 대비 +260틱 상승 하면 매도 진입
1차 진입 조건에서 손절이 난 경우(시가대비 +340틱 상승 한 경우)
당일 시가 대비 +260틱 상승 하면 매도 진입 하여야 하는데 이미 +340틱이 났으므로
기다렸다가 손절가 대비 -80틱 하락 매도진입
2차 청산조건
익절 2차 진입가 대비 -50틱
손절 2차 진입가 대비 +180틱
1차 매도조건에서 익절 혹은 손절이 된 경우 1차 매도조건에서는 진입하지 않고
2차 매도조건에서만 진입
2차 익절 혹은 손절 이후 매매 중지
감사합니다...