예스스탁
예스스탁 답변
2022-06-22 11:11:31
안녕하세요
예스스탁입니다.
1
input : N(3),손절틱수(30);
var1 = highest(H-max(c,O),N);
Var2 = highest(min(C,O)-L,N);
if NextBarSdate != sDate Then
{
if NextBarOpen < C Then
{
if Var2 > 0 Then
Buy("b",AtLimit,NextBarOpen-Var2*0.7);
if var2 > 0 and var1 > 0 Then
ExitLong("bx1",AtLimit,(NextBarOpen-Var2*0.7)+var1*0.7);
}
if MarketPosition == 1 and var1 > 0 Then
ExitLong("bx2",AtLimit,EntryPrice+var1*0.7);
if NextBarOpen > C Then
{
if var1 > 0 Then
Sell("s",AtLimit,NextBarOpen+var1*0.7);
if Var1 > 0 and Var2 > 0 Then
ExitShort("sx1",AtLimit,(NextBarOpen+Var1*0.7)-var2*0.7);
}
if MarketPosition == -1 and var2 > 0 Then
ExitShort("sx2",AtLimit,EntryPrice-var2*0.7);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
2
input : N(3),손절틱수(30);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),entry(0);
var : HH(0),LL(0),cnt(0);
HH = 0;
ll = 0;
For cnt = 0 to N-1
{
if DayHigh(cnt)-max(DayClose(cnt),DayOpen(cnt)) > hh Then
hh = DayHigh(cnt)-max(DayClose(cnt),DayOpen(cnt));
if min(DayClose(cnt),DayOpen(cnt))-DayLow(cnt) > hh Then
ll = min(DayClose(cnt),DayOpen(cnt))-DayLow(cnt);
}
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = NextBarSdate > (10000 * Year) + (100 * 3) + v2
And NextBarSdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
IF ET > ST Then
SetStopEndofday(ET);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(ET);
}
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 ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
var1 = hh;
Var2 = ll;
IF ET <= ST Then
{
SetStopEndofday(0);
}
if NextBarOpen < C and var2 > 0 Then
Buy("b1",AtLimit,NextBarOpen-Var2*0.7);
if NextBarOpen > C and var1 > 0 Then
Sell("s1",AtLimit,NextBarOpen+var1*0.7);
}
Else
{
if DayLow > DayOpen-Var2*0.7 and DayOpen < DayClose(1) and entry < 1 and var2 > 0 Then
Buy("b2",AtLimit,DayOpen+PriceScale*1);
if DayHigh < DayOpen+var1*0.7 and DayOpen > DayClose(1) and entry < 1 and Var1 > 0 Then
Sell("s2",AtLimit,DayOpen-PriceScale*1);
}
if MarketPosition == 1 and var1 > 0 Then
ExitLong("bx",AtLimit,EntryPrice+Var1*0.7);
if MarketPosition == -1 and Var2 > 0 Then
ExitLong("sx",AtLimit,EntryPrice-Var2*0.7);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
즐거운 하루되세요
> 푸른 님이 쓴 글입니다.
> 제목 : 수식어 부탁드립니다
> > input : 익절틱수(100),손절틱수(15);
if NextBarSdate != sDate Then
{
if NextBarOpen < C Then
Buy("b",AtStop,NextBarOpen+PriceScale*1);
if NextBarOpen > C Then
Sell("s",AtStop,NextBarOpen-PriceScale*1);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
--------------------
일봉매매 수식어를 수정하고자 합니다.
1. 수식어 수정전 if NextBarOpen < C Then Buy
if NextBarOpen > C Then Sell
위 수식어는 기본 전제로 하고 세부적인건 아래와 같습니다.
1. 시가에서 매수는 당일이전 3일의 아래꼬리달린 양음봉 중
시가에서 아래꼬리폭이 가장 긴것에 70% 폭을 당일 시가 아래 저점매수로하고
청산은 당일 이전 3일중 가장긴 양음봉의 폭 70%에 청산으로한다.
2. 시가에서 매도는 당일이전 3일의 아래꼬리달린 양음봉 중
시가에서 윗꼬리폭이 가장 긴것에 70% 폭을 당일 시가 위 저점매도로하고
청산은 당일 이전 3일중 가장긴 양음봉의 폭 70%에 청산으로한다.
3. 손절은 매수 매도 각각 30틱으로 한다.
--------------------------
상기내용을 분봉에도 적용을 부탁드립니다.
매매시간은 07시부터 익일 05시50분이고
손절은 30틱입니다.