커뮤니티
수식부탁드립니다
2019-03-17 18:14:54
318
글번호 127122
$,안녕하세요
*,아래수식(MACD골든/데드크로스시,신호발생)에서 시스템 신호발생시점을 수정변경
부탁드립니다.
1,Red칼라 추세선이 완성된후 연속두번째(외부변수)양봉이 완성됨과 동시에 매수신호가
확정되게 수정하면 좋겠습니다.
2,Blue칼라 추세선이 완성된후 연속두번째(외부변수)음봉이 완성됨과 동시에 매도신호가
확정되게 수정하면 좋겠습니다.
$$,부탁드립니다.
Input : short(12), long(26), signal(9),굵기(1);
Var : MACDV(0) , MACDS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
if crossup(MACDV,MACDS) Then
{
T = 1;
HIV = MACDV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = L;
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
if LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
buy();
}
if CrossDown(MACDV,MACDS) Then
{
T = -1;
LIV = MACDV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
if HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
sell();
}
if T == 1 Then
{
if MACDV > HIV Then
{
HIV = MACDV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:₩예스트레이더₩data₩Sound₩1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if MACDV < LIV Then
{
LIV = MACDV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:₩예스트레이더₩data₩Sound₩1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
답변 1
예스스탁 예스스탁 답변
2019-03-18 14:19:51
안녕하세요
예스스탁입니다.
1
빨간 추세선은 데드구간이 끝나고 골드가 발생했을떄
파란 추세선은 골드구간이 끝타고 데드가 발생했을떄 입니다.
추세선 함수가 현재봉 보다 이전봉들에 연결선을 그릴수 있으므로
골드와 데드 지점보다 이전에 그려져서 보이는 것일 뿐입니다.
사후적으로 보이게 되는 부분입니다.
기존수식은 내용은 아래와 같습니다.
골드가 발생했을떄
최근 데드구간의 MACD의 최저가가 이전 데드구간의 최저가보다 크고
가격은 최근 데드구간의 최저가가 이전 데드구간의 최저가보다 작으면 매수
데드가 발생했을떄
최근 골드구간의 MACD의 최고가가 이전 골드구간의 최고가보다 작고
가격은 최근 데드구간의 최고가가 이전 골드구간의 최고가보다 크면 매도
위 내용에서 양봉과 음봉갯수 추가가 되면 현재 크로스 시점에서
골드이후에 연속 양봉발생할때, 데드이후에 연속음봉이 발생했을떄로 바뀌게 됩니다.
식 작성에 참고하시기 바랍니다.
2
Input : short(12), long(26), signal(9),굵기(1),N(3);
Var : MACDV(0) , MACDS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
if crossup(MACDV,MACDS) Then
{
T = 1;
HIV = MACDV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = L;
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
}
if CrossDown(MACDV,MACDS) Then
{
T = -1;
LIV = MACDV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
}
if T == 1 Then
{
if MACDV > HIV Then
{
HIV = MACDV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:₩예스트레이더₩data₩Sound₩1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if MACDV < LIV Then
{
LIV = MACDV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:₩예스트레이더₩data₩Sound₩1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if countif(T == 1 and C>O,N) == N and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
buy();
if countif(T== -1 and c <O,N) == N and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
sell();
즐거운 하루되세요
> 골든키 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다
> $,안녕하세요
*,아래수식(MACD골든/데드크로스시,신호발생)에서 시스템 신호발생시점을 수정변경
부탁드립니다.
1,Red칼라 추세선이 완성된후 연속두번째(외부변수)양봉이 완성됨과 동시에 매수신호가
확정되게 수정하면 좋겠습니다.
2,Blue칼라 추세선이 완성된후 연속두번째(외부변수)음봉이 완성됨과 동시에 매도신호가
확정되게 수정하면 좋겠습니다.
$$,부탁드립니다.
Input : short(12), long(26), signal(9),굵기(1);
Var : MACDV(0) , MACDS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
if crossup(MACDV,MACDS) Then
{
T = 1;
HIV = MACDV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = L;
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
if LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
buy();
}
if CrossDown(MACDV,MACDS) Then
{
T = -1;
LIV = MACDV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
if HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
sell();
}
if T == 1 Then
{
if MACDV > HIV Then
{
HIV = MACDV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:₩예스트레이더₩data₩Sound₩1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if MACDV < LIV Then
{
LIV = MACDV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:₩예스트레이더₩data₩Sound₩1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
다음글