编写一个这样的程序,满足五日均线,十日均线,二十日均线,六十天六日均线调头向上的选股代码

cf01a49e2eb147dd98eb4fc102ad0224.jpg

 

编写一个这样的程序,满足五日均线,十日均线,二十日均线,六十天六日均线调头向上的选股代码

以下是一个用C语言编写的程序,可以读取股票数据并筛选出满足条件的股票。程序使用了一个假设的股票数据文件格式,文件名为"stock_data.csv",其中包含一列名为"close"的收盘价数据。

#include <stdio.h>
#include <stdlib.h>
#define MAX_ROWS 1000 // 假设数据文件最多有1000行
int main() {
    FILE *fp;
    char filename[100];
    char line[MAX_ROWS][100];
    double close_prices[MAX_ROWS];
    int ma5[6] = {0, 0, 0, 0, 0, 0}; // 五日移动平均线
    int ma10[6] = {0, 0, 0, 0, 0, 0}; // 十日移动平均线
    int ma20[6] = {0, 0, 0, 0, 0, 0}; // 二十日移动平均线
    int ma60[6] = {0, 0, 0, 0, 0, 0}; // 六十日六日移动平均线
    int i, j, k;
    // 读取股票数据文件
    sprintf(filename, "stock_data.csv");
    fp = fopen(filename, "r");
    if (fp == NULL) {
        printf("Failed to open file %s\n", filename);
        return 1;
    }
    for (i = 0; i < MAX_ROWS; i++) {
        fgets(line[i], sizeof(line[i]), fp);
        sscanf(line[i], "%lf", &close_prices[i]);
    }
    fclose(fp);
    // 计算移动平均线
    for (i = 4; i < MAX_ROWS; i++) {
        ma5[5] = ma5[4];
        ma5[4] = ma5[3];
        ma5[3] = ma5[2];
        ma5[2] = ma5[1];
        ma5[1] = close_prices[i];
        ma5[0] = (ma5[1] + ma5[2] + ma5[3] + ma5[4] + ma5[5]) / 5;
        ma10[5] = ma10[4];
        ma10[4] = ma10[3];
        ma10[3] = ma10[2];
        ma10[2] = ma10[1];
        ma10[1] = close_prices[i];
        ma10[0] = (ma10[1] + ma10[2] + ma10[3] + ma10[4] + ma10[5]) / 5;
        ma20[5] = ma20[4];
        ma20[4] = ma20[3];
        ma20[3] = ma20[2];
        ma20[2] = ma20[1];
        ma20[1] = close_prices[i];
        ma20[0] = (ma20[1] + ma20[2] + ma20[3] + ma20[4] + ma20[5]) / 5;
        ma60[5] = ma60[4];
        ma60[4] = ma60[3];
        ma60[3] = ma60[2];
        ma60[2] = ma60[1];
        ma60[1] = close_prices[i];
        ma60[0] = (ma60[1] + ma60[2] + ma60[3] + ma60[4] + ma60[5]) / 6;
    }
    // 筛选满足条件的股票
    int count = 0;
    for (i = 4; i < MAX_ROWS - 5; i++) {
        if (close_prices[i] < ma5[0]) continue; // 五日均线调头向上
        if (close_prices[i] < ma10[0]) continue; // 十日均线
 

今天就分享这里,需要的朋友拿去自用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/65764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度优先遍历(Depth-First Search, DFS)和广度优先遍历(Breadth-First Search, BFS)

深度优先遍历&#xff08;DFS&#xff09; 问题1&#xff1a;什么是深度优先遍历&#xff08;DFS&#xff09;&#xff1f; 答案&#xff1a; 深度优先遍历是一种用于遍历树或图的算法&#xff0c;它从根节点&#xff08;或其他起始节点&#xff09;开始&#xff0c;首先探索…

基于RabbitMQ的模拟消息队列之四——内存管理

文章目录 一、设计数据结构二、管理集合1.交换机2.队列3.绑定4.消息5.队列上的消息6.待确认消息7.恢复数据 一、设计数据结构 针对交换机、队列、绑定、消息、待确认消息设计数据结构。 交换机集合 exchangeMap 数据结构&#xff1a;ConcurrentHashMap key:交换机name value:交…

中心差分法-学习笔记《结构动力学-陈政清》

激励分段解析法仅仅对外载荷进行了离散&#xff0c;但对运动方程还是严格满足的&#xff0c;体系的运动在时间轴上依然是满足运动微分方程。然而&#xff0c;一般的时域逐步积分法进一步放松要求&#xff0c;不仅仅对外荷载进行离散化处理&#xff0c;也对体系的运动进行离散化…

Linux —— 进程信号

一&#xff0c;信号概念 信号是进程之间事件异步通知的一种方式&#xff0c;属于软中断&#xff1b; 系统定义的信号 每个信号都有一个编号和一个宏定义名称&#xff08;可在signal.h查看&#xff09;&#xff1b;编号34以上的为实时信号&#xff1b; [wz192 Desktop]$ kill -…

vue的 ECMAScript 6的学习

一 ECMAScript 6 1.1 ECMAScript 6 ECMAScript 和 JavaScript 的关系是&#xff0c;前者是后者的规格&#xff0c;后者是前者的一种实现&#xff08;另外的 ECMAScript 方言还有 Jscript 和 ActionScript&#xff09;。 因此&#xff0c;ES6 既是一个历史名词&#xff0c;也…

windows 搭建 swoole开发环境(官网已支持)

第一步下载&#xff1a;swoole官网下载 swoole-cli-v5.0.3-cygwin-x64.zip 只支持 64 位的系统 第二步解压到指定文件夹&#xff1a;E:\phpstudy_pro\WWW\swoole-cli-v5.0.3-cygwin-x64 第三步设置环境变量&#xff1a;把解压后的文件夹下的 bin 目录路径配置到系统的 Path 环境…

Spring中如何解决循环依赖问题的三种方法

什么是循环依赖问题 在 Spring 中&#xff0c;循环依赖问题指的是两个或多个 bean 之间相互依赖形成的闭环。具体而言&#xff0c;当 bean A 依赖于 bean B&#xff0c;同时 bean B 也依赖于 bean A&#xff0c;就形成了循环依赖。 循环依赖问题在 Spring 容器中是一个非常常…

Anycloud37D平台移植wirelesstools

0. 环境准备 下载 &#xff1a;https://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 1. 交叉编译wireless_tools tar xzf wireless_tools.29.tar.gz cd wireless_tools.29/打开Makefile&#xff0c;修改配置&#xff1a; ## Compiler to use (mo…

方法的引用第二版(method reference)

1、冗余的Lambda场景 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿什么参数做什么操作。那么考虑一种情况&#xff1a;如果我们在Lambda中所指定的操作方案&#xff0c;已经有地方在相同方案&#xff0c;那是否还有必要再写重…

Swift的NSClassFromString转换

在swift 中使用NSClassFromString 从string 转换到 对象&#xff0c;报了Segmentation fault: 11 错误。 let ctrlClass: AnyClass NSClassFromString("HomeViewController")! let ctrl: UIViewController ctrlClass.init() as UIViewController 正确的写法&…

MATLAB制图代码【第二版】

MATLAB制图代码【第二版】 文档描述 Code describtion: This code is version 2 used for processing the data from the simulation and experiment. Time : 2023.9.3 Author: PEZHANG 这是在第一版基础上&#xff0c;迭代出的第二版MATLAB制图代码&#xff0c;第二版的特点是…

文献阅读:Semantic Communications for Speech Signals

目录 论文简介动机&#xff1a;为什么作者想要解决这个问题&#xff1f;贡献&#xff1a;作者在这篇论文中完成了什么工作(创新点)&#xff1f;规划&#xff1a;他们如何完成工作&#xff1f;自己的看法(作者如何得到的创新思路) 论文简介 作者 Zhenzi Weng Zhijin Qin Geoffre…

2023 AZ900备考

文章目录 如何学习最近准备考AZ900考试&#xff0c;找了一圈文档&#xff0c;结果发现看那么多文档&#xff0c;不如直接看官方的教程https://learn.microsoft.com/zh-cn/certifications/exams/az-900/ &#xff0c;简单直接&#xff0c;突然想到纳瓦尔宝典中提到多花时间进行思…

linux安装firefox

1.下载对应包 https://www.mozilla.org/en-US/firefox/all/#product-desktop-release 2. 挂载桌面链接(如果/usr/bin/firefox下有的话,先删除) ln -s /opt/firefox/firefox /usr/bin/firefox 3.执行以下命令&#xff0c;即可启动Firefox客户端&#xff1a; firefox

Windows 重新映射 CapsLock 大写锁定到 Ctrl

Windows 重新映射 CapsLock 大写锁定到 Ctrl 本要点中的这些方法适用于我的美国键盘布局。我不确定其他布局。如果出现问题&#xff0c;请恢复您的更改&#xff1b;删除您创建的注册表项&#xff08;并重新启动&#xff09;。 强烈推荐 方法5 ctrl2cap&#xff0c;因为不会影…

《开发实战》14 | Spring框架:IoC和AOP是扩展的核心

14 | Spring框架&#xff1a;IoC和AOP是扩展的核心 IOC、AOP IoC&#xff0c;其实就是一种设计思想&#xff0c;为什么要让容器来管理对象呢&#xff1f;或许你能想到的是&#xff0c;使用 IoC 方便、可以实现解耦。但在我看来&#xff0c;相比于这两个原因&#xff0c;更重要…

Linux 基础篇

很长时间&#xff0c;因为一些事情&#xff0c;没有更新我的文章这让我很惭愧&#xff0c;于是我将打算在今天更新下自己的文章&#xff0c;我发现一些事情&#xff0c;计算机并不是很难学到可以工作的水平&#xff0c;关键在于是否可以坚持下来&#xff0c;有很多时候我并不是…

java项目mysql转postgresql

特殊函数 &#xff1a; mysql&#xff1a; find_in_set(?, ancestors) postgresql&#xff1a; ? ANY (string_to_array(ancestors,,)) mysql&#xff1a; date_format(t1.oper_time, %Y-%m-%d) postgresql&#xff1a; rksj::date to_char(inDate,YYYY-MM-DD) mysql&am…

vue中的nextTick的作用

vue里面&#xff0c;常用的事件onMounted里&#xff0c;总喜欢用一个nextTick&#xff1a; onMounted(() > {nextTick(() > {init();}); });这个东西有啥用呢&#xff1f;我总搞不懂。 今天我忽然有点明白了。这是一个跟前面语句有关的方法。意思是&#xff0c;等前面的…

Linux 配置Java 环境变量

1.修改 profile vim /etc/profile2.增加环境变量 # java env start export JAVA_HOME{java安装目录}export PATH$JAVA_HOME/bin:$PATHexport CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # java env end3.刷新配置 source /etc/profile4.验证 echo $JAVA_H…