커뮤니티
수정부탁드립니다----
2012-02-17 15:56:33
391
글번호 47893
//일정기간의 최고저값 를 테마한값//
Input:length1(65),length2(150),장기전봉차(0.006),초장기전봉차(0),연속봉수(30);
Input:변동기간(0),변동치(0);
Var:초장기봉기간(1),장기봉기간(1);
var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0),당일손익(300000);
var:Ep(0),T1(0),T2(0),T3(0),TEMA82(0);
var:TEMA71(0),eep(0),tt1(0),tt2(0),tt3(0),TEMA92(0);
#당일누적손익계산 시작
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for var16 = 1 to 20{
if sdate == EntryDate(var16) Then{
count = count+1;
PLR = PLR+PositionProfit(var16);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
//당일누적손익계산 끝
value6 = (당일손익/BigPointValue);
//장기최고저테마값 시작**************************************************
if dayindex+1 < 장기봉기간 Then{
var81 = DayHigh;
var82 = DayLow;
}
Else{
var81 = highest(H,장기봉기간);
var82 = Lowest(L,장기봉기간);
}
value81 = (var81 - var82)/2+var82;
Ep = 2/(LENGTH1+1);
if dayindex == 0 Then
T1 = value81;
Else
T1 = value81*EP + T1[1] * (1-EP);
if dayindex <= 1 Then
T2 = T1;
Else
T2 = T1*EP + T2[1] * (1-EP);
if dayindex <= 2 Then
T3 = T2;
Else
T3 = T2*EP + T3[1] * (1-EP);
TEMA82 = (3 * T1) - (3 * T2) + (T3);
//장기최고저테마값 끝**************************************************
//초장기최고저테마값 시작**************************************************
if dayindex+1 < 초장기봉기간 Then{
var91 = DayHigh;
var92 = DayLow;
}
Else{
var91 = highest(H,초장기봉기간);
var92 = Lowest(L,초장기봉기간);
}
value91 = (var91 - var92)/2+var92;
eEp = 2/(LENGTH2+1);
if dayindex == 0 Then
tT1 = value91;
Else
tT1 = value91*eEP + tT1[1] * (1-eEP);
if dayindex <= 1 Then
tT2 = tT1;
Else
tT2 = tT1*eEP + tT2[1] * (1-eEP);
if dayindex <= 2 Then
tT3 = tT2;
Else
tT3 = tT2*eEP + tT3[1] * (1-eEP);
TEMA92 = (3 * tT1) - (3 * tT2) + (tT3);
//초장기최고저테마값 끝**************************************************
if sdate != sdate[1] Then
Condition3 = false;
Condition1 = highest(h,변동기간) >= lowest(L,변동기간)*(1+(변동치/100));
//Condition2= CountIF(TEMA92==TEMA92[1],30) == 30 ;
if dayindex >= 60 and stime <143000 and dayPL < value6 then{
if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 then {
buy("b");
}
if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 then {
Sell("s");
}
}
if dayindex >= 60 and sTime>=143000 and stime <150300 then{
if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==-1 then {
ExitShort("xs");
}
if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==1 then {
ExitLong("xb");
}
}
//시간청산------------------------------------------------------------
var11 = int(date/100)-int(date/10000)*100; //월
var22 = date - int(date/100)*100; //일
var33 = DayOfWeek(date); //요일
if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then {
SetStopEndofday(144800);
}
else {
SetStopEndofday(150300);
}
if MarketPosition == 1 Then{
ExitLong("bxx",AtStop,EntryPrice+(-(value6)-(PLR)));
}
if MarketPosition == -1 Then{
ExitShort("sxx",AtStop,EntryPrice+((value6)+(PLR)));
}
포지션이 있을때
5개봉 완성되는데 20초 이상 걸리면 청산만하고 진입은 안하게해주시고
포지션이 없을때
5개봉 완성되는데 20초 이상 걸리면 신규진입을 안하게 고처주세요
수고하세요
답변 1
예스스탁 예스스탁 답변
2012-02-17 17:47:15
안녕하세요
예스스탁입니다.
//일정기간의 최고저값 를 테마한값//
Input:length1(65),length2(150),장기전봉차(0.006),초장기전봉차(0),연속봉수(30);
Input:변동기간(0),변동치(0);
Var:초장기봉기간(1),장기봉기간(1);
var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0),당일손익(300000);
var:Ep(0),T1(0),T2(0),T3(0),TEMA82(0);
var:TEMA71(0),eep(0),tt1(0),tt2(0),tt3(0),TEMA92(0);
var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0);
var1 = TimeToMinutes(stime)*60;
var2 = FracPortion(stime/100)*100;//시작시간 초
stimeTosecond = var1+var2;
value1 = TimeToMinutes(time)*60;
value2 = FracPortion(time/100)*100;//긑시간 초
timeTosecond = value1+value2;
SecondMakecandle = timeTosecond-stimeTosecond;
#당일누적손익계산 시작
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for var16 = 1 to 20{
if sdate == EntryDate(var16) Then{
count = count+1;
PLR = PLR+PositionProfit(var16);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
//당일누적손익계산 끝
value6 = (당일손익/BigPointValue);
//장기최고저테마값 시작**************************************************
if dayindex+1 < 장기봉기간 Then{
var81 = DayHigh;
var82 = DayLow;
}
Else{
var81 = highest(H,장기봉기간);
var82 = Lowest(L,장기봉기간);
}
value81 = (var81 - var82)/2+var82;
Ep = 2/(LENGTH1+1);
if dayindex == 0 Then
T1 = value81;
Else
T1 = value81*EP + T1[1] * (1-EP);
if dayindex <= 1 Then
T2 = T1;
Else
T2 = T1*EP + T2[1] * (1-EP);
if dayindex <= 2 Then
T3 = T2;
Else
T3 = T2*EP + T3[1] * (1-EP);
TEMA82 = (3 * T1) - (3 * T2) + (T3);
//장기최고저테마값 끝**************************************************
//초장기최고저테마값 시작**************************************************
if dayindex+1 < 초장기봉기간 Then{
var91 = DayHigh;
var92 = DayLow;
}
Else{
var91 = highest(H,초장기봉기간);
var92 = Lowest(L,초장기봉기간);
}
value91 = (var91 - var92)/2+var92;
eEp = 2/(LENGTH2+1);
if dayindex == 0 Then
tT1 = value91;
Else
tT1 = value91*eEP + tT1[1] * (1-eEP);
if dayindex <= 1 Then
tT2 = tT1;
Else
tT2 = tT1*eEP + tT2[1] * (1-eEP);
if dayindex <= 2 Then
tT3 = tT2;
Else
tT3 = tT2*eEP + tT3[1] * (1-eEP);
TEMA92 = (3 * tT1) - (3 * tT2) + (tT3);
//초장기최고저테마값 끝**************************************************
if sdate != sdate[1] Then
Condition3 = false;
Condition1 = highest(h,변동기간) >= lowest(L,변동기간)*(1+(변동치/100));
//Condition2= CountIF(TEMA92==TEMA92[1],30) == 30 ;
if dayindex >= 60 and stime <143000 and dayPL < value6 then{
if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 then {
if AccumN(SecondMakecandle,5) < 20 Then
buy();
Else
ExitShort();
}
if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 then {
if AccumN(SecondMakecandle,5) < 20 Then
sell();
Else
Exitlong();
}
}
if dayindex >= 60 and sTime>=143000 and stime <150300 then{
if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==-1 then {
ExitShort("xs");
}
if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==1 then {
ExitLong("xb");
}
}
//시간청산------------------------------------------------------------
var11 = int(date/100)-int(date/10000)*100; //월
var22 = date - int(date/100)*100; //일
var33 = DayOfWeek(date); //요일
if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then {
SetStopEndofday(144800);
}
else {
SetStopEndofday(150300);
}
if MarketPosition == 1 Then{
ExitLong("bxx",AtStop,EntryPrice+(-(value6)-(PLR)));
}
if MarketPosition == -1 Then{
ExitShort("sxx",AtStop,EntryPrice+((value6)+(PLR)));
}
즐거운 하루되세요
> leekss1 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다----
> //일정기간의 최고저값 를 테마한값//
Input:length1(65),length2(150),장기전봉차(0.006),초장기전봉차(0),연속봉수(30);
Input:변동기간(0),변동치(0);
Var:초장기봉기간(1),장기봉기간(1);
var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0),당일손익(300000);
var:Ep(0),T1(0),T2(0),T3(0),TEMA82(0);
var:TEMA71(0),eep(0),tt1(0),tt2(0),tt3(0),TEMA92(0);
#당일누적손익계산 시작
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for var16 = 1 to 20{
if sdate == EntryDate(var16) Then{
count = count+1;
PLR = PLR+PositionProfit(var16);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
//당일누적손익계산 끝
value6 = (당일손익/BigPointValue);
//장기최고저테마값 시작**************************************************
if dayindex+1 < 장기봉기간 Then{
var81 = DayHigh;
var82 = DayLow;
}
Else{
var81 = highest(H,장기봉기간);
var82 = Lowest(L,장기봉기간);
}
value81 = (var81 - var82)/2+var82;
Ep = 2/(LENGTH1+1);
if dayindex == 0 Then
T1 = value81;
Else
T1 = value81*EP + T1[1] * (1-EP);
if dayindex <= 1 Then
T2 = T1;
Else
T2 = T1*EP + T2[1] * (1-EP);
if dayindex <= 2 Then
T3 = T2;
Else
T3 = T2*EP + T3[1] * (1-EP);
TEMA82 = (3 * T1) - (3 * T2) + (T3);
//장기최고저테마값 끝**************************************************
//초장기최고저테마값 시작**************************************************
if dayindex+1 < 초장기봉기간 Then{
var91 = DayHigh;
var92 = DayLow;
}
Else{
var91 = highest(H,초장기봉기간);
var92 = Lowest(L,초장기봉기간);
}
value91 = (var91 - var92)/2+var92;
eEp = 2/(LENGTH2+1);
if dayindex == 0 Then
tT1 = value91;
Else
tT1 = value91*eEP + tT1[1] * (1-eEP);
if dayindex <= 1 Then
tT2 = tT1;
Else
tT2 = tT1*eEP + tT2[1] * (1-eEP);
if dayindex <= 2 Then
tT3 = tT2;
Else
tT3 = tT2*eEP + tT3[1] * (1-eEP);
TEMA92 = (3 * tT1) - (3 * tT2) + (tT3);
//초장기최고저테마값 끝**************************************************
if sdate != sdate[1] Then
Condition3 = false;
Condition1 = highest(h,변동기간) >= lowest(L,변동기간)*(1+(변동치/100));
//Condition2= CountIF(TEMA92==TEMA92[1],30) == 30 ;
if dayindex >= 60 and stime <143000 and dayPL < value6 then{
if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 then {
buy("b");
}
if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 then {
Sell("s");
}
}
if dayindex >= 60 and sTime>=143000 and stime <150300 then{
if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==-1 then {
ExitShort("xs");
}
if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==1 then {
ExitLong("xb");
}
}
//시간청산------------------------------------------------------------
var11 = int(date/100)-int(date/10000)*100; //월
var22 = date - int(date/100)*100; //일
var33 = DayOfWeek(date); //요일
if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then {
SetStopEndofday(144800);
}
else {
SetStopEndofday(150300);
}
if MarketPosition == 1 Then{
ExitLong("bxx",AtStop,EntryPrice+(-(value6)-(PLR)));
}
if MarketPosition == -1 Then{
ExitShort("sxx",AtStop,EntryPrice+((value6)+(PLR)));
}
포지션이 있을때
5개봉 완성되는데 20초 이상 걸리면 청산만하고 진입은 안하게해주시고
포지션이 없을때
5개봉 완성되는데 20초 이상 걸리면 신규진입을 안하게 고처주세요
수고하세요
이전글