답변완료
수식좀 부탁드립니다
1) 시스템과 지표수식 두개씩 부탁드립니다.
1 매수 : 50개봉중 5일 평균 최저가
2 매도 : 50개봉중 5일 평균 최고가
2)시스템과 지표수식 두개씩 부탁드립니다.
1 매수 : 5일 평균 최저가 / 하락하다가 상승할때
2 매도 : 5일 평균 최고가 / 상승하다가 하락할때
3) 아래의 수식에서 그림처럼 직전 파동의 고점 혹은 저점기준 피보나치 수치라인을 추가 부탁드립니다.
4) 아래의 수식에서 가장최근 파동의 고점 혹은 저점기준 피보나치 수치라인을 추가 부탁드립니다.(이경우 최근 파동이 늦어지기에 피보나치도 늦게서야 나오겠지요)
Input:전환가격(10),종가사용여부(1),파동선두께(2),수치표시(1),소수(0);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부 == 1,C,H);
LL = IFF(종가사용여부 == 1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] + 전환가격 < HH and hiBar == 0;
Condition2 = 고[1,1] - 전환가격 > LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Red);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,
NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)");
}
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],
NumToStr(저[1,1],소수)+"("+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((저[1,1]-저[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Blue);
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,
NumToStr(저[1,1],소수)+"("+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)+","+
NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+
NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)");
}
}
최종꼭지점 = "저점";
}
2020-09-17
873
글번호 142421
시스템
답변완료
문의 드립니다
첨부 사진처럼 매 추세선 전고저점에서 한번씩 진입청산이 되어야하는데 드문드문 가끔 한번씩만 실행이 되고 있어 개선부탁드립니다.
정말 감사합니다.
Input:length(12);
input : 익절틱수(27),손절틱수(25),진입횟수(1);
Var : j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0);
var : 처리구분(""),TL_Val1(0),TL_Val2(0),color(0),T(0);
Array:고점[10,2](0),저점[10,2](0);
var : entry(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 Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then
TL_Delete(TL2);
}
if 고점[1,1] > 고점[2,1] or 고점[2,1] == 0 Then{
color = RED;
//buy("b");
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetColor(TL1,color);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
TL_Delete(TL3);
}
if 저점[1,1] < 저점[2,1] or 저점[2,1] == 0 Then{
color = blue;
//sell("s");
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL1,color);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
TL_SetSize(TL1,3);
if T == 1 and CrossUp(C,고점[2,1]) Then
{
if entry < 진입횟수 Then
Buy("b");
Else
ExitShort("sx");
}
if T == -1 and CrossUp(C,저점[2,1]) Then
{
if entry < 진입횟수 Then
Sell("s");
Else
ExitLong("bx");
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2020-09-16
920
글번호 142408
시스템
답변완료
문의드립니다!
먼저 항상 수고해주심에 감사말씀 드립니다!
아래수식에서 Plot6(전일고가), Plot11(천정대칭가격), Plot12(바닥대칭가격)만을 대상으로해서...
이 3개의 선이 캔들과 만나기 N틱전에(예 3틱전)
각각 1)세로선과 2)음성신호가 발생토록 수정 부탁드립니다
* 세로선의 두께와 색상은 조정이 가능하도록 부탁드립니다!
감사합니다!!!
--------------------------------------------------------------------------
var : 당일시가(0),전일시가(0),금일종가(0),전일종가(0);
var : 금일고가(0),전일고가(0),금일저가(0),전일저가(0);
var : 금일중간가격(0),전일중간가격(0),천정대칭가격(0),바닥대칭가격(0);
var : Tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
var : Tx7(0),tx8(0),tx9(0),tx10(0),tx11(0),tx12(0);
당일시가 = dayopen;
전일시가 = dayopen(1);
금일종가 = dayclose;
전일종가 = dayclose(1);
금일고가 = dayhigh;
전일고가 = dayhigh(1);
금일저가 = daylow;
전일저가 = daylow(1);
금일중간가격 = (dayhigh + daylow)/2;
전일중간가격 = (dayhigh(1)+daylow(1))/2;
천정대칭가격 = dayhigh + (dayhigh - dayhigh(1));
바닥대칭가격 = daylow - (daylow-daylow(1));
Plot1(당일시가);
Plot2(전일시가);
Plot3(금일종가);
Plot4(전일종가);
Plot5(금일고가);
Plot6(전일고가);
Plot7(금일저가);
Plot8(전일저가);
Plot9(금일중간가격);
Plot10(전일중간가격);
Plot11(천정대칭가격);
Plot12(바닥대칭가격);
if Index == 1 or Bdate != Bdate[1] Then
{
tx1 = Text_New_Self(sDate,sTime,당일시가,"당일시가 "+NumToStr(당일시가,2));
tx2 = Text_New_Self(sDate,sTime,전일시가,"전일시가 "+NumToStr(전일시가,2));
tx3 = Text_New_Self(sDate,sTime,금일종가,"금일종가 "+NumToStr(금일종가,2));
tx4 = Text_New_Self(sDate,sTime,전일종가,"전일종가 "+NumToStr(전일종가,2));
tx5 = Text_New_Self(sDate,sTime,금일고가,"금일고가 "+NumToStr(금일고가,2));
tx6 = Text_New_Self(sDate,sTime,전일고가,"전일고가 "+NumToStr(전일고가,2));
tx7 = Text_New_Self(sDate,sTime,금일저가,"금일저가 "+NumToStr(금일저가,2));
tx8 = Text_New_Self(sDate,sTime,전일저가,"전일저가 "+NumToStr(전일저가,2));
tx9 = Text_New_Self(sDate,sTime,금일중간가격,"금일중간가격 "+NumToStr(금일중간가격,2));
tx10 = Text_New_Self(sDate,sTime,전일중간가격,"전일중간가격 "+NumToStr(전일중간가격,2));
tx11 = Text_New_Self(sDate,sTime,천정대칭가격,"천정대칭가격 "+NumToStr(천정대칭가격,2));
tx12 = Text_New_Self(sDate,sTime,바닥대칭가격,"바닥대칭가격 "+NumToStr(바닥대칭가격,2));
}
Else
{
Text_SetLocation(tx1,NextBarSdate,NextBarStime,당일시가);
Text_SetLocation(tx2,NextBarSdate,NextBarStime,전일시가);
Text_SetLocation(tx3,NextBarSdate,NextBarStime,금일종가);
Text_SetLocation(tx4,NextBarSdate,NextBarStime,전일종가);
Text_SetLocation(tx5,NextBarSdate,NextBarStime,금일고가);
Text_SetLocation(tx6,NextBarSdate,NextBarStime,전일고가);
Text_SetLocation(tx7,NextBarSdate,NextBarStime,금일저가);
Text_SetLocation(tx8,NextBarSdate,NextBarStime,전일저가);
Text_SetLocation(tx9,NextBarSdate,NextBarStime,금일중간가격);
Text_SetLocation(tx10,NextBarSdate,NextBarStime,전일중간가격);
Text_SetLocation(tx11,NextBarSdate,NextBarStime,천정대칭가격);
Text_SetLocation(tx12,NextBarSdate,NextBarStime,바닥대칭가격);
}
2020-09-15
1006
글번호 142406
지표