커뮤니티
부탁 합니다.
2015-11-19 17:10:12
155
글번호 92584
NO. 45089 와 연속입니다.
다음 수식의 오류사항의 수정을 부탁 드립니다.
변수값 N 에 의한 신호 발생 시점이 일치하지 않는 것 같습니다.
input : N(0);
var : T(0),S1(0),S2(0),TT(0),pre(0),entry(0);
if bdate != bdate[1] Then
var1 = C[1];
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
T = 1;
pre = TotalTrades;
}
if date != date[1] Then{
S2 = 1440-S1;
T = 2;
}
if T == 1 then
TT = TimeToMinutes(time)-S1;
if T == 2 Then
TT = TimeToMinutes(time)+S2;
if MarketPosition == 0 Then
entry = TotalTrades-pre;
Else
entry = (TotalTrades-pre)+1;
If CrossUp(c,var1) Then {
if entry == 0 Or MarketPosition ==0 or
(entry >= 1 and MarketPosition == -1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then
Buy("b",AtMarket);
}
If CrossDown(c,var1) Then {
if entry == 0 Or MarketPosition ==0 or
(entry >= 1 and MarketPosition == 1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then
Sell("s",AtMarket);
}
답변 1
예스스탁 예스스탁 답변
2015-11-19 18:23:24
안녕하세요
예스스탁입니다.
시간이 아닌 봉수로 변경해 드립니다.
당일 첫진입은 봉수제한없이 진입하고
두번째 진입부터 직전진입이후 N개봉 이후에
cross가 발생하면 진입합니다.
강제청산등 설정하실때 대비해서
청산후에도 N개봉 이후에 진입하게 내용 추가되어 있습니다.
input : N(5);
var : T(0),S1(0),S2(0),TT(0),pre(0),entry(0);
if bdate != bdate[1] Then
var1 = C[1];
if Bdate != Bdate[1] Then{
pre = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-pre;
Else
entry = (TotalTrades-pre)+1;
If CrossUp(c,var1) Then {
if entry == 0 Or
(entry >= 1 and MarketPosition == -1 and BarsSinceEntry >= N) Or
(entry >= 1 and MarketPosition == 0 and BarsSinceExit(1) >= N) Then
Buy("b",AtMarket);
}
If CrossDown(c,var1) Then {
if entry == 0 Or
(entry >= 1 and MarketPosition == 1 and BarsSinceEntry >= N) Or
(entry >= 1 and MarketPosition == 0 and BarsSinceExit(1) >= N) Then
Sell("s",AtMarket);
}
즐거운 하루되세요
> 너무조아 님이 쓴 글입니다.
> 제목 : 부탁 합니다.
> NO. 45089 와 연속입니다.
다음 수식의 오류사항의 수정을 부탁 드립니다.
변수값 N 에 의한 신호 발생 시점이 일치하지 않는 것 같습니다.
input : N(0);
var : T(0),S1(0),S2(0),TT(0),pre(0),entry(0);
if bdate != bdate[1] Then
var1 = C[1];
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
T = 1;
pre = TotalTrades;
}
if date != date[1] Then{
S2 = 1440-S1;
T = 2;
}
if T == 1 then
TT = TimeToMinutes(time)-S1;
if T == 2 Then
TT = TimeToMinutes(time)+S2;
if MarketPosition == 0 Then
entry = TotalTrades-pre;
Else
entry = (TotalTrades-pre)+1;
If CrossUp(c,var1) Then {
if entry == 0 Or MarketPosition ==0 or
(entry >= 1 and MarketPosition == -1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then
Buy("b",AtMarket);
}
If CrossDown(c,var1) Then {
if entry == 0 Or MarketPosition ==0 or
(entry >= 1 and MarketPosition == 1 and TimeToMinutes(stime) >= TT[BarsSinceEntry]+N) Then
Sell("s",AtMarket);
}
다음글
이전글