답변완료
수식문의 드립니다.
코인 시스템 문의 드립니다.
1.3분봉수식에 일봉조건을 추가하고 싶습니다.
1-1. 3분봉에 일봉 cci(50)>0 보다 클때
1-2. 3분봉 수식에 일봉 볼린져밴드 상단 돌파할때
1-3. 3분봉 수식에 일봉 파라볼릭이 상승추세일때
1-4. 3분봉 수식에 일봉 ma(c,120)위에 있들때
를 분봉에 추가 하는 수식 부탁드립니다.
--아래---
Input : Period1(50),Period2(9);
var : af(0.02),ADXv(0),count(0), maxAF(0.2),CCIv(0),CCIsig(0),a(0),a1(0),a2(0),a11(0),a22(0),a33(0), 전환선(0),기준선(0),선행1(0),선행2(0),선행스팬1(0),선행스팬2(0),구선행스팬1(0),구선행스팬2(0);
CCIv = CCI(Period1);
CCIsig = ema(CCIv,Period2);
ADXv = ADX(11);
a=ma(c,5);
a1=ma(c,20);
a2=ma(c,5);
a11=ma(v,5);
a22=ma(v,10);
a33=ma(v,20);
var1 = SAR(af,maxAF);
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행1 = (전환선+기준선)/2;
선행2 = (highest(H,52)+lowest(L,52))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
구선행스팬1 = (전환선[51]+기준선[51])/2;
구선행스팬2 = (highest(H,52)[51]+lowest(L,52)[51])/2;
value1 = max(선행스팬1,선행스팬2);
value2 = min(선행스팬1,선행스팬2);
if((CrossUp(a2,선행스팬2) and 선행스팬1<선행스팬2)or (CrossUp(a2,선행스팬1) and 선행스팬1>선행스팬2)) and adxv>adxv[1] and a11>a22 and 선행1>선행2 and var1<c and c>선행1 Then
count=0;
if CrossUp(cciv,100) Then
{
count = count+1;
var1=cciv;
Var2=var1[1];
if count == 0 and dayopen()<c Then
Buy("b");
if count == 1 and dayopen()<c Then
Buy("b1");
if count == 2 and dayopen()<c Then
Buy("b2");
if count == 3 and dayopen()<c Then
Buy("b3");
}
if cciv>100 and (CrossDown(cciv,ccisig)) Then
ExitLong();
2025-01-10
551
글번호 187069
시스템
답변완료
공통부분 바탕색 표시
1,호가잔량 상승하락 바탕색 표시 수식
var :value(0), T(0,Data1),box(0),dd(0),tt(0),hh(0),ll(0);
Inputs:단기(5),중기(20);
var5 = bids-asks;#잔량차(매수호가잔량-매도호가잔량)
Var1 = ma(var5,단기)[1];
Var2 = ma(var5,중기)[1];
if CrossUp(var1,Var2) Then
{
T = 1;
dd = sDate;
tt = sTime;
HH = L;
LL = L;
box = box_new(sDate,sTime,hh,NextBarSdate,NextBarStime,ll);
Box_SetColor(box,Yellow);
Box_SetFill(box,true,50,true);
Box_SetExtFill(box,true);
}
if CrossDown(var1,Var2) Then
{
T = -1;
dd = sDate;
tt = sTime;
HH = L;
LL = L;
box = box_new(sDate,sTime,hh,NextBarSdate,NextBarStime,ll);
Box_SetColor(box,Gray);
Box_SetFill(box,true,50,true);
Box_SetExtFill(box,true);
}
if T == 1 Then
{
if H > hh Then
hh = h;
if l < ll Then
ll = l;
Box_SetBegin(box,dd,tt,hh);
Box_SetEnd(box,NextBarSdate,NextBarStime,ll);
}
if T == -1 Then
{
if H > hh Then
hh = h;
if l < ll Then
ll = l;
Box_SetBegin(box,dd,tt,hh);
Box_SetEnd(box,NextBarSdate,NextBarStime,ll);
}
2,20 이평 상승하락 바탕색 표시
input : P(20);
var : T(0),box(0),value(0),dd(0),tt(0),hh(0),ll(0);;
var1 = ma(c,P);
if var1 > var1[1] Then
T = 1;
if var1 < var1[1] Then
T = -1;
if var1>Var1[1] Then
{
T = 1;
dd = sDate;
tt = sTime;
HH = L;
LL = L;
box = box_new(sDate,sTime,hh,NextBarSdate,NextBarStime,ll);
Box_SetColor(box,Yellow);
Box_SetFill(box,true,50,true);
Box_SetExtFill(box,true);
}
if var1<Var1[1] Then
{
T = -1;
dd = sDate;
tt = sTime;
HH = L;
LL = L;
box = box_new(sDate,sTime,hh,NextBarSdate,NextBarStime,ll);
Box_SetColor(box,lightBlue);
Box_SetFill(box,true,50,true);
Box_SetExtFill(box,true);
}
if T == 1 Then
{
if H > hh Then
hh = h;
if l < ll Then
ll = l;
Box_SetBegin(box,dd,tt,hh);
Box_SetEnd(box,NextBarSdate,NextBarStime,ll);
}
if T == -1 Then
{
if H > hh Then
hh = h;
if l < ll Then
ll = l;
Box_SetBegin(box,dd,tt,hh);
Box_SetEnd(box,NextBarSdate,NextBarStime,ll);
}
3,1번과 2번 공통부분바탕색을 표시 부탁드립니다
2025-01-09
468
글번호 187068
지표
답변완료
시스템식 부탁드립니다.
안녕하세요.
항상 도움 주셔서 감사합니다.
아래 조건에 맞는 시스템식 부탁드립니다.
제가 초보입니다.
죄송하지만 주석도 같이 부탁드립니다.
종목 : 해외선물
차트 : 10분봉
요청식 1
1. 장시작 시간이 아침 8시 이지만 8시 30분 이후부터 매매를 시작하고 싶습니다.
2. 장마감 시간이 아침 7시 이지만 6시에 모든 포지션을 청산하고 싶습니다.
3. 하루에 2번 매매하는데 첫번째 매매가 수익청산 이면 매매 중단
첫번째 매매가 손실청산이면 2번까지 매매 하고 싶습니다.
4. 익일 리셋
요청식 2
1. 장시작 시간이 아침 8시 이지만 8시 30분 이후부터 매매를 시작하고 싶습니다.
2. 장마감 시간이 아침 7시 이지만 6시에 모든 포지션을 청산하고 싶습니다.
3. 하루의 2번 매매하는데 첫번째 청산이익 또는 청산손실이 40틱 이면 매매 중단
청산이익 및 청산손실이 40틱 미달하면 2번까지 매매 하고 싶습니다.
4. 익일 리셋
감사합니다.
아래 수식에서 수정 부탁드립니다.
1.
Input : 당일수익틱수(100);
input : pt(20), sl(20);
input : StartTime(83000),EndTime(060000);
var : ma10(0),ma20(0) ;
Var : N1(0),dayPl(0),당일수익(0);
var : Tcond(false),Xcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
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
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
Tcond = true;
Xcond = False;
N1 = NetProfit;
}
2.
당일수익 = PriceScale*당일수익틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or
IsExitName("dsp",1) == true) then
Xcond = true;
}
ma10 = ma(c,10);
ma20 = ma(c,20);
if Xcond == false and Tcond == true then
{
if marketposition <= 0 then
{
if MA10 > MA20 then
buy("b",atlimit,C,1) ;
}
if marketposition >= 0 then
{
if MA10 < MA20 then
sell("s",atlimit,C,1) ;
}
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
setstopprofittarget(pt*pricescale,pointstop);
setstoploss(sl*pricescale,pointstop);
2025-01-09
504
글번호 187067
시스템
답변완료
피보30분 130 10 30
input:length(5),a틱(30),b틱(30),c틱(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),process(0),T(0);
Array:HH[10,2](0),LL[10,2](0);
input : StartTime(100000),EndTime(50000);
var : Tcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
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;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
process = 0;
If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{
If LL[1,1] > L Then process = -1;
If HH[1,1] < H Then process = 1;
}
Else If Highest(H,length) == H and lastHiVal <> H Then process = 1;
Else If Lowest(L,length) == L and lastLoVal <> L Then process = -1;
If process == 1 Then
{
T = 1;
lastHiVal = H;
If HH[1,2] < LL[1,2] Then
{
For j = 10 DownTo 2
{
HH[j,1] = HH[j-1,1];
HH[j,2] = HH[j-1,2];
}
}
If HH[1,2] < LL[1,2] or HH[1,1] < H Then
{
HH[1,1] = H;
HH[1,2] = Index;
sBar = Index - LL[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
if LL[1,1] > 0 Then
{
TL1 = TL_New(sDate[sBar],sTime[sBar],LL[1,1],sDate[eBar],sTime[eBar],HH[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],"+"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0));
Text_SetStyle(Text1, 2, 1);
}
Else
{
Text_Delete(text1);
Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],"+"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,2));
Text_SetStyle(Text1, 2, 1);
}
Text_SetStyle(Text1, 2, 1);
}
if MarketPosition <= 0 and
HH[2,1] >= LL[2,1]+PriceScale*a틱 and
LL[1,1] <= HH[2,1]-PriceScale*b틱 and
Tcond == true Then
Buy("b",AtStop,HH[2,1]+PriceScale*c틱);
}
If process == -1 Then
{
T = -1;
lastLoVal = L;
If LL[1,2] < HH[1,2] Then
{
For j = 10 DownTo 2
{
LL[j,1] = LL[j-1,1];
LL[j,2] = LL[j-1,2];
}
}
If LL[1,2] < HH[1,2] or LL[1,1] > L Then
{
LL[1,1] = L;
LL[1,2] = Index;
sBar = Index - HH[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
if HH[1,1] > 0 Then
{
TL1 = TL_New(sDate[sBar],sTime[sBar],HH[1,1],sDate[eBar],sTime[eBar],LL[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],"-"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0));
Text_SetStyle(Text1, 2, 0);
}
Else
{
Text_Delete(text1);
Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],"-"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0));
Text_SetStyle(Text1, 2, 0);
}
}
if MarketPosition >= 0 and
LL[2,1] <= HH[2,1]-PriceScale*a틱 and
HH[1,1] >= LL[2,1]+PriceScale*b틱 and
Tcond == true Then
Sell("s",AtStop,LL[2,1]-PriceScale*c틱);
}
if MarketPosition == 1 and IsEntryName("b") == true Then
Sell("bs",AtStop,EntryPrice-PriceScale*20);
if MarketPosition == -1 and IsEntryName("s") == true Then
Buy("sb",AtStop,EntryPrice+PriceScale*20);
2025-01-12
539
글번호 187061
시스템