예스스탁
예스스탁 답변
2024-10-07 10:30:55
안녕하세요
예스스탁입니다.
수동주문여부는 수식에서 알수 없습니다.
Input:Multiplier(70),Period(2),Per1(120),per2(200);
input : 당일진입횟수(2);
Input:당일청산시간(151900),매수종료시간(141500) ;
var : b(0),s(0);
Var :atr_val(0),UpperBand(0),LowerBand(0),FinalUpperBand(0),FinalLowerBand(0),SuperTrend(0);
var : entry(0),vv(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
If CurrentBar > 0 Then {
atr_val = Ema(Max(C[1],H) - Min(C[1],L) , Period);
UpperBand = (H + L) / 2 + Multiplier * atr_val;
LowerBand = (H + L) / 2 - Multiplier * atr_val;
If UpperBand < FinalUpperBand[1] or C[1] > FinalUpperBand[1] Then
FinalUpperBand = UpperBand;
If LowerBand > FinalLowerBand[1] or C[1] < FinalLowerBand[1] Then
FinalLowerBand = LowerBand;
If SuperTrend[1] == FinalUpperBand[1] and C <= FinalUpperBand Then
SuperTrend = FinalUpperBand;
Else If SuperTrend[1] == FinalUpperBand[1] and C > FinalUpperBand Then
SuperTrend = FinalLowerBand;
Else If SuperTrend[1] == FinalLowerBand[1] and C >= FinalLowerBand Then
SuperTrend = FinalLowerBand;
Else If SuperTrend[1] == FinalLowerBand[1] and C < FinalLowerBand Then
SuperTrend = FinalUpperBand;
#Plot1(SuperTrend,"Super Trend",IFF(SuperTrend > C,Blue,Red),Def,3);
}
if c <= 0.1 Then
vv = 10;
Else if c > 0.1 and C <= 0.5 Then
vv = 6;
Else if c > 0.5 and C <= 1.0 Then
vv = 4;
Else
vv = 1;
# 매수/매도청산
If MarketPosition == 0 and entry < 당일진입횟수 and sTime < 매수종료시간 and SuperTrend < C Then
{
Buy("b",OnClose,Def,vv);
}
if MarketPosition == 1 Then
{
if MaxContracts > 1 Then
{
ExitLong("bx1",AtLimit,EntryPrice*(1+Per1/100),"",Floor(MaxContracts*0.5),1);
}
ExitLong("bx",AtLimit,EntryPrice*(1+Per2/100));
# 매도/매수청산
If sTime < 당일청산시간 and SuperTrend > C Then
{
ExitLong();
}
}
#50%손실이면 전량청산
#SetStopLoss(Loss,PercentStop);
#당일청산
SetStopEndofday(당일청산시간);
즐거운 하루되세요
> 비류천 님이 쓴 글입니다.
> 제목 : 수식 요청드립니다.
> 수식에 아래조건을 추가요청드립니다.
옵션매매에 사용합니다.
참고로 매수만 있고 매도는 없습니다.
추가1
옵션가격대별 매수수량
1) 가격이 0.01~0.1 일때 10개
2) 가격이 0.11~0.5 일때 6개
3) 가격이 0.51~1.0 일때 4개
4) 가격이 1.01 이상 일때 1개
추가2
익절조건
매수후 120% 수익시 절반익절
200% 수익시 나머지 모두청산
매수수량이 1개일때는 200% 에서 청산
추가3
진입횟수 변수로 설정
2번만 진입으로 변수설정
추가4
청산시
(손매매로 미리 청산 했으면 보유수량이 없을때는 매도되지 않게 가능한가요?)
(가능하다면 청산수식에 넣어주세요.)
※ 각줄의 수식에 주석을 부탁드립니다.
--------수식-----------------------------------
Input:Multiplier(70),Period(2);
#input : 당일진입횟수(3);
Input:당일청산시간(151900),매수종료시간(141500) ;
var : b(0),s(0);
Var :atr_val(0),UpperBand(0),LowerBand(0),FinalUpperBand(0),FinalLowerBand(0),SuperTrend(0);
var : entry(0),vv(0);
If CurrentBar > 0 Then {
atr_val = Ema(Max(C[1],H) - Min(C[1],L) , Period);
UpperBand = (H + L) / 2 + Multiplier * atr_val;
LowerBand = (H + L) / 2 - Multiplier * atr_val;
If UpperBand < FinalUpperBand[1] or C[1] > FinalUpperBand[1] Then
FinalUpperBand = UpperBand;
If LowerBand > FinalLowerBand[1] or C[1] < FinalLowerBand[1] Then
FinalLowerBand = LowerBand;
If SuperTrend[1] == FinalUpperBand[1] and C <= FinalUpperBand Then
SuperTrend = FinalUpperBand;
Else If SuperTrend[1] == FinalUpperBand[1] and C > FinalUpperBand Then
SuperTrend = FinalLowerBand;
Else If SuperTrend[1] == FinalLowerBand[1] and C >= FinalLowerBand Then
SuperTrend = FinalLowerBand;
Else If SuperTrend[1] == FinalLowerBand[1] and C < FinalLowerBand Then
SuperTrend = FinalUpperBand;
#Plot1(SuperTrend,"Super Trend",IFF(SuperTrend > C,Blue,Red),Def,3);
}
# 매수/매도청산
If sTime < 매수종료시간 and SuperTrend < C Then
{
Buy();
}
# 매도/매수청산
If sTime < 당일청산시간 and SuperTrend > C Then
{
ExitLong();
}
#50%손실이면 전량청산
#SetStopLoss(Loss,PercentStop);
#당일청산
SetStopEndofday(당일청산시간);
-------------------------------------------------