커뮤니티
거래선 타주기 시스템및 익절조건셋팅
2016-04-30 14:26:23
134
글번호 97542
항상감사드립니다
1.아래 거래선시스템을 타주기시스템으로 부탁드립니다
### 거래선타주기_1
var : upv21(0),upv22(0),upv23(0);
var : dnv21(0),dnv22(0),dnv23(0);
If V== highest(V,240) then{
Var91 = c;
var92 = var91[1];
if var91 > var92 Then{
upv21 = var91;
upv22 = upv21[1];
upv23 = upv22[1];
if upv21-upv22 >= 0.2 Then
var90 = var91;
}
if var91 < var92 Then{
dnv21 = var91;
dnv22 = dnv21[1];
dnv23 = dnv22[1];
if dnv21-dnv22 <= -0.2 Then
var90 = var91;
}
}
if var91 > var92 Then
var30 = 1;
if var91 < var92 Then
var30 = -1;
if var30 == -1 and var30[1] != -1 then buy();
if var30 == 1 and var30[1] != 1 thdn sell();
### 신거래선 타주기_2
if V == highest(V,20) Then
var20 = (C+H+L)/3; #20거래선#
2.아래 익절조건식이 실행이 되질않습니다.아래조건으로 수정부탁드립니다
A.익절및 손절조건_1
1) 17:00시작 ~익일 14:30종료
2) 당일이익 50틱일시 매매종료(50틱이익도달시 시장가청산/매매종료)
3) 당일손실 50틱일시 매매종료(50틱손실도달시 시장가청산/매매종료)
B.익절및 손절조건_2
1) 17:00시작 ~익일 14:30종료
2) 당일이익 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함)
3) 당일손실 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함)
#########################
##### 당일익절 설정 #####
#########################
input : 당일손익(50);
var : NP(0),PreNP(0),dayPL(0),DollerToTick(0);
NP = NetProfit;
if stime == 170000 or (stime > 170000 and stime[1] < 170000) then
PreNP = NP[1];
/* #당일 손익(포인트)
DayPL = NetProfit-PreNP ; */
#당일 손익(포인트)
DayPL = (NetProfit-PreNP)+PositionProfit;
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
### 2회연속손실시 시스템 신호발생 금지 ###
### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ###
var : entrycnt(0),cond(false),T(0),count(0),gap(false);
#장시작
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
cond = false;
#매수매도 방향을 알기위한 변수 초기값은 0
T = 0;
#조건만족횟수 카운트 초기화 0
count = 0;
#시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면
#gap은 true 아니면 false
if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then
gap = true;
Else
gap = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
cond = false;
if entrycnt >= 2 Then{
if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then
cond = true;
if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then
cond = true;
}
if (stime > 170000 or stime < 143000) and (DayPL < 당일손익*PriceScale) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if T <= 0 and #T가 0이고 매수조건이 만족하면
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지#
매수조건 Then{
T = 1; #T는 1(매수조건만족했음을 나타냄)
count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false then
buy("B_uparoon");
Else
ExitShort();
}
}
if T >= 0 and
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지#
매도조건 Then{
T = -1;
count = count+1;
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false Then
sell("S_dnaroon");
Else
ExitLong();
}
}
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then
exitlong("bx50",AtStop,EntryPrice+PriceScale*47); }
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 then
ExitShort("sx50",AtStop,EntryPrice-PriceScale*47);}
if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
감사합니다
답변 1
예스스탁 예스스탁 답변
2016-05-02 13:48:09
안녕하세요
예스스탁입니다.
1.
### 거래선타주기_1
var : upv21(0,data2),upv22(0,data2),upv23(0,data2);
var : dnv21(0,data2),dnv22(0,data2),dnv23(0,data2);
var : v90(0,data2),v91(0,data2),v92(0,data2),v30(0,data2),v20(0,data2);
If data2(V== highest(V,240)) then{
V91 = data2(c);
v92 = v91[1];
if v91 > v92 Then{
upv21 = v91;
upv22 = upv21[1];
upv23 = upv22[1];
if upv21-upv22 >= 0.2 Then
v90 = v91;
}
if v91 < v92 Then{
dnv21 = v91;
dnv22 = dnv21[1];
dnv23 = dnv22[1];
if dnv21-dnv22 <= -0.2 Then
v90 = v91;
}
}
if v91 > v92 Then
v30 = 1;
if v91 < v92 Then
v30 = -1;
if v30 == -1 and v30[1] != -1 then buy();
if v30 == 1 and v30[1] != 1 then sell();
### 신거래선 타주기_2
if data2(V == highest(V,20)) Then
v20 = data2((C+H+L)/3); #20거래선#
2-1
#########################
##### 당일익절 설정 #####
#########################
input : 당일수익틱수(50),당일손실틱수(50);
var : NP(0),PreNP(0),dayPL(0),DollerToTick(0),당일수익(0),당일손실(0);
NP = NetProfit;
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if stime == 170000 or (stime > 170000 and stime[1] < 170000) then
PreNP = NP[1];
#당일 손익(포인트)
DayPL = NetProfit-PreNP ;
/*
#당일 손익(포인트)
DayPL = (NetProfit-PreNP)+PositionProfit;
*/
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
### 2회연속손실시 시스템 신호발생 금지 ###
### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ###
var : entrycnt(0),cond(false),T(0),count(0),gap(false),Xcond(false);
#장시작
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
cond = false;
Xcond = false;
#매수매도 방향을 알기위한 변수 초기값은 0
T = 0;
#조건만족횟수 카운트 초기화 0
count = 0;
#시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면
#gap은 true 아니면 false
if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then
gap = true;
Else
gap = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then
Xcond = true;
cond = false;
if entrycnt >= 2 Then{
if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then
cond = true;
if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then
cond = true;
}
if (stime > 170000 or stime < 143000) and (DayPL < 당일수익틱수*PriceScale and dayPL > -당일손실틱수*PriceScale and Xcond == false ) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if T <= 0 and #T가 0이고 매수조건이 만족하면
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지#
매수조건 Then{
T = 1; #T는 1(매수조건만족했음을 나타냄)
count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false then
buy("B_uparoon");
Else
ExitShort();
}
}
if T >= 0 and
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지#
매도조건 Then{
T = -1;
count = count+1;
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false Then
sell("S_dnaroon");
Else
ExitLong();
}
}
}
if MarketPosition == 1 Then{
ExitLong("BP",atlimit,EntryPrice+당일수익-dayPL);
ExitLong("BL",AtStop,EntryPrice-당일손실-dayPL);
}
if MarketPosition == -1 Then{
ExitShort("SP",atlimit,EntryPrice-당일수익+dayPL);
ExitShort("SL",AtStop,EntryPrice+당일손실+dayPL);
}
if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
2-2
#########################
##### 당일익절 설정 #####
#########################
input : 당일수익틱수(50),당일손실틱수(50);
var : NP(0),PreNP(0),dayPL(0),DollerToTick(0),당일수익(0),당일손실(0);
NP = NetProfit;
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if stime == 170000 or (stime > 170000 and stime[1] < 170000) then
PreNP = NP[1];
#당일 손익(포인트)
DayPL = NetProfit-PreNP ;
/*
#당일 손익(포인트)
DayPL = (NetProfit-PreNP)+PositionProfit;
*/
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
### 2회연속손실시 시스템 신호발생 금지 ###
### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ###
var : entrycnt(0),cond(false),T(0),count(0),gap(false),Xcond(false);
#장시작
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
cond = false;
Xcond = false;
#매수매도 방향을 알기위한 변수 초기값은 0
T = 0;
#조건만족횟수 카운트 초기화 0
count = 0;
#시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면
#gap은 true 아니면 false
if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then
gap = true;
Else
gap = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
cond = false;
if entrycnt >= 2 Then{
if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then
cond = true;
if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then
cond = true;
}
if (stime > 170000 or stime < 143000) and (DayPL < 당일수익틱수*PriceScale and dayPL > -당일손실틱수*PriceScale) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if T <= 0 and #T가 0이고 매수조건이 만족하면
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지#
매수조건 Then{
T = 1; #T는 1(매수조건만족했음을 나타냄)
count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false then
buy("B_uparoon");
Else
ExitShort();
}
}
if T >= 0 and
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지#
매도조건 Then{
T = -1;
count = count+1;
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false Then
sell("S_dnaroon");
Else
ExitLong();
}
}
}
if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 거래선 타주기 시스템및 익절조건셋팅
> 항상감사드립니다
1.아래 거래선시스템을 타주기시스템으로 부탁드립니다
### 거래선타주기_1
var : upv21(0),upv22(0),upv23(0);
var : dnv21(0),dnv22(0),dnv23(0);
If V== highest(V,240) then{
Var91 = c;
var92 = var91[1];
if var91 > var92 Then{
upv21 = var91;
upv22 = upv21[1];
upv23 = upv22[1];
if upv21-upv22 >= 0.2 Then
var90 = var91;
}
if var91 < var92 Then{
dnv21 = var91;
dnv22 = dnv21[1];
dnv23 = dnv22[1];
if dnv21-dnv22 <= -0.2 Then
var90 = var91;
}
}
if var91 > var92 Then
var30 = 1;
if var91 < var92 Then
var30 = -1;
if var30 == -1 and var30[1] != -1 then buy();
if var30 == 1 and var30[1] != 1 thdn sell();
### 신거래선 타주기_2
if V == highest(V,20) Then
var20 = (C+H+L)/3; #20거래선#
2.아래 익절조건식이 실행이 되질않습니다.아래조건으로 수정부탁드립니다
A.익절및 손절조건_1
1) 17:00시작 ~익일 14:30종료
2) 당일이익 50틱일시 매매종료(50틱이익도달시 시장가청산/매매종료)
3) 당일손실 50틱일시 매매종료(50틱손실도달시 시장가청산/매매종료)
B.익절및 손절조건_2
1) 17:00시작 ~익일 14:30종료
2) 당일이익 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함)
3) 당일손실 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함)
#########################
##### 당일익절 설정 #####
#########################
input : 당일손익(50);
var : NP(0),PreNP(0),dayPL(0),DollerToTick(0);
NP = NetProfit;
if stime == 170000 or (stime > 170000 and stime[1] < 170000) then
PreNP = NP[1];
/* #당일 손익(포인트)
DayPL = NetProfit-PreNP ; */
#당일 손익(포인트)
DayPL = (NetProfit-PreNP)+PositionProfit;
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
### 2회연속손실시 시스템 신호발생 금지 ###
### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ###
var : entrycnt(0),cond(false),T(0),count(0),gap(false);
#장시작
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
cond = false;
#매수매도 방향을 알기위한 변수 초기값은 0
T = 0;
#조건만족횟수 카운트 초기화 0
count = 0;
#시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면
#gap은 true 아니면 false
if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then
gap = true;
Else
gap = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
cond = false;
if entrycnt >= 2 Then{
if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then
cond = true;
if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then
cond = true;
}
if (stime > 170000 or stime < 143000) and (DayPL < 당일손익*PriceScale) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if T <= 0 and #T가 0이고 매수조건이 만족하면
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지#
매수조건 Then{
T = 1; #T는 1(매수조건만족했음을 나타냄)
count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false then
buy("B_uparoon");
Else
ExitShort();
}
}
if T >= 0 and
((entrycnt == 0) or
(entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지#
매도조건 Then{
T = -1;
count = count+1;
#gap이 false이거나 gap이 true이면 count가 2이상일때 진입
if gap == false or (gap == true and count >= 2) Then
{
if cond == false Then
sell("S_dnaroon");
Else
ExitLong();
}
}
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then
exitlong("bx50",AtStop,EntryPrice+PriceScale*47); }
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 then
ExitShort("sx50",AtStop,EntryPrice-PriceScale*47);}
if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
감사합니다