커뮤니티
문의
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에오면은 진입해야되는데 제가잘못봤나요.....