답변완료
피라미딩 관련 질문
안녕하세요! 예스트레이더 참 잘 이용하고 있습니다. 간단한 터틀 트레이딩에 자금관리와 피라미딩을 적용했는데, 피라미딩에서 문제가 있습니다. 매수,매도 최초진입 바로 다음 봉에서 피라미딩 조건이 발생하는 경우에는 피라미딩이 적용되지 않는 것 같습니다. 진입 바로 다음봉이 아닌 상황에서는 피라미딩이 올바르게 적용되는데 말이죠.. 수식은 아래와 같습니다.
항상 도움 주셔서 감사드립니다.
input : capital(1000000000),ATRperiod(20),num(3),ABC(0.01);
Var : Nprice(0),E_num(0),N(0);
N=ATR(ATRperiod);
Nprice=(ATR(ATRperiod)*2)*bigpointvalue;
E_num=Int((capital+(NetProfit*bigpointvalue)*ABC)/Nprice);
/////////////////////////////////////////////////////////
input : period(20),period1(20);
Var1=Highest(H,period);
Var2=Lowest(L,period);
if MarketPosition == 0 And CrossUp(C,Var1[1]) Then
Begin
buy("매수",Def,Def,E_num);
Var30=Index;
End;
If MarketPosition == 1 and crossup(c,latestEntryPrice+N[Index-Var30]) and CurrentEntries<num Then
Begin
buy("매수 피라미딩",Def,Def,E_num);
Var30=Index;
End;
if MarketPosition == 1 Then
Begin
ExitLong("매수청산",AtStop,Lowest(L,period1));
ExitLong("매수 손절",Atstop,entryprice-N[BarsSinceEntry]*2);
ExitLong("매수 피라미딩 손절",AtStop,LatestEntryPrice-(2*N[Index-Var30]));
End;
/////////////////////////////////////////////////////////
If MarketPosition == 0 And CrossDown(C,Var2[1]) Then
Begin
Sell("매도",Def,Def,E_num);
Var40=Index;
End;
If MarketPosition == -1 and CrossDown(C,LatestEntryPrice-N[Index-Var40]) and CurrentEntries<num Then
Begin
Sell("매도 피라미딩",Def,Def,E_num);
Var40=Index;
End;
If MarketPosition == -1 Then
Begin
ExitShort("매도청산",Atstop,Highest(H,period1));
ExitShort("매도 손절",Atstop,entryprice+N[BarsSinceEntry]*2);
ExitShort("매도 피라미딩 손절",AtStop,LatestEntryPrice+(2*N[Index-Var40]));
End;
MessageLog("%.2f %.2f %.2f",LatestEntryPrice-N[Index-Var40],CurrentEntries,LatestEntryPrice);
2022-06-26
1207
글번호 160197
시스템
답변완료
문의 드립니다.
input : 익절틱수(120),손절틱수(20);
if NextBarSdate != sDate Then
{
if NextBarOpen > C Then
Sell("s",AtStop,NextBarOpen+PriceScale*-18);
if NextBarOpen < C Then
Sell("sx",AtStop,NextBarOpen-PriceScale*-18);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 수식어는 일봉상 시가가 전일대비 갭상 갭하일때 둘다 Sell 주문 수식어 입니다.
그래프의 사각형 노란색은 일봉의 역배열인 단순 이동평균선 1,5일선 데드후 골든
의 사이 입니다.
위 수식어를 1,5일선 데드후 골든의 사이에서만 진입및 청산이 되게 수정 해 주셨으면
합니다.
-----------------------------------------
input : 익절틱수(140),손절틱수(20);
if NextBarSdate != sDate Then
{
if NextBarOpen > C Then
Buy("b",AtStop,NextBarOpen+PriceScale*-18);
if NextBarOpen < C Then
Buy("bx",AtStop,NextBarOpen-PriceScale*-18);
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 수식어는 일봉상 시가가 전일대비 갭상 갭하일때 둘다 Buy 주문 수식어 입니다.
일봉의 정배열인 단순 이동평균선 1,5일선 골든후 데드의 사이에서만 진입및 청산이 되게
수정 해 주셨으면 합니다.
-------------------------------------------------
input : 익절틱수(150),손절틱수(30);
if NextBarSdate != sDate Then
{
if NextBarOpen > C Then
{
Buy("b",AtStop,NextBarOpen+PriceScale*1);
Sell("s",AtStop,NextBarOpen-PriceScale*1);
}
if NextBarOpen < C Then
{
ExitLong("bx",AtStop,NextBarOpen-PriceScale*1);
ExitShort("sx",AtStop,NextBarOpen+PriceScale*1);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 일봉매매 수식어를 5분봉으로 하고자 합니다
1. 매매시간은 아침7시부터 익일 아침 5시50분 (24시에 신호가 나오는것은 금지)
으로 하여주시고 썸머타임기간의 수식어도 포함
2022-06-27
1411
글번호 160196
시스템
답변완료
지표식 문의 드립니다
안녕하세요
rule based trading 블로그에 올리신 다우이론 시스템 식입니다
제가 수식을 이해를 못해서요
차트에 나오는 추세선을 지표식으로 바꾸고 싶습니다
지표식으로 부탁드립니다
input:swingPeriod(5);
Var:신고가(False), 신저가(False), j(0),jj(0),최종꼭지점(""),추세구간(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
var : TL1(0);
var : HighStop(0), LowStop(0);
# 추세 판정
신고가 = Highest(H,swingPeriod) == H ;
신저가 = Lowest (L,swingPeriod) == L ;
If 신고가 == True and 신저가 == True Then { // 신고가 신저가 동시 발생
If 최종꼭지점 == "저점" Then {
If 저[1,1] > L Then
추세구간 = -1;
Else
추세구간 = 1;
}
Else If 최종꼭지점 == "고점" Then {
If 고[1,1] < H Then
추세구간 = 1;
Else
추세구간 = -1;
}
}
Else If 신고가 == True Then //신고가 발생
추세구간 = 1;
Else If 신저가 == True Then //신저가 발생
추세구간 = -1;
# 상승추세 구간
If 추세구간 == 1 Then {
If 최종꼭지점 == "저점" Then {
For j = 3 DownTo 2 {
For jj = 1 To 4 {
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,gray);
}
Else If 고[1,1] < H Then { // 1번 고점보다 높은 고가 출현
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
# 하락추세 구간
If 추세구간 == -1 Then {
If 최종꼭지점 == "고점" then {
For j = 3 DownTo 2 {
For jj = 1 To 4 {
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,gray);
}
Else If 저[1,1] > L then {
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
# 직전 스윙고가, 스윙저가
if 추세구간 == 1 Then
HighStop = 고[2,1];
Else
HighStop = 고[1,1];
if 추세구간 == -1 Then
LowStop = 저[2,1];
Else
LowStop = 저[1,1];
# 매매식
if MarketPosition <> 1 Then
Buy("B", AtStop, HighStop);
if MarketPosition <> -1 Then
Sell("S", AtStop, LowStop);
2022-06-26
1729
글번호 160195
지표
답변완료
문의 드립니다!
안녕하세요!
아래수식을 전월물이 아닌 전전월물 기준으로 수정 부탁드립니다
감사합니다!
------------------------------------------------------------------------------------
var : month(0),nday(0),week(0);
var :EX(false),HH(0),LL(0),OO(0),CC(0),DD(0),HH1(0),LL1(0),OO1(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
#선물만기
#if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
if nday >= 8 and nday <= 14 and week == 4 then#옵션만기
EX = true;
Else
EX = false;
if EX == false and EX[1] == true Then{
Condition1 = true;
DD = sDate;
HH = H;
LL = L;
OO = O;
CC = C;
HH1 = HH[1];
LL1 = LL[1];
OO1 = OO[1];
}
if Condition1 == true then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = HH;
var2 = LL;
var3 = var1-var2;
plot1(var1,"Maxi");
plot2(var2+var3*0.500,"중심");
plot3(var2,"Mini");
if sDate == DD Then
{
Var4 = DayOpen;
Var5 = DayHigh;
Var6 = DayLow;
}
Plot4(Var4,"첫날시가",IFf(oo1 < DayOpen(0) ,MAGENTA,MAGENTA));
if HH1 > 0 and LL1 > 0 Then
{
Plot5(HH1,"전월물최고");
Plot6(LL1,"전월물최저");
}
}
2022-06-25
1175
글번호 160190
지표