커뮤니티
문의드립니다.
2018-02-02 11:51:29
161
글번호 116275
Input : 당일수익틱수(30);
var : Tcond(false),T1(0),entry(0),Xcond(false),N1(0),daypl(0),당일수익(0);
var1 = ma(C,5);
var2 = ma(C,10);
당일수익 = PriceScale*당일수익틱수;
if stime == 080000 or (stime > 080000 and stime[1] < 080000) Then
{
Tcond = true;
T1 = TotalTrades;
Xcond = false;
N1 = NetProfit;
}
if stime == 055000 or (stime > 054500 and stime[1] < 055000) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
if Tcond == true and Xcond == false then
{
if crossup(var1,var2) Then
buy("b",OnClose,def,1+entry*2);
if CrossDown(var1,var2) Then
sell("s",OnClose,def,1+entry*2);
}
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
여기에서 매수매도 부분만 변경했으면 합니다.
오전 10시에서 오후 9시 까지의 최고가 최저가를 기준으로 잡고
최고가보다 1틱 더 오르면 매수. 최저가보다 1틱 더 내리면 매도.
다른건 다 똑같고요.
그럼 수고하세요.
답변 1
예스스탁 예스스탁 답변
2018-02-02 14:37:08
안녕하세요
예스스탁입니다.
최고가최저가가 오전10시~오후9시 사이이므로
신호는 오후 9시 이후부터 발생합니다.
Input : 당일수익틱수(30);
var : Tcond(false),T1(0),entry(0),Xcond(false),N1(0),daypl(0),당일수익(0);
var : HH(0),LL(0),HLTime(0);
var1 = ma(C,5);
var2 = ma(C,10);
당일수익 = PriceScale*당일수익틱수;
if stime == 080000 or (stime > 080000 and stime[1] < 080000) Then
{
HLTime = 1;
Tcond = true;
T1 = TotalTrades;
Xcond = false;
N1 = NetProfit;
}
if stime == 055000 or (stime > 054500 and stime[1] < 055000) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
#오전 10시에서 오후9시(21시) 사이의 최고가/최저가 계산
if stime == 100000 or (stime > 100000 and stime[1] < 100000) Then{
HLTime = 2;
HH = H;
LL = L;
}
if stime == 210000 or (stime > 210000 and stime[1] < 210000) Then
HLTime = 3;
if HLTime == 2 then{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
}
if Tcond == true and Xcond == false and HLtime >= 3 then
{
if MarketPosition <= 0 and H < HH+PriceScale*1 Then
buy("b",AtStop,HH+PriceScale*1,1+entry*2);
if MarketPosition >= 0 and L > LL-PriceScale*1 Then
sell("s",AtStop,LL-PriceScale*1,1+entry*2);
}
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
즐거운 하루되세요
> 아침한때비51 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> Input : 당일수익틱수(30);
var : Tcond(false),T1(0),entry(0),Xcond(false),N1(0),daypl(0),당일수익(0);
var1 = ma(C,5);
var2 = ma(C,10);
당일수익 = PriceScale*당일수익틱수;
if stime == 080000 or (stime > 080000 and stime[1] < 080000) Then
{
Tcond = true;
T1 = TotalTrades;
Xcond = false;
N1 = NetProfit;
}
if stime == 055000 or (stime > 054500 and stime[1] < 055000) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
if Tcond == true and Xcond == false then
{
if crossup(var1,var2) Then
buy("b",OnClose,def,1+entry*2);
if CrossDown(var1,var2) Then
sell("s",OnClose,def,1+entry*2);
}
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
여기에서 매수매도 부분만 변경했으면 합니다.
오전 10시에서 오후 9시 까지의 최고가 최저가를 기준으로 잡고
최고가보다 1틱 더 오르면 매수. 최저가보다 1틱 더 내리면 매도.
다른건 다 똑같고요.
그럼 수고하세요.
다음글
이전글