답변완료
문의 드림니다
수식 예스로 변환부탁드림니다(미리 감사드림니다)
1)
base=(H+L)/2;
upper_band=base + atr(period)*multiple;
downtrend=valuewhen(1,lowest(upper_band(1),period)>upper_band,
upper_band)
2)
base=(H+L)/2;
lower_band=base - atr(period)*multiple;
uptrend=valuewhen(1,highest(lower_band(1),period)<lower_band,
lower_band);
if(eavg(c,120)<c,uptrend,downtrend);
3)
base=(H+L)/2;
upper_band=base + atr(period)*multiple;
downtrend=valuewhen(1,lowest(upper_band(1),period)>upper_band,
upper_band);
if(eavg(c,120)<c,uptrend,downtrend);
2023-10-19
933
글번호 173237
지표
답변완료
문의 드립니다
input : StartTime(140000),EndTime(50000);
input : 익절틱수(0),손절틱수(50);
var : Tcond(False),entry(0);
Variables: Mom(0);
Var : N1(0),dayPl(0),당일수익(400),당일손실(100),Xcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
if Tcond == true Then
{
if L ==lowest(L,2) and highest(H,2) >= lowest(L,2)+PriceScale*1 Then
{
Buy("b",AtStop,(highest(H,2)+lowest(L,2))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 8 Then
ExitShort();
}
if H == highest(H,2) and lowest(L,2) <= highest(H,2)+PriceScale*1 Then
{
Sell("s",AtStop,(lowest(L,2)+highest(H,2))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 8 Then
ExitLong();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
5,20 이동평균선 역배열에 매수 진입금지
5,20 이동평균선 정배열에 매도 진입금지를 추가하고자 합니다.
2023-10-20
796
글번호 173236
시스템
답변완료
시스템 실행 시 결과가 나오지 않습니다.
아래 시스템으로 실행시 결과가 나오지 않습니다.
번거로우시더라도 확인 부탁드리겠습니다.
고맙습니다..
[시스템]
Input :
SampleLength(20 ) ,
FastLength(10),
SlowLength(20) ;
Var :
Z_ValuePrice(0),
PriceOsc(0);
Z_ValuePrice =standardize(Close,SampleLength,1);
PriceOsc = PriceOscillatorTS(Z_ValuePrice , FastLength, SlowLength);
If PriceOsc < 0 and PriceOsc[1] > 0
And FastLength < SlowLength
Then
Sell ( "tPOsc(z)SE" ,OnClose,DEf ) ;
If PriceOsc > 0 and PriceOsc[1] < 0
And FastLength < SlowLength
Then
Buy ( "tPOsc(z)LE" ,OnClose, DEf ) ;
[함수 : PriceOscillatorTS]
inputs:
Price( numericseries ),
FastLength( numericsimple ),
SlowLength( numericsimple ) ;
PriceOscillatorTS = AverageFC( Price, FastLength ) - AverageFC( Price, SlowLength ) ;
2023-10-19
1042
글번호 173235
시스템
답변완료
부탁드립니다
수고하십니다
아래수식이 어디가 잘못이있나요
var : 피봇포인트(0), 1지지(0), 1저항(0), 2지지(0), 2저항(0),연장선두께(1),연장선두께1(2);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
var: tx3(0),tx4(0),tx5(0),tx6(0),tx7(0);
피봇포인트 = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
1지지 = 2*피봇포인트-DayHigh(1);
1저항 = 2*피봇포인트-DayLow(1);
2지지 = 피봇포인트-DayHigh(1)+DayLow(1);
2저항 = 피봇포인트+DayHigh(1)-DayLow(1);
if DataCompress <= 2 and bdate != bdate[1] then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
TL1 = TL_New(sdate[1],stime[1],1지지,sdate,stime,1지지);
TL2 = TL_New(sdate[1],stime[1],1저항,sdate,stime,1저항);
TL3 = TL_New(sdate[1],stime[1],2지지,sdate,stime,2지지);
TL4 = TL_New(sdate[1],stime[1],2저항,sdate,stime,2저항);
TL5 = TL_New(sdate[1],stime[1],피봇포인트,sdate,stime,피봇포인트);
TL_SetExtRight(TL1,true);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtRight(TL5,true);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
Text_Delete(tx7);
tx3 = Text_New(sDate,sTime,피봇포인트," (피봇포인트):"+NumToStr(피봇포인트,2));
tx4 = Text_New(sDate,sTime,1지지," 1지지:"+NumToStr(1지지,2));
tx5 = Text_New(sDate,sTime,1저항," 1저항:"+NumToStr(1저항,2));
tx6 = Text_New(sDate,sTime,2지지," 2지지:"+NumToStr(2지지,2));
tx7 = Text_New(sDate,sTime,2저항, 2저항:"+NumToStr(2저항,2));
Text_SetStyle(tx3,0,1);
Text_SetStyle(tx4,0,1);
Text_SetStyle(tx5,0,1);
Text_SetStyle(tx6,0,1);
Text_SetStyle(tx7,0,1);
#연장선 색상
TL_SetColor(TL1,RED);
TL_SetColor(TL2,BLUE);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,BLUE);
TL_SetColor(TL5,YelloW);
#연장선 두께
TL_SetSize(TL1,연장선두께);
TL_SetSize(TL2,연장선두께);
TL_SetSize(TL3,연장선두께);
TL_SetSize(TL4,연장선두께);
TL_SetSize(TL5,연장선두께1);
}
2023-10-19
926
글번호 173234
지표
답변완료
자동매도수식 검토 및 MessageList오류여부 검토 부탁드립니다.
수고많으십니다.
Main.MessageList("na2=",Account7);
Main.MessageList("na1=",woo,"계좌=",num);
var num = Account7.Balance.number;
질문입니다.
na2에서 Account7은 계좌번호가 표시가 되는데
na1에서 계좌번호를 변수로 저장한 num으로 넣으면 undefined 에러가 발생합니다.
수식검토 부탁드립니다.
// 전역변수선언
var exit7;
var Position7;
var Snum7;
var Bnum7;
var BuyFill7;
var SellFill7;
var ID7,ID8,Num7,Num8;
var Xcode7,Xpst7,Xvo7,XID7;
var Xcode8,Xpst8,Xvo8,XID8;
//스팟 시작
function Main_OnStart()
{
Main.SetTimer(1, 10000);
exit7 = false;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
if (exit7 == false)
{
Account7.SetBalanceItem(MD7, 0);
var vo7 = Account7.Balance.count; //수량
var po7 = Account7.Balance.position; //포지션방향(매도1, 매수2)
var cu7 = Account7.Balance.current; //현재가
var num = Account7.Balance.number;
var woo = C7.GetIndicatorData("진입1", 1, 0);
Main.MessageList("na2=",Account7);
Main.MessageList("na1=",woo,"계좌=",num);
}
}
if ( po7 == 1 && Cu7 >=woo) //매도포지션이고 현재가격이 지표 "진입" 값과 같으면
{
exit7 = true; //첫번째 SetTimer 시작
//전량 시장가로 매수주문(청산) 및 ID7에 주문아이디 저장
ID7 = Account7.OrderBuy(MD7,vo7, 0, 1);
}
if (po7 == 2 && Cu7 <= woo) //매수포지션이고 현재가격이 지표"진입" 값과 같거나 작으면
{
//전량 시장가로 매도주문(청산) 및 ID7에 주문아이디 저장
ID7 = Account7.OrderSell(MD7,vo7, 0, 1);
}
//2번 타이머
if (nEventID == 2) //두번째 SetTimer 시작
{
Main.KillTimer(2);
//Num7주문번호의 미체결 객체 셋팅
Account7.SetUnfillOrderNumber(Num7);
//미체결 수량이 있으면
if (Account7.Unfill.count > 0)
{
Xcode7 = Account7.Unfill.code; //종목코드 저장
Xpst7 = Account7.Unfill.orderKind; //주문구분 저장
Xvo7 = Account7.Unfill.count; //주문수량 저장
XID7 = Account7.OrderCancel(Num7); //취소주문, 주문아이디 XID7 저장
}
}
//3번 타이머
if (nEventID == 3)
{
Main.KillTimer(3);
//Num8주문번호 미체결 객체 셋팅
Account7.SetUnfillOrderNumber(Num8);
if (Account7.Unfill.count > 0)
{
Xcode8 = Account7.Unfill.code;
Xpst8 = Account7.Unfill.orderKind;
Xvo8 = Account7.Unfill.count;
XID8 = Account7.OrderCancel(Num8);
}
}
//주문응답
function Main_OnOrderResponse(OrderResponse)
{
//주문응답 아이디(orderID)가 ID7(최초주문아이디)과 같으면
if (OrderResponse.orderID == ID7)
{
//주문번호 저장
Num7 = OrderResponse.orderNum;
Main.SetTimer(2, 5000);
}
//주문응답 아이디가 ID8과 같으면
if (OrderResponse.orderID == ID8)
{
Num8 = OrderResponse.orderNum;
Main.SetTimer(3, 5000);
}
//재주문
//주문응답 아이디가 XID7과 같으면
//시장가로 재주문
if (OrderResponse.orderID == XID7)
{
if (Xpst7== 1)
{
Account7.OrderSell(Xcod7, Xvo7, 0, 1);
}
if (Xpst7== 2)
{
Account7.OrderBuy(Xcod7, Xvo7, 0, 1);
}
}
//주문응답 아이디가 XID8과 같으면
//시장가로 재주문
if (OrderResponse.orderID == XID8)
{
if (Xpst8 == 1)
{
Account7.OrderSell(Xcod8, Xvo8, 0, 1);
}
if (Xpst8 == 2)
{
Account7.OrderBuy(Xcod8, Xvo8, 0, 1);
}
}
}
}
감사합니다.
2023-10-19
1082
글번호 173224
시스템