예스스탁
예스스탁 답변
2020-09-17 11:50:08
안녕하세요
예스스탁입니다.
input : b1(28),b2(28),X1(28),X2(28),ER(8),EF(8),CR(8),CF(8),거래횟수(20),시작시간(090000) ;
var : T1(0,Data1),entry(0,Data1),LL(0,Data1),EH(0,Data1),E1(0,Data1),H1(0,Data1),i1(0,Data1),S1(0,Data1),L1(0,Data1),V1(0,Data1);
var : sum(0,Data1);
sum = Data2(c)+data3(c);
if Data2((sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간)) Then
{
T1 = TotalTrades;
E1 = 0;
LL = sum;
}
if data2(stime >= 시작시간) then
{
if sum < LL Then
LL = sum;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then
{
if E1 == 0 and sum >= LL+data2(PriceScale)*B1 and sum[1] < LL+data2(PriceScale)*B1 Then
{
E1 = 1;
H1 = sum;
i1 = data2(index);
V1 = LL; //시작점 종가
}
if E1 == 1 and data2(index > i1) then
{
if sum > H1 Then
H1 = sum;
#저가가 시작봉종가보다 클때만 눌림체크
if sum >= V1 and sum <= H1-data2(PriceScale)*ER Then
{
E1 = 2;
i1 = data2(index);
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and sum < V1 Then
{
E1 = 0;
LL = L;
}
if E1 == 2 and data2(index) > i1 and sum >= S1+data2(PriceScale)*EF Then
{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then
{
E1 = 0;
LL = sum;
}
if sum < LL Then
LL = sum;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then
{
if E1 == 0 and sum >= LL+data2(PriceScale)*B2 and sum[1] < LL+data2(PriceScale)*B2 Then{
E1 = 1;
H1 = sum;
i1 = data2(index);
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then
{
if sum > H1 Then
H1 = sum;
#저가가 시작봉종가보다 클때만 눌림체크
if sum >= V1 and sum <= H1-data2(PriceScale)*ER Then
{
E1 = 2;
i1 = Data2(index);
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and sum < V1 Then
{
E1 = 0;
LL = sum;
}
if E1 == 2 and data2(index) > i1 and sum >= S1+data2(PriceScale)*EF Then
{
buy("b2");
}
}
if MarketPosition == 1 Then
{
if entry >= 1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
EH = sum;
E1 = 0;
}
if sum > EH Then
{
EH = sum;
E1 = 0;
}
if E1 == 0 and sum <= EH-data2(PriceScale)*X1 Then
{
E1 = 1;
L1 = sum;
i1 = index;
}
if E1 == 1 and data2(index) > i1 Then
{
if sum < L1 Then
L1 = sum;
if H >= L1+PriceScale*CR Then
{
E1 = 2;
I1 = data2(index);
S1 = L1;
}
}
if E1 == 2 and data2(index) > i1 and sum <= S1-data2(PriceScale)*CF Then
{
exitlong("bx1");
E1 = 0;
}
}
}
if MarketPosition == 1 Then
{
if entry >= 1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
EH = sum;
E1 = 0;
}
if sum > EH Then
{
EH = sum;
E1 = 0;
}
if E1 == 0 and C <= EH-data2(PriceScale)*X2 Then
{
E1 = 1;
L1 = sum;
i1 = data2(index);
}
if E1 == 1 and data2(index) > i1 Then
{
if sum < L1 Then
L1 = sum;
if H >= L1+data2(PriceScale)*CR Then
{
E1 = 2;
I1 = data2(index);
S1 = L1;
}
}
if E1 == 2 and data2(index) > i1 and sum <= S1-data2(PriceScale)*CF Then
{
exitlong("bx2");
E1 = 0;
}
}
}
}
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 문의1
> 아래수식은 주차트에 사용하는 buy 수식입니다.
1. 보조차트2와 보조차트3을 이용해서 양합을 구합니다.
var : sum(0,Data1);
sum = Data2(c)+data3(c);
2. 구한 양합을 아래 수식에 따라 진입과 청산에 사용하고 싶습니다.
***************************************************************************
input : b1(28),b2(28),X1(28),X2(28),ER(8),EF(8),CR(8),CF(8),거래횟수(20),시작시간(090000) ;
var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
LL = L;
}
if stime >= 시작시간 then{
if L < LL Then
LL = L;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*ER Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*EF Then{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
LL = L;
}
if L < LL Then
LL = L;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*ER Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*EF Then{
buy("b2");
}
}
if MarketPosition == 1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EH = H;
E1 = 0;
}
if H > EH Then{
EH = H;
E1 = 0;
}
if E1 == 0 and C <= EH-PriceScale*X1 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*CR Then{
E1 = 2;
I1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*CF Then{
exitlong("bx1");
E1 = 0;
}
}
}
if MarketPosition == 1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EH = H;
E1 = 0;
}
if H > EH Then{
EH = H;
E1 = 0;
}
if E1 == 0 and C <= EH-PriceScale*X2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*CR Then{
E1 = 2;
I1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*CF Then{
exitlong("bx2");
E1 = 0;
}
}
}
}