예스스탁
예스스탁 답변
2020-11-30 11:39:31
안녕하세요
예스스탁입니다.
매수신호 발생상태는 marketpositon == 1 입니다.
1
if MarketPosition == 0 and c > dayopen() + pricescale * 10 then
buy() ;
if MarketPosition == 1 Then
{
if MarketPosition != MarketPosition[1] Then
var1 = DayOpen;
if c < var1 - PriceScale * 10 then
exitlong() ;
}
2
시가에서 10틱 하락시 마다 진입(총 5회)하고
각 진입별 모두 10틱 수익시 청산이면 아래와 같습니다.
var1 = PriceScale*10;
if MarketPosition == 0 then
buy("b1",AtLimit,dayopen()-var1,1);
if MarketPosition == 1 and MaxEntries < 5 then
buy("bb",atstop,dayopen()- var1*(MaxEntries+1),1);
SetStopProfittarget(PriceScale*10,PointStop);
시가에서 10틱 하락시 마다 진입하고
1번째 진입가격에서 10틱 상승시 1계약 매수청산
2번째 진입가격에서 20틱 상승시 1계약 매수청산
3번째 진입가격에서 40틱 상승시 1계약 매수청산
4번째 진입가격에서 50틱 상승시 1계약 매수청산
5번째 진입가격에서 60틱 상승시 1계약 매수청산
와 같으면 1번째 시에에 모두 청산하는 것과 같습니다.
var1 = PriceScale*10;
if MarketPosition == 0 then
buy("b1",AtLimit,dayopen()-var1,1);
if MarketPosition == 1 and MaxEntries < 5 then
buy("bb",atstop,dayopen()- var1*(MaxEntries+1),1);
if MarketPosition == 1 Then
ExitLong("bx",AtLimit,DayOpen);
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다.
> 안녕하세요.
아래 조건에 맞는 시스템식 부탁드립니다.
1) 첫번째 질문
종목 : 해외선물
특이사항 : 당일 청산하지 못하고 익일 이후 청산할 경우 진입가격을 기준으로 청산 하고자 합니다.
처음 매수 진입은[포지션이 없을 경우] 당일 시가를 기준으로 10틱 상승시 매수하고
매수청산은 당일 시가 기준으로 10틱 하락시 매도한다고 가정할 경우
당일 변동성이 당일시가에서 10틱 상승 후 당일시가에서 5틱 밖에 하락하지 않아서
당일 청산 못하는 경우 익일[매수 청산은 2일,3일, 4일, 5일이 될수도 있음]
전일 시가 기준으로 10틱 하락시 매수 청산하는 시스템식 부탁드립니다.
아래처럼 코딩시 포지션 진입과 청산이 잘 안되는것 같습니다.
var : 기준가(0);
if marketpostion == 0 and bdate != bdate[0] then
기준가 = dayopen() ;
# 당일 시가기준으로 당일 진입 및 당일 청산시 익일 진입 가격은 익일 시가가 기준가
# 당일 시가기준으로 당일 진입 및 당일 청산하지 못한 경우
전일 시가[진입시 기준가]기준으로 익일, 3일, 4일 5일 ...이후에
청산시 처음 진입한 날의 시가를 기준으로 청산하고자 합니다.
# 모두 청산이 끝난날 신규 포지션 진입은 다시 당일 시가를 기준가로 설정하고자 합니다.
if marketpositon == 0 and c > var1 + pricescal * 10 then
buy() ;
if marketpositon == 0 and c < var1 - pricscal * 10 then
exitlong() ;
2) 두번째 질문
만약에 시가에서 위로 10틱 하락할때마다 1개씩 물타기 했을경우
1번째 진입가격에서 10틱 상승시 1계약 매수청산
2번째 진입가격에서 20틱 상승시 1계약 매수청산
.....
아래와 같이 시스템식으로 표현해봤는데 잘 안되네요.
매수진입
if marketpositoion == 0 and c < dayopen()-pricescale * 10 then
buy("b1",atstop,dayopen() + pricescale * 10,1); - 1번째 진입가격
if marketpositoion == 1 and c < dayopen()-pricescale * 20 then
buy("b21",atstop,dayopen() + pricescale * 20,1); - 2번째 진입가격
if marketpositoion == 1 and c < dayopen()-pricescale * 30 then
buy("b3",atstop,dayopen() + pricescale * 30,1); - 3번째 진입가격
if marketpositoion == 1 and c < dayopen()-pricescale * 40 then
buy("b4",atstop,dayopen() + pricescale * 40,1); - 4번째 진입가격
if marketpositoion == 1 and c < dayopen()-pricescale * 50 then
buy("b5",atstop,dayopen() + pricescale * 50,1); - 5번째 진입가격
매수청산
if maretposition == 1 and maxcontracts == 1 then
exitlong("bx1", atstop,1번째진입가격+pricescale*10),1);
if maretposition == 1 and maxcontracts == 2 then
exitlong("bx2", atstop,2번째진입가격+pricescale*10),1);
if maretposition == 1 and maxcontracts == 3 then
exitlong("bx3", atstop,3번째진입가격+pricescale*10),1);
if maretposition == 1 and maxcontracts == 4 then
exitlong("bx4", atstop,4번째진입가격+pricescale*10),1);
if maretposition == 1 and maxcontracts == 5 then
exitlong("bx5", atstop,5번째진입가격+pricescale*10),1);
답변 부탁드립니다.
감사합니다.