커뮤니티
수정 부탁드립니다.
2012-02-07 14:42:43
284
글번호 47461
## 다른건 다 맞는데 당일 하루 일간 손실이 -1pt로 정하고 싶습니다.
(수수료와 슬리피지 상관없이 그냥 순 매매손실)
매매를 몇번 하던 상관없이 매매를 하다 포지션이 있을 경우 당일 총 손실이 -1pt를
터치하는 순간 청산과 동시에 그날 매매를 정지하는 겁니다.(그날 매매 무조건 끝).
그런데 제가 아래와 같이 작성을 했는데 손실이 -1pt가 나도 주문이 계속 나가는 것 같고 포지션이 있을때 -1pt가 넘어가도 청산이 안되는 것 같아요 한번 봐주세요
아래 loop 부분 설명좀 부탁 드립니다.
정확히 어떤 의미를 가지고 있는지..
감사합니다.
그리고, 프로그램을 돌릴때 위에서 아래로 내려가면서 코딩안의 값들이 변하는 것을 한줄 한줄 어떻게 변하는데 지금현재 코딩의 어느 위치에 와 있는지 한줄 씩 진행하는 값들을 볼 수 있나요? 그래야 어디서 코딩이 오류가 났는지 알수 있을것 같아서 입니다.
dayhigh(1) 어제의 고가
dayhigh[1] 당일 전 고가 를 의미 하는게 맞나요?
Input : Period1(5), Period2(10), shortPeriod(12), longPeriod(26), Period(9), DDmacd(0.42), N(-1);
var : Sma1(0),Sma2(0), value(0) , macdosc(0), Dma(0), Dmacd(0), PL(0);
Sma1 = ma(C,Period1); //5일선
Sma2 = ma(C,Period2); //20일선
value = MACD(shortPeriod, longPeriod); //short
macdosc = ema(value,Period); //long
PL = 0 ;
for Value1 = 1 to 10 {
if EntryDate(Value1) == sdate then
PL= PL+PositionProfit(value1);
}
Dmacd = value-macdosc;
if Dmacd < DDmacd and Sma1 < Sma2 and PL > N then{ //Sell
sell("S",AtStop,sma1);
}
if Dmacd > DDmacd and Sma1 > Sma2 and PL > N then{ //Buy
buy("B",AtStop,sma1);
}
if marketposition == -1 and PL < N Then
Exitshort("ex", onclose);
if MarketPosition == 1 and PL < N Then
ExitLong("ex1", OnClose);
답변 1
예스스탁 예스스탁 답변
2012-02-07 17:34:18
안녕하세요
예스스탁입니다.
1.
Input : Period1(5), Period2(10), shortPeriod(12), longPeriod(26), Period(9), DDmacd(0.42), N(-1);
var : Sma1(0),Sma2(0), value(0) , macdosc(0), Dma(0), Dmacd(0), PL(0);
Sma1 = ma(C,Period1); //5일선
Sma2 = ma(C,Period2); //20일선
value = MACD(shortPeriod, longPeriod); //short
macdosc = ema(value,Period); //long
PL = 0 ;
for Value1 = 1 to 10 {
if EntryDate(Value1) == sdate then
PL= PL+PositionProfit(value1);
}
Dmacd = value-macdosc;
if Dmacd < DDmacd and Sma1 < Sma2 and PL > N then{ //Sell
sell("S",AtStop,sma1);
}
if Dmacd > DDmacd and Sma1 > Sma2 and PL > N then{ //Buy
buy("B",AtStop,sma1);
}
if marketposition == -1 and PL < N Then
Exitshort("ex",AtStop,EntryPrice+N-PL);
if MarketPosition == 1 and PL < N Then
ExitLong("ex1",AtStop,EntryPrice-N+PL);
2.
dayhigh/daylow/dayopen/dayclose함수는 ()안에 이전일을 입력하게 만든 함수입니다.
dayhigh(0) 당일고가이며 (0)은 생략가능
dayhigh(1) 전일고가
dayhigh(2) 전전일고가 입니다.
수식에서 []는 이전값 참조로 한봉전 두봉전을 의미할 때 사용됩니다.
dayhigh[1]은 dayhigh(0)[1]에서 (0)이 생략된 형태로
당일고가를 1봉전 기준으로 본다는 의미로
1분봉에서 현재봉이 9시 10분봉일때 9시 9분봉에서의 당일고가를
의미하게 됩니다.
즐거운 하루되세요
> Ttrader 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> ## 다른건 다 맞는데 당일 하루 일간 손실이 -1pt로 정하고 싶습니다.
(수수료와 슬리피지 상관없이 그냥 순 매매손실)
매매를 몇번 하던 상관없이 매매를 하다 포지션이 있을 경우 당일 총 손실이 -1pt를
터치하는 순간 청산과 동시에 그날 매매를 정지하는 겁니다.(그날 매매 무조건 끝).
그런데 제가 아래와 같이 작성을 했는데 손실이 -1pt가 나도 주문이 계속 나가는 것 같고 포지션이 있을때 -1pt가 넘어가도 청산이 안되는 것 같아요 한번 봐주세요
아래 loop 부분 설명좀 부탁 드립니다.
정확히 어떤 의미를 가지고 있는지..
감사합니다.
그리고, 프로그램을 돌릴때 위에서 아래로 내려가면서 코딩안의 값들이 변하는 것을 한줄 한줄 어떻게 변하는데 지금현재 코딩의 어느 위치에 와 있는지 한줄 씩 진행하는 값들을 볼 수 있나요? 그래야 어디서 코딩이 오류가 났는지 알수 있을것 같아서 입니다.
dayhigh(1) 어제의 고가
dayhigh[1] 당일 전 고가 를 의미 하는게 맞나요?
Input : Period1(5), Period2(10), shortPeriod(12), longPeriod(26), Period(9), DDmacd(0.42), N(-1);
var : Sma1(0),Sma2(0), value(0) , macdosc(0), Dma(0), Dmacd(0), PL(0);
Sma1 = ma(C,Period1); //5일선
Sma2 = ma(C,Period2); //20일선
value = MACD(shortPeriod, longPeriod); //short
macdosc = ema(value,Period); //long
PL = 0 ;
for Value1 = 1 to 10 {
if EntryDate(Value1) == sdate then
PL= PL+PositionProfit(value1);
}
Dmacd = value-macdosc;
if Dmacd < DDmacd and Sma1 < Sma2 and PL > N then{ //Sell
sell("S",AtStop,sma1);
}
if Dmacd > DDmacd and Sma1 > Sma2 and PL > N then{ //Buy
buy("B",AtStop,sma1);
}
if marketposition == -1 and PL < N Then
Exitshort("ex", onclose);
if MarketPosition == 1 and PL < N Then
ExitLong("ex1", OnClose);
다음글
이전글