답변완료
수식 추가 부탁드립니다
수고많으십니다. 도움주셔서 감사드려요.
다름이 아니오라, (수식1) (수식2)
현재 매수만 잡히고 있는데, 선물거래도 가능하도록, 매수/ 매도 양방향 다 되도록
매도 수식 추가// 부탁드립니다.
(트레일링, 목표틱수, 손절틱수도 동일하게 매도도 가능하게 부탁)
1번 수식
input : 이평1(30),이평2(60),이평3(120),이평4(240),이평5(480);
input : 윌리엄스R기간값(14);
input : 손절틱수(200),트레일링스탑틱수(5),목표틱수(200);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0);
MAV1=MA(c,이평1);
MAV2=MA(c,이평2);
MAV3=MA(c,이평3);
MAV4=MA(c,이평4);
MAV5=MA(c,이평5);
if MarketPosition == 0 and c > mav4 and CrossUp(c, mav5) Then
Buy("b");
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*목표틱수 Then
{
if CrossDown(C,mav4) Then
ExitLong("bx");
ExitLong("btr",AtStop,EntryPrice+PriceScale*트레일링스탑틱수);
}
}
SetStopLoss(PriceScale*손절틱수,PointStop);
2번 수식
Input:Len(20);
input : 손절틱수(200),트레일링스탑틱수(5),목표틱수(200);
Var:Mp(0),Value0(0),Value1(0);
Mp = MarketPosition;
Value0 = Highest(High,Len);
Buy("매수", atstop, Value0);
If Mp==1 and Mp[1]==0 then
Value1=value0-Lowest(low,Len)[1];
If PositionProfit>0 then
ExitLong("매수청산", atstop, Value0-Value1);
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*목표틱수 Then
{
ExitLong("btr",AtStop,EntryPrice+PriceScale*트레일링스탑틱수);
}
}
SetStopLoss(PriceScale*손절틱수,PointStop);
2024-01-22
983
글번호 175949
시스템
답변완료
수식 수정요청
아래 수식의 신호가 "지수이평이 120>240일인 경우"에만 나올 수 있게
수정(조건추가) 부탁드립니다.
₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩
Input : shortPeriod(5), longPeriod(20),기간1(50);
var : M1(0),M2(0),a(0),a1(0),eq(0),ZL(0),B(0),B1(0),B2(0),PB(0);
M1 = ma(C, shortPeriod);
M2 = ma(C, longPeriod);
A = LRL(C,기간1);
A1 = LRL(A,기간1);
eq= A-A1;
ZL =A+eq;
PB=SAR(0.02,0.2);
if C>=O && C>=M1 && M1>M1[1] && M1[1]<=M1[2] && C>=M2 && M2>M2[1] && M2[1]<=M2[2] && C>=ZL && ZL>ZL[1] && ZL[1]<=ZL[2] && PB<=C Then
Find(1);
2024-01-21
1093
글번호 175945
종목검색
답변완료
종목검색 수식요청드립니다..
안녕하세요.
영웅문에서의 수식인데 이것을 예스랭귀지로의 변경이 필요해서 문의드립니다.
1,2번이 기본검색식(영웅문 검색식)
3번이 응용검색식입니다..가능하다면 셋 다 구현해주시면 감사하겠습니다.
3번의 조건이 너무 조잡하여 구현이 안되면
1번,2번만이라도 잘 부탁드리겠습니다.. 꾸벅..
1.지수이동평균선240(M240)을 상향돌파 이후 이평선을 '한번'도 하향 이탈하지 않고
상향돌파 이후 최소 '20'봉 이상 진행 후
( 지수이동평균선240을 상향돌파 한 후의) 전고점 상향 돌파 시
(N번째신호) 표시
2.지수이동평균선240(M240)을 상향돌파 이후 이평선을 '한번'도 하향 이탈하지 않고
상향돌파 이후 최소 '20'봉 이상 진행 후
( 지수이동평균선240을 상향돌파 한 후의) 전고점 상향 돌파 시
(첫번째신호) 표시
3.1번의 조건에서 몇가지 수정하겠습니다..
지수이동평균선240을 이탈한 후
25일이 초과되면 돌파를 초기화한다.
(즉, 25일내로 회복하면 하나의 돌파로 간주한다.)
지수이동평균선240(M240)을 상향돌파 이후
이평선을 '2번'까지는 하향 이탈해도 괜찮다.
(단, 이탈했을시 각 이탈 시 '25'일 내로 다시 이동평균선240 위로 올라와야한다.
(예) 2번이탈시, 첫번째 이탈 시 20일후 회복, 2번째이탈 시 15일 후
회복 총합은 35일이 넘었지만, 각각 25일 이내면 가능함
(이탈 전 '첫' )상향돌파 이후 최소 '20'봉 이상 진행 후
(이탈하더라도 20봉의 갯수는 계속 카운트 된다. 첫 상향돌파 후 20봉이므로)
(이탈 전 '첫' 지수이동평균선240을 상향돌파 한 후의) 전고점 상향 돌파 시
(첫신호 or 2번째신호 or 3번째신호) 표시
영웅문 수식1:
M= ma(c, 240, 종류); //종류:지수
HH= Highestsince(1, crossup(c,m), H);
Bs= barssince(crossup(c,M))+1;
cnt= countsince(crossup(c,m), C>M);
Bs == cnt and crossup(c, hh(1)) and
Bs > 지연일 //지연일:20일
영웅문 수식2:
M= ma(c, 240, 종류); //종류:지수
HH= Highestsince(1, crossup(c,m), H);
Bs= barssince(crossup(c,M))+1;
cnt= countsince(crossup(c,m), C>M);
조건=
Bs == cnt and crossup(c, hh(1)) and
Bs > 지연일; //지연일:20일
첫신호= countsince(crossup(c,m), 조건);
첫신호==1 and 첫신호(1)==0
2024-01-22
862
글번호 175944
종목검색
답변완료
수식 도움 요청드립니다
수고에 늘 감사드립니다.
아래 수식을 예스랭귀지로 변환하고자 도움을 요청 드립니다.
매번 수고에 거듭 감사드립니다.
//@version=5
indicator(title='Super trend B', overlay=true)
length = input.int(20, minval=1)
src = close
mult1 = input.float(0.5, minval=0.001, maxval=50, title=" multiflier")
basis = ta.sma(src, length)
upper1 = basis + mult1 * ta.stdev(src, length)
lower1 = basis - mult1 * ta.stdev(src, length)
plot(basis, "Basis", color=#FF6D00)
plot(upper1, "Upper 1", color=#2962FF)
plot(lower1, "Lower 1", color=#2962FF)
// INPUTS //
st_mult = input.float(3, title='SuperTrend Multiplier', minval=0, maxval=100, step=0.01)
st_period = input.int(7, title='SuperTrend Period', minval=1)
// CALCULATIONS //
up_lev = upper1 - st_mult * ta.atr(st_period)
dn_lev = lower1 + st_mult * ta.atr(st_period)
up_trend = 0.0
up_trend := close > up_trend ? math.max(up_lev, up_trend) : up_lev
down_trend = 0.0
down_trend := close < down_trend ? math.min(dn_lev, down_trend) : dn_lev
// Calculate trend var
trend = 0
trend := close > down_trend ? 1 : close < up_trend ? -1 : nz(trend, 1)
// Calculate SuperTrend Line
st_line = trend == 1 ? up_trend : down_trend
// Plotting
//plot(st_line[1], color=trend == 1 ? color.green : color.red, style=plot.style_cross, linewidth=2, title='SuperTrend')
buy = ta.crossover(close, st_line)
sell = ta.crossunder(close, st_line)
//plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny)
//plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny)
//plotshape(buy, title='buy', text='Buy', color=color.new(color.green, 0), style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.new(color.white, 0)) //plot for buy icon
plotshape(sell, title='sell', text='Sell', color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.new(color.white, 0)) //plot for sell icon
//
multiplier = input.float(title='DEV', defval=2, minval=1)
src5 = close
len5 = input.int(title='Linear length', defval=150, minval=1)
offset = 0
calcSlope(src5, len5) =>
sumX = 0.0
sumY = 0.0
sumXSqr = 0.0
sumXY = 0.0
for i = 1 to len5 by 1
val = src5[len5 - i]
per = i + 1.0
sumX += per
sumY += val
sumXSqr += per * per
sumXY += val * per
sumXY
slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX)
average = sumY / len5
intercept = average - slope * sumX / len5 + slope
[slope, average, intercept]
var float tmp = na
[s, a, i] = calcSlope(src5, len5)
vwap1 = i + s * (len5 - offset)
sdev = ta.stdev(close, len5)
dev = multiplier * sdev
top = vwap1 + dev
bott = vwap1 - dev
//
z1 = vwap1 + dev
x1 = vwap1 - dev
low1 = ta.crossover(close, x1)
high1 = ta.crossunder(close, z1)
plotshape(low1, title='b', text='BUY', color=color.new(color.green, 0), style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.new(color.white, 0)) //plot for buy icon
//plotshape(high1, title='high', text='HIGH', color=color.new(color.green, 0), style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.new(color.white, 0)) //plot for sell icon
/////// Alerts /////
//alertcondition(buy, title='buy')
alertcondition(sell, title='sell')
alertcondition(low1, title='buy')
//alertcondition(high1, title='buy tp')
2024-01-21
1114
글번호 175942
지표