Giter Club home page Giter Club logo

stock-prediction-with-gan-and-wgan's Issues

Class VAE()

Hello, I would like to ask you if the Class VAE() in your code is used to extract 10 features and add them to the original features? I look forward to hearing from you!

loss function of the generator

Hello, I would like to ask why the loss function of the generator in your paper is almost horizontal, can you explain it in detail? I look forward to your reply!

Feature Extraction Bug: FFT Data Leakage causing Fake Result

Main Problem

The following code produces the data leakage FFT feature.

close_fft = np.fft.fft(np.asarray(data_combine['Close'].tolist()))
fft_df = pd.DataFrame({'fft':close_fft})
fft_df['absolute'] = fft_df['fft'].apply(lambda x: np.abs(x))
fft_df['angle'] = fft_df['fft'].apply(lambda x: np.angle(x))

plt.figure(figsize=(14, 7), dpi=100)
fft_list = np.asarray(fft_df['fft'].tolist())
for num_ in [3, 6, 9, 27, 81, 100]:
    fft_list_m10= np.copy(fft_list); fft_list_m10[num_:-num_] = 0
    data_combine[f'FT_{num_}components'] = np.fft.ifft(fft_list_m10)
    plt.plot(np.fft.ifft(fft_list_m10), label='Fourier transform with {} components'.format(num_))
plt.plot(data_combine['Close'].values,  label='Real')

What goes wrong

  • Generate the FFT from the whole time series.
  • Use the future data to provide the previous FFT value.

What can happen

Even an MLP model can have a good result in predicting the next day's up/down trend.

Solution

To provide FFT feature without data leakage. You will need to generate it by each bar.

such as :

for i in range(1, len(df)):
    window = df[:i]['close']
    index_data.append(df.index[i])
    fft_close = np.fft.fft(window.values)
    absolute = np.abs(fft_close)
    angle = np.angle(absolute)
    ...

After this alteration, the model will perform very badly.

for _ in range(3):

Hello, I would like to inquire about the code of HungChun Lin that is publicly available in your project.
In the WGAN-GP code
class GAN():
def train_step(self, data):
for _ in range(1):
for _ in range(3):
What do these two for loops represent?
Does a 1 inside the loop mean that there is only one variable to predict, and does a 3 mean that the sliding window is 3?
Looking forward to your reply, thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.