커뮤니티

문의

프로필 이미지
질갱이
2016-06-09 12:08:28
110
글번호 98871
답변완료
안녕하세요 하루수익10틱 처음에진입하여 하루수익틱나면은 청산진입금지 첫번째손절이나면은 두번째진입하여서는 첫번째손절틱에50%(손실에절반)수익나면은 청산진입금지 (에을들어서 처음10틱손절 두번째진입중에5틱수익나면 청산진입금지 수익안나면은손절 진입금지그러니까하루에두번만진입하는거죠) 감사합니다 중요....처음과두번진입이 같은수량으로 진입합니다 틱설정이오차없도록부탁합니다^^ 1... var : diff(0,data2); diff = data2(bids-asks); if crossup(diff,1000) Then buy(); if CrossDown(diff,0) Then exitlong(); if CrossDown(diff,-1000) Then sell(); if crossup(diff,0) Then ExitShort(); 2... var : diff(0); diff = bids-asks; if crossup(diff,1000) Then buy(); if CrossDown(diff,0) Then exitlong(); if CrossDown(diff,-1000) Then sell(); if crossup(diff,0) Then ExitShort(); 하나더문의합니다 장시작후데이터0에서부터시작하여1000오면은진입이맞는데 장중을보구있으면 3000올라가있다가 1000을내려오면은 진입을하는데 왜그럴까요 3000에서0을터치한후부터 +.-1000에오면은 진입해야되는데 제가잘못봤나요.....
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-06-09 14:08:26

안녕하세요 예스스탁입니다. 1. input : 하루수익틱(10); input : 손절틱수(5); var : diff(0,data2); var : cnt(0,data1),count(0,data1); var : NP(0,data1),PreNP(0,data1),dayPL(0,data1),하루수익(0,data1),Xcond(false,data1); NP = NetProfit; if bdate != bdate[1] then{ PreNP = NP[1]; Xcond = false; } dayPL = NP-PreNP; 하루수익 = PriceScale*하루수익틱; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("SP",1)) Then Xcond = true; count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } diff = data2(bids-asks); if count < 2 and crossup(diff,1000) Then buy(); if CrossDown(diff,0) Then exitlong(); if count < 2 and CrossDown(diff,-1000) Then sell(); if crossup(diff,0) Then ExitShort(); if MarketPosition == 1 Then{ if count == 1 then ExitLong("BP",AtLimit,EntryPrice+(하루수익-daypl)/CurrentContracts); if count == 2 then ExitLong("Bx",AtLimit,EntryPrice-(abs(EntryPrice(1)-ExitPrice(1))/2)/CurrentContracts); } if MarketPosition == -1 Then{ if count == 1 then ExitShort("SP",AtLimit,EntryPrice-(하루수익+daypl)/CurrentContracts); if count == 2 then ExitLong("Sx",AtLimit,EntryPrice+(abs(EntryPrice(1)-ExitPrice(1))/2)/CurrentContracts); } 2 1000을 상향돌파하면 매수입니다. 값이 1000이상이었다가 하락해서 1000이하가 되고 다시 돌파되도 1000을 돌파한 조건에 만족합니다. 최초 돌파시만 진입하고자 하시면 아래와 같이 수정하시면 됩니다. var : diff(0),T(0); diff = bids-asks; if T == 1 and crossup(diff,1000) Then{ T = 2; buy(); } if CrossDown(diff,0) Then{ T = -1; exitlong(); } if T == -1 and CrossDown(diff,-1000) Then{ T = -2; sell(); } if crossup(diff,0) Then{ T = 1; ExitShort(); } 즐거운 하루되세요 > 질갱이 님이 쓴 글입니다. > 제목 : 문의 > 안녕하세요 하루수익10틱 처음에진입하여 하루수익틱나면은 청산진입금지 첫번째손절이나면은 두번째진입하여서는 첫번째손절틱에50%(손실에절반)수익나면은 청산진입금지 (에을들어서 처음10틱손절 두번째진입중에5틱수익나면 청산진입금지 수익안나면은손절 진입금지그러니까하루에두번만진입하는거죠) 감사합니다 중요....처음과두번진입이 같은수량으로 진입합니다 틱설정이오차없도록부탁합니다^^ 1... var : diff(0,data2); diff = data2(bids-asks); if crossup(diff,1000) Then buy(); if CrossDown(diff,0) Then exitlong(); if CrossDown(diff,-1000) Then sell(); if crossup(diff,0) Then ExitShort(); 2... var : diff(0); diff = bids-asks; if crossup(diff,1000) Then buy(); if CrossDown(diff,0) Then exitlong(); if CrossDown(diff,-1000) Then sell(); if crossup(diff,0) Then ExitShort(); 하나더문의합니다 장시작후데이터0에서부터시작하여1000오면은진입이맞는데 장중을보구있으면 3000올라가있다가 1000을내려오면은 진입을하는데 왜그럴까요 3000에서0을터치한후부터 +.-1000에오면은 진입해야되는데 제가잘못봤나요.....