첨부 이미지
그림1
그림2
input : StartTime(70000),EndTime(55000),Xtime(55500);
var : Tcond(false),entry(0);
var : B1(0),B2(0),BX1(0),BX2(0);
var : S1(0),S2(0),SX1(0),SX2(0);
if sdate != sDate[1] Then
SetStopEndofday(Xtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.260;
B2 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.382;
BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.500;
BX2 = DayHigh(1);
S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*1.746;
S2 = DayHigh(1)+(DayHigh(1)-DayLow(1))*1.682;
SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.000;
SX2 = DayHigh(1);
if Tcond == true Then
{
if (MarketPosition == 0 or (MarketPosition == 1 and MaxEntries == 1)) Then
{
if entry < 5 and L > B1 Then
Buy("b1",AtLimit,B1);
if entry < 5 and L > B2 Then
Buy("b2",AtLimit,B2);
}
if MarketPosition == 1 Then
{
ExitLong("bx1",AtLimit,BX1);
ExitLong("bx2",AtLimit,BX2);
}
if (MarketPosition == 0 or (MarketPosition == -1 and MaxEntries == 1)) Then
{
if entry < 5 and H < S1 Then
Sell("S1",AtLimit,S1);
if entry < 5 and H < S2 Then
Sell("S2",AtLimit,S2);
}
if MarketPosition == -1 Then
{
ExitShort("sx1",AtLimit,SX1);
ExitShort("sx2",AtStop,SX2);
}
}
SetStopProfittarget(PriceScale*150,PointStop);
SetStopLoss(PriceScale*0,PointStop);
-------------------------------
전일 고,저를 피보나치 수열로 당일 진입및 청산이 되는 수식어 입니다.
전일 고 ,저의 폭을 100 이라고 했을때 그 이상 이하에서도 진입및 청산이되는
수식어로 부탁드립니다.
늘 감사드립니다.
답변 1
예스스탁
예스스탁 답변
2021-06-07 13:07:35
안녕하세요
예스스탁입니다.
올려주신 내용만으로는 어떤 값을 지정해 드려야 할지 알수 없습니다.
B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.260;
B2 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.382;
BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.500;
BX2 = DayHigh(1);
S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*1.746;
S2 = DayHigh(1)+(DayHigh(1)-DayLow(1))*1.682;
SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.000;
SX2 = DayHigh(1);
수식안에 위 부분이 각 진입과 청산가격을 지정하는 부분이 있습니다.
해당문의하신 내용은 해당 변수에 계산값을 원하시는 %로 지정하시면 됩니다.
즐거운 하루되세요
> 푸른 님이 쓴 글입니다.
> 제목 : 수식작성
> input : StartTime(70000),EndTime(55000),Xtime(55500);
var : Tcond(false),entry(0);
var : B1(0),B2(0),BX1(0),BX2(0);
var : S1(0),S2(0),SX1(0),SX2(0);
if sdate != sDate[1] Then
SetStopEndofday(Xtime);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
SetStopEndofday(0);
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.260;
B2 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.382;
BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.500;
BX2 = DayHigh(1);
S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*1.746;
S2 = DayHigh(1)+(DayHigh(1)-DayLow(1))*1.682;
SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.000;
SX2 = DayHigh(1);
if Tcond == true Then
{
if (MarketPosition == 0 or (MarketPosition == 1 and MaxEntries == 1)) Then
{
if entry < 5 and L > B1 Then
Buy("b1",AtLimit,B1);
if entry < 5 and L > B2 Then
Buy("b2",AtLimit,B2);
}
if MarketPosition == 1 Then
{
ExitLong("bx1",AtLimit,BX1);
ExitLong("bx2",AtLimit,BX2);
}
if (MarketPosition == 0 or (MarketPosition == -1 and MaxEntries == 1)) Then
{
if entry < 5 and H < S1 Then
Sell("S1",AtLimit,S1);
if entry < 5 and H < S2 Then
Sell("S2",AtLimit,S2);
}
if MarketPosition == -1 Then
{
ExitShort("sx1",AtLimit,SX1);
ExitShort("sx2",AtStop,SX2);
}
}
SetStopProfittarget(PriceScale*150,PointStop);
SetStopLoss(PriceScale*0,PointStop);
-------------------------------
전일 고,저를 피보나치 수열로 당일 진입및 청산이 되는 수식어 입니다.
전일 고 ,저의 폭을 100 이라고 했을때 그 이상 이하에서도 진입및 청산이되는
수식어로 부탁드립니다.
늘 감사드립니다.