답변완료
도움 요청합니다.
안녕하세요?
아래 참조Data 수식에서 첫봉종가에 Plot추세선을 나타내고자 합니다.
제일 아랫줄에
if CurrentDate == sDate and Data1(sDate) == Data3(sDate) Then
Plot13(C2,"당일시가");
하니까 안되네요.
부탁드리며 미리 갑사드립니다.
======================================
var : C2(0,Data3),H2(0,Data3),L2(0,Data3),cnt(0,Data3);
var : Sidx(0,Data3),Sidx1(0,Data3),Eidx(0,Data3),Eidx1(0,Data3),Pre1(0,Data3);
C2 = Data3(c)+data4(c);
if Data3(Bdate != Bdate[1]) Then
{
H2 = C2;
L2 = C2;
Sidx = data3(Index);
Sidx1 = Sidx[1];
Eidx1 = Eidx[1];
}
Eidx = data3(Index);
if data3(Bdate != Bdate[1] or (Bdate == bdate[1] and C2 > h2)) Then
h2 = C2;
if data3(Bdate != Bdate[1] or (Bdate == Bdate[1] and C2 < l2)) Then
l2 = C2;
if Sidx1 > 0 Then
{
pre1 = 0;
For cnt = data3(Index)-Eidx1 to data3(Index)-Sidx1
{
if data3(sDate[cnt] < sDate and sTime[cnt] <= sTime) Then
{
pre1 = C2[cnt];
cnt = data3(Index-Sidx1+1);
}
}
}
if CurrentDate == sDate Then
{
if Data1(sDate) == Data3(sDate) Then
{
Plot1(C2,"참조",IFf(C2 >0,RGB(0,0,0),RGB(0,0,0)));
Plot2(H2,"최고");
Plot3(L2,"최저");
Plot4(pre1,"전일");
PlotBaseLine1(0);
}
Else
{
NoPlot(1);
NoPlot(2);
NoPlot(3);
NoPlot(4);
}
}
if CurrentDate == sDate and Data1(sDate) == Data3(sDate) Then
{
Plot5(C2,"D2당일시가");
Plot6(h2,"D2당일고가");
Plot7(L2,"D2당일저가");
Plot8(L2+(H2-L2)*0.25,"25.0%");
Plot9(L2+(H2-L2)*0.75,"75.0%");
Plot10(L2+(H2-L2)*0.382,"38.2%");
Plot11(L2+(H2-L2)*0.618,"61.8%");
Plot12(L2+(H2-L2)*0.50,"50.0%");
}
if CurrentDate == sDate and Data1(sDate) == Data3(sDate) Then
Plot13(C2,"당일시가");
2023-11-06
1097
글번호 173749
지표
답변완료
재문의 드립니다.
//author Jurij 2015
//default moving average period is 4H because '4h' is missing in the resolution 드롭 down list
study("Multi Time Frame Exponential Moving Average", "MTF EMA", overlay=true)
ma_len = input(title="Length", type=integer, defval=100)
src = input(title="Source", type=source, defval=close)
ma_offset = input(title="Offset", type=integer, defval=0)
res = input(title="Resolution", type=resolution, defval="240")
htf_ma = ema(src, ma_len)
out = security(tickerid, res, htf_ma)
plot(out, color=red, offset=ma_offset)
트레이딩뷰 수식입니다.
이 수식으로 예전에 만들어준 수식이
Input : ntime(240),ma_len(100);
var : S1(0),D1(0),TM(0),TF1(0);
Var : Ep1(0), JISU1(0), PreJISU1(0);
Ep1 = 2/(ma_len+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
value1 = value1+1;
PreJISU1 = JISU1[1];
}
if value1 <= 1 then
{
JISU1 = C;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
}
plot1(JiSu1);
}
이건데 캔들 갯수를 늘리면 선이 고정이 안되고 움직임니다.
2000개로 했을때와
10000개로 했을때의 선이 다르게 나옵니다.
캔들 갯수를 늘려도 고정이 되도록 가능할까요?
2023-11-06
999
글번호 173740
지표
답변완료
강화학습 C코드를 예스트레이더 코드로 변경하고자합니다.
항상 도움주셔서 감사드립니다.
아래와 같이 간단한 강화학습 Q learning C 코드를 주식 ETF 거래하는 예스트레이더 코드로 변경하고자 하는데 몇 일하다가 실패했습니다. TT
변경가능할까요?
NUM_STOCKS 는 주식의 갯수로 2이고 (가령 ETF 채권과 주식 2 종류로 거래를 하는 가정)
ACTION은 매수(=1) 아니면 매도(=0) 입니다.
항상 감사드립니다
=============================================================
#define NUM_STOCKS 2
#define DAYS 100
#define ACTIONS 2
#define ALPHA 0.2
#define GAMMA 0.8
double stock_prices[NUM_STOCKS][DAYS];
double q_values[NUM_STOCKS][ACTIONS];
int choose_action(int stock) {
return rand() % ACTIONS;
}
void calculate_q_values(int stock, int action, double reward, int next_stock) {
double max_next_action = 0;
for (int i = 0; i < ACTIONS; i++) {
if (q_values[next_stock][i] > max_next_action) {
max_next_action = q_values[next_stock][i];
}
}
q_values[stock][action] = (1 - ALPHA) * q_values[stock][action] + ALPHA * (reward + GAMMA * max_next_action);
}
int main() {
srand(time(0));
// Fill stock_prices with some random data or use actual stock prices data
// ...
// Initialize Q-values
for (int i = 0; i < NUM_STOCKS; i++) {
for (int j = 0; j < ACTIONS; j++) {
q_values[i][j] = 0;
}
}
// Training loop
for (int day = 0; day < DAYS - 1; day++) {
for (int stock = 0; stock < NUM_STOCKS; stock++) {
int action = choose_action(stock);
double reward = stock_prices[stock][day + 1] - stock_prices[stock][day];
int next_stock = (action == 0) ? stock - 1 : stock + 1;
calculate_q_values(stock, action, reward, next_stock);
}
}
// Print learned Q-values
printf("Learned Q-values:₩n");
for (int i = 0; i < NUM_STOCKS; i++) {
for (int j = 0; j < ACTIONS; j++) {
printf("%.2f₩t", q_values[i][j]);
}
printf("₩n");
}
return 0;
}
2023-11-05
959
글번호 173733
시스템
답변완료
역배열이평 상승전환
아래 수식은 역배열이평 상승전환 검색 수식입니다.
여기에 전일에 MACD(7,16)가 0선돌파발생을 추가하고 싶습니다.
즉, 전일에 MACD(7,16) 0선돌파 + 금일에 역배열이평 상승전환 종목검색용 수식을
부탁드립니다.
==================================================================================
var : A1(0),A2(0),A3(0),A4(0),A5(0),A6(0),B1(False),B2(False),B3(False),B4(False);
VAR : AA1(0),AA2(0),AA3(0),AA4(0),조건(False);
A1=MA(C,3);
A2=MA(C,5);
A3=MA(C,8);
A4=MA(C,10);
A5=MA(C,20);
A6=MA(C,60);
B1=A1<A5 && A5<A6;
B2=A2<A5 && A5<A6;
B3=A3<A5 && A5<A6;
B4=A4<A5 && A5<A6;
IF B1 TheN {AA1=1;} ElsE {AA1=0;}
IF B2 TheN {AA2=1;} ElsE {AA2=0;}
IF B3 TheN {AA3=1;} ElsE {AA3=0;}
IF B4 TheN {AA4=1;} ElsE {AA4=0;}
조건=AA1[1]+AA2[1]+AA3[1]+AA4[1]>=1 && AA1+AA2+AA3+AA4==0 && C>O;
IF 조건 && !조건[1] TheN
Find(1);
2023-11-05
949
글번호 173732
종목검색