金字塔代码

合集下载

PythonABBCCC字母金字塔,代码要有逻辑性

PythonABBCCC字母金字塔,代码要有逻辑性

python表达式a<15
Python 正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供Perl 风格的正则表达式模式。

re 模块使Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。

该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

本章节主要介绍Python中常用的正则表达式处理函数。

re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回none。

函数语法:
re.match(pattern, string, flags=0)
第1页共1页。

金字塔自动化交易源代码

金字塔自动化交易源代码

⾦字塔⾃动化交易源代码只要把此模板放在模型的最后⾯,就可以后台全⾃动化交易了。

有个性化需求的,也可在此模板上的基础上定制。

runmode:0;Globalvariable:hold=drawnull;……//这⾥添加上你⾃⼰的模型……//这⾥添加上你⾃⼰的模型cc800988:=holding;//这句放在信号稳定的地⽅drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc800988,0));//在图表上输⼊虚拟持仓以便监控if not(islastbar) or workmode<>1 then exit;xiadan800988:=cc800988-hold;if xiadan800988>0.5 then begincang:=min(xiadan800988,abs(hold));if hold<0 then begintsellshort(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平空 %.0f',cang);endcang:=xiadan800988+min(hold,0);if cang>0 then begintbuy(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开多 %.0f',cang);endendif xiadan800988<-0.5 then begincang:=min(abs(xiadan800988),abs(hold));if hold>0 then begintsell(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平多 %.0f',cang);endcang:=abs(xiadan800988)-max(hold,0);if cang>0 then begintbuyshort(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开空 %.0f',cang);endendhold:=cc800988;完整实例如下:实例⼀、 K线⾛完模式的模型Globalvariable:hold=drawnull;cc800988:=holding;//这句放在信号稳定的地⽅//蓝⾊部分改为你⾃⼰的模型(K线⾛完模型)buycond:=count(c>o,2)=2;sellcond:=count(cif holding>0 and sellcond then sell(1,1,thisclose);if holding<0 and buycond then sellshort(1,1,thisclose);if holding=0 and buycond then buy(1,1,thisclose);if holding=0 and sellcond then buyshort(1,1,thisclose);drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc800988,0));//在图表上输⼊虚拟持仓以便监控if not(islastbar) or workmode<>1 then exit;xiadan800988:=cc800988-hold;if xiadan800988>0.5 then begincang:=min(xiadan800988,abs(hold));if hold<0 then begintsellshort(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平空 %.0f',cang);endcang:=xiadan800988+min(hold,0);if cang>0 then begintbuy(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开多 %.0f',cang);endendif xiadan800988<-0.5 then begincang:=min(abs(xiadan800988),abs(hold));if hold>0 then begintsell(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平多 %.0f',cang);endcang:=abs(xiadan800988)-max(hold,0);if cang>0 then begintbuyshort(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开空 %.0f',cang);endendhold:=cc800988;实例⼆、即时下单模型(固定时间间隔)Globalvariable:hold=drawnull;//蓝⾊部分改为你⾃⼰的模型buycond:=h>ref(hhv(h,10),1);sellcond:=lif holding>0 and sellcond then sell(1,1,market);if holding<0 and buycond then sellshort(1,1,market);if holding=0 and buycond then buy(1,1,market);if holding=0 and sellcond then buyshort(1,1,market);cc800988:=holding;//这句放在信号稳定的地⽅drawtextex(1,1,800,0,'虚拟持仓为:'+numtostr(cc800988,0));//在图表上输⼊虚拟持仓以便监控if not(islastbar) or workmode<>1 then exit;xiadan800988:=cc800988-hold;if xiadan800988>0.5 then begincang:=min(xiadan800988,abs(hold));if hold<0 then begintsellshort(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平空 %.0f',cang);endcang:=xiadan800988+min(hold,0);if cang>0 then begintbuy(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开多 %.0f',cang);endendif xiadan800988<-0.5 then begincang:=min(abs(xiadan800988),abs(hold));if hold>0 then begintsell(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 平多 %.0f',cang);endcang:=abs(xiadan800988)-max(hold,0);if cang>0 then begintbuyshort(1,cang,mkt,0,0,'800988'),allowrepeat;debugfile('D:\800988.txt',numtostr(hold,0)+' '+numtostr(cc800988,0)+' 开空 %.0f',cang);endendhold:=cc800988;--------------------------------leevolvo原创。

mips金字塔例题

mips金字塔例题

mips金字塔例题引言:MIPS(Microprocessor without Interlocked Pipeline Stages)是一种经典的RISC(Reduced Instruction Set Computing)指令集架构。

在学习MIPS编程的过程中,金字塔例题是一个常见的练习,通过编写MIPS汇编语言来构建一个金字塔的图案。

本文将介绍金字塔的例题,包括实现思路、代码分析和代码实现等方面内容。

一、实现思路金字塔是一个由等腰三角形构成的图案,其中每一行的星号数量递增。

实现金字塔的方法可以通过循环和条件判断语句来实现。

下面是一个实现金字塔的思路:1. 首先,确定金字塔的高度,即金字塔的行数,可以通过用户输入或者在代码中直接指定。

2. 使用两个循环来构建金字塔。

外层循环控制金字塔的行数,内层循环控制每一行的星号数量。

3. 内层循环的次数取决于当前行数,根据公式2*(当前行数)-1可以计算出每一行的星号数量。

4. 在每一行的星号数量确定后,可以通过循环打印星号和空格来构建金字塔。

5. 打印完一行后,换行继续打印下一行的星号。

二、代码分析下面是一个实现金字塔的MIPS汇编代码的分析:1. 通过读取用户输入获取金字塔的高度,保存在寄存器中。

2. 初始化外层循环计数器并保存在寄存器中,用于控制金字塔的行数。

3. 进入外层循环,检查循环计数器是否为0,如果为0则退出循环,否则进入下一次循环。

4. 初始化内层循环计数器并保存在寄存器中,用于控制每一行的星号数量。

5. 进入内层循环,循环计数器递减,检查循环计数器是否为0,如果为0则退出循环,否则进入下一次循环。

6. 打印星号。

7. 内层循环结束,换行。

8. 外层循环计数器递减。

9. 外层循环结束,退出程序。

三、代码实现下面是一个简单实现金字塔的MIPS汇编代码示例:.datamsg: .asciiz "请输入金字塔的高度:"height: .word 0.text.globl mainmain:# 打印提示信息li $v0, 4la $a0, msgsyscall# 读取用户输入li $v0, 5syscallmove $t0, $v0# 保存用户输入到height变量 sw $t0, height# 初始化外层循环计数器li $t1, 1# 外层循环outer_loop:# 判断外层循环是否结束 beqz $t1, exit# 初始化内层循环计数器 move $t2, $t1# 内层循环inner_loop:# 判断内层循环是否结束 beqz $t2, line_break# 打印星号li $v0, 11li $a0, '*'syscall# 内层循环计数器递减 subiu $t2, $t2, 1j inner_loop# 换行line_break:li $v0, 11li $a0, '\n'syscall# 外层循环计数器递减subiu $t1, $t1, 1j outer_loop# 退出程序exit:li $v0, 10syscall结论:通过本文的介绍,我们可以了解到如何使用MIPS汇编语言来实现一个金字塔的例题。

第10课 古埃及金字塔《小学生C++趣味编程》

第10课  古埃及金字塔《小学生C++趣味编程》

单精度实数
float
单精度实数
float
比特童币
2
(010)2元
风之巅比特银行
参考程序(不完整) 参考程序(完整)
建议程序在Dev-C++环境中打开学习,师生一起讨论,在课 堂中动态的生成代码,把程序补充完整,这样学习效果会更佳。
s=a*h/2;
s=a*h/2.0;
第10课 古埃及金字塔
金字塔的底是正方 形,四边是由四个大小相 等的等腰三角形构成,试 编一程序,输入底和高, 输出三角形的面积。
第10课 古埃及金字塔
int a,h,s;
比特童币
2பைடு நூலகம்
(010)2元
风之巅比特银行
参考程序(不完整) 参考程序(完整)
建议程序在Dev-C++环境中打开学习,师生一起讨论,在课 堂中动态的生成代码,把程序补充完整,这样学习效果会更佳。

金字塔java代码

金字塔java代码

金字塔java代码
在 Java 中,可以使用嵌套循环来实现金字塔效果的输出。

下面是一个简单的示例代码:```java
public class Pyramid {
public static void main(String[] args) {
int rows = 5; // 金字塔的行数
for (int i = 1; i <= rows; i++) {
// 打印金字塔的前 i 行
for (int j = 1; j <= i; j++) {
System.out.print(j + " ");
}
System.out.println(); // 换行
}
}
}
```
上述示例代码中,我们定义了一个整数变量`rows`来表示金字塔的行数。

然后使用两个嵌套的`for`循环来打印金字塔。

外层循环控制行数,内层循环控制每行的打印内容。

内层循环从 1 到当前行数(包括当前行数)进行迭代,打印出相应的数字,并使用空格分隔。

最后,通过在外层循环的每次迭代结束后打印换行符,实现每一行输出完毕后换行的效果。

运行上述代码,将输出一个 5 行的金字塔图案。

你可以根据需要修改`rows`的值来生成不同行数的金字塔。

希望这个示例对你有帮助。

如果你有任何其他问题,请随时提问。

C语言实验——打印金字塔

C语言实验——打印金字塔
io.h>
int main() { int n,i,j; int t; scanf("%d",&n); t=2*n-1; for(i=1; i<=n; i++)//一次循环代表输出一行 {
for(j=1; j<=t-2*i; j++) putchar(' '); for(j=1; j<=i; j++) { if(i == n && j==1)//当输出最后一行的第一个字母的时候。。因为它前面没有空格 printf("%d",j); else printf(" %d",j); } for(j=i-1; j>=1; j--) printf(" %d",j); putchar('\n'); }
无向图的话会出现负圈本来就是没有最短路的有向图是可以求出最短路的本例
C语言实验 ——打印金字塔
题目描述
输入n值,打印下列形状的金字塔,其中n代表金字塔的层数。
输入
输入只有一个正整数n。
输出
打印金字塔图形,其中每个数字之间有一个空格。
示例输入
3
示例输出
1 121 12321
源码(程序不太简洁。。凑合吧):

javascript金字塔代码

javascript金字塔代码

在深入探讨JavaScript中的金字塔代码之前,让我们先来回顾一下JavaScript的基础知识。

JavaScript是一种强大的脚本语言,广泛应用于web开发中。

它可以为网页增加交互性,并且可以与HTML和CSS配合使用,实现动态效果和操作。

那么,什么是JavaScript金字塔代码呢?JavaScript金字塔代码是一种编程模式,通过嵌套的回调函数来处理异步操作。

在这种模式中,代码呈金字塔形状,深度嵌套的回调函数使得代码难以理解、维护和调试。

这种编程模式通常会导致回调地狱,使得代码变得杂乱不堪,降低了可读性和可维护性。

深度和广度的评估回顾了JavaScript金字塔代码的基本概念之后,现在让我们来进行深度和广度的评估。

深度上,我们需要了解金字塔代码的具体特点、优缺点以及解决方法;而广度上,我们需要结合实际案例和业务场景,探讨金字塔代码在实际开发中的应用和改进方式。

金字塔代码的特点金字塔代码特点是嵌套的回调函数,看起来就像金字塔一样高耸。

这种代码结构会导致代码难以阅读和理解,也不利于代码的维护和扩展。

在实际开发中,如果大量使用金字塔代码,会增加代码的复杂度,降低代码的质量。

金字塔代码的优缺点金字塔代码的优点是可以满足异步操作的需求,但其缺点也是显而易见的。

金字塔代码的可读性差,不利于他人理解和修改;难以进行错误处理和异常捕获,容易导致代码bug;再次,代码的扩展和维护成本高,增加了开发人员的工作量。

解决金字塔代码的方法为了解决金字塔代码带来的问题,我们可以采用一些改进的方法。

使用Promise对象或async/await语法糖来改善异步操作的处理;又如,使用事件驱动模式或rxjs库来简化回调地狱的问题;还可以考虑使用Generator函数或co库来提高代码的可读性和可维护性。

金字塔代码的应用场景在实际开发中,金字塔代码常常出现在处理异步操作的场景中,比如Ajax请求、文件读取、数据库操作等。

金字塔代码

金字塔代码
0, 0,//窗口的X,Y坐标位置
windowRect.right - windowRect.left,//窗口宽度
windowRect.bottom - windowRect.top,//窗口高度
HWND_DESKTOP,//父窗口为桌面
0,//无菜单
window->init.application->hInstance,//传入应用程序实例
#defineWIDTH640//定义窗口宽度
#define HEIGHT480//定义窗口高度
#define BPP16//定义每象素的位数
#define MAXTEXTURE1//定义最大的纹理数目(new)
//在此处引用程序要求的头文件:
#include <windows.h>// Windows的头文件
//定义位置在屏幕左下方的光源
GLfloat light_position1[] = {-1.0f, -1.0f, 1.0f, 0.0f};//设置光源的位置
GLfloat light_ambient1[] = {0.5f, 0.5f, 0.5f, 1.0f};//定义环境光的颜色
GLfloat light_diffuse1[] = {1.0f, 1.0f, 1.0f, 1.0f};//定义漫反射光的颜色
dmScreenSettings.dmFields= DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
//尝试设置显示模式并返回结果。注: CDS_FULLSCREEN移去了状态栏
if (ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)

VB金字塔几种常用编程方法

VB金字塔几种常用编程方法
For i = 9 To 1 Step -1
Print Tab(10 - i); String(2 * i - 1, Chr(64 + 10 - i))
Next i
End Sub
Private Sub Command5_Click()
For i = 1 To 17
Print Spc(Abs(9 - i)); String(17 - 2 * Abs(9 - i), CStr(9 - Abs(i - 9)))
Print Tab(10 - i); String(2 * i - 1, Trim(i))
Next i
End Sub
(8)Private Sub Command8_Click()
Form1.Cls
End Sub
' Print Trim(Str(i));
' Next m
' Print
'Next i
For i = 1 To 9
Print Tab(10 - i);
For m = 1 To 2 * i - 1
Print CStr(i);
Next m
Pr)Private Sub Command3_Click()
Next i
End Sub
(6)Private Sub Command6_Click()
For i = 1 To 9 '输入的数字金字塔的塔高n(1-9)
For j = 1 To i
Print " "; '输出空格
Next j
For j = 1 To 18 - 2 * i + 1
Print CStr(i); '输出数字字符

opencv金字塔构建buildpyramid源码解读

opencv金字塔构建buildpyramid源码解读

opencv金字塔构建buildpyramid源码解读摘要:I.简介- 引入话题- 解释金字塔的概念II.OpenCV中的金字塔构建- 介绍OpenCV中的金字塔构建函数- 函数的输入和输出- 函数的参数解释III.buildpyramid源码解读- 分析buildpyramid函数的代码结构- 解释关键代码段的含义- 介绍buildpyramid函数的运行过程IV.金字塔构建的应用- 介绍金字塔在图像处理中的应用- 举例说明如何使用金字塔进行图像处理V.结论- 总结金字塔构建的重要性- 展望金字塔构建在图像处理领域的未来应用正文:I.简介在计算机视觉领域,图像金字塔是一个重要的概念。

它是一种多尺度表示方法,可以用于图像的放大和缩小,同时保持图像的信息不变。

图像金字塔在图像处理、目标检测、图像识别等领域有着广泛的应用。

在本篇文章中,我们将重点介绍OpenCV中的金字塔构建函数buildpyramid,并解读其源码。

II.OpenCV中的金字塔构建在OpenCV中,金字塔构建函数位于pyramids模块中。

我们可以使用pyramids.buildPyramid()函数来构建金字塔。

该函数的输入是一个图像,输出是一个金字塔图像序列。

函数的主要参数有:- image:输入图像- levels:金字塔的层数- downscale:向下取样因子- border:边界模式,可选值包括"reflect"、"replicate"、"constant"等III.buildpyramid源码解读我们来看一下buildpyramid函数的源码:```pythondef buildPyramid(image, levels, downscale, border="reflect"): """构建图像金字塔:param image: 输入图像:param levels: 金字塔层数:param downscale: 向下取样因子:param border: 边界模式,可选值包括"reflect"、"replicate"、"constant"等:return: 金字塔图像序列"""# 初始化金字塔列表pyramid = []# 遍历金字塔层数for i in range(levels):# 计算当前金字塔的尺寸height = int(image.shape[0] / (2 ** i))width = int(image.shape[1] / (2 ** i))# 进行向下取样scaled = cv2.resize(image, (width, height), interpolation=cv2.INTER_AREA)# 添加边界if border == "reflect":scaled = cv2.reflect(scaled, 1)elif border == "replicate":scaled = cv2.replicate(scaled, 1)elif border == "constant":scaled = cv2.copyMakeBorder(scaled, 1, 1, 1, 1, cv2.BORDER_CONSTANT)# 将当前金字塔添加到列表中pyramid.append(scaled)return pyramid```函数首先初始化一个空的金字塔列表。

金字塔缠论交易系统公式

金字塔缠论交易系统公式

金字塔公式金字塔模型策略源码:input:period(60,5,120,5);input:length(20,5,40,5);input:trailingstop(3,1,6,1);variable:stopline=0;topband:=ref(hhv(high,period),1)+mindiff;botband:=ref(llv(low,20),1)-mindiff;atr:=ref(ma(tr,length),1);trailingstopnum:=trimprice(trailingstop*atr);if holding=0 then beginif barpos>period and high>=topband thenbuy(1,100%,limitr,close);endif holding>0 then beginif high-trailingstopnum>stopline thenstopline:=high-trailingstopnum;if enterbars>=2 and low<=stopline then beginsell(1,holding,limitr,close);stopline:=0;endendpartline(holding>0 and enterbars>=2,stopline,coloryellow,1);盈亏:asset,noaxis,colormagenta;收益:(asset-500000)/500000,linethick0;次数:totaltrade,linethick0;胜率:percentwin,linethick0;连亏:maxseqloss,linethick0;连赢:maxseqwin,linethick0;复制上述代码粘贴到到公式管理器源码解析:输出INPUT:周期输出INPUT:LENGTH(20,5,40,5)输出INPUT:TRAILINGSTOP(3,1,6,1)输出VARIABLE:STOPLINE=0TOPBAND赋值:昨日周期日内最高价的最高值+MINDIFFBOTBAND赋值:昨日20日内最低价的最低值-MINDIFFATR赋值:昨日真实波幅的LENGTH日简单移动平均赋值:TRIMPRICE(TRAILINGSTOP*ATR)逻辑判断 HOLDING=0 THEN BEGIN 逻辑判断 BARPOS>周期 AND 最高价>=TOPBAND THEN BUY(1,100%,LIMITR,收盘价)STOPLINE赋值:最高价-TRAILINGSTOPNUM逻辑判断 ENTERBARS>=2 AND 最低价<=STOPLINE THENBEGIN SELL(1,HOLDING,LIMITR,收盘价)STOPLINE赋值:0END ENDPARTLINE(HOLDING>0 AND ENTERBARS>=2,STOPLINE,画黄色,1)输出盈亏:ASSET,NOAXIS,画洋红色输出收益:(ASSET-500000)/500000,线宽为0 输出次数:TOTALTRADE,线宽为0输出胜率:PERCENTWIN,线宽为0输出连亏:MAXSEQLOSS,线宽为0输出连赢:MAXSEQWIN,线宽为0。

C语言倒金字塔编程

C语言倒金字塔编程
{ int j; for(j=1;j<=2*(i-m+2)-1;j++) //输出“*” printf("*"); for(j=1;j<=4*m-2*i-7;j++) printf(" ");//2*i-1-2*[2*(i-m+2)-1] for(j=1;j<=2*(i-m+2)-1;j++) printf("*"); return 0;
语句 空格 {
n=n+1; m=n/2+2;//m为判断层数变化的界限
for(i=1;i<=n;i++)
for(j=1;j<n+1-i;j++)//输出空心三角前的
printf(" ");
if(i>=m&&i<=n-1) fun(i,m); //调用含有空心行的 else fun2(i); //调用正常的语句 printf("\n"); }
输出“ ”
输调用程序框图
Fun2(i)的调用程序框图
main()
源程序
#include<stdio.h>
{
int n,i,j,m; printf("输入行数:"); scanf("%d",&n); if(n/2==0) //判断输入层数的奇偶
int fun(int i,int m)
奇数 不变
偶数 加一 2.先输出三角型前面的空格 推出公式:n+1-i 3.把空心三角形分为两部分 输出, 红色为正常输出, 蓝色为特殊输出。 4.在特殊输出是调用fun 正常输出时调用fun2 5.特殊输出时 输出“*”

JS打印金字塔

JS打印金字塔

JS打印⾦字塔今晚学习JavaScript,利⽤for循环打印了半边⾦字塔和完整⾦字塔,将所学⼼得记录下来。

⾸先是半边⾦字塔: 代码如下: 1 <script type="text/javascript">2//n为层数3var n = 10;4//外层for循环控制层数5for(var i = 0; i < n; i++){6//内层for循环控制星星的数量7//J<=i是让星星的数量刚好等于层数8for(var j = 0; j <= i; j++){9 document.write("*");10 }11 //打完这层换⾏12 document.write("<br/>");13 }14 </script>效果图:完整⾦字塔 代码如下:1 <script type="text/javascript">2//n控制层数3var n = 10;4for(var i = 1; i <= n; i++){5//每层空格数量为n减i,n为总层数,i是第⼏层6for(var j = 1; j <= n-i; j++){7 document.write("&nbsp");8 }9//每层星星数量为[2*(i-)+1]个,10for(var k = 1; k <= 2*(i-1)+1; k++){11 document.write("*");12 }13//打完⼀层换⾏14 document.write("<br>");15 }16 </script> 效果图: 第⼀个星星对不齐是因为图形的原因。

金字塔代码

金字塔代码

金字塔代码INPUT:M(35,5,300,30),N(2,0.1,10,1),ZJL(5,1,10000,1),BZJBL(10,1,1 00,1);MID := MA(CLOSE,M);//中轨UPPER:= MID + N*STD(CLOSE,M);//上轨LOWER:= MID - N*STD(CLOSE,M);//下轨手数:=INTPART((ZJL*10000)/(CLOSE*MULTIPLIER*BZJBL/100));IF 手数<1 THEN 手数:=1;开多条件:=C>UPPER AND HOLDING=0;//上穿上轨开多开空条件:=C<LOWER AND HOLDING=0;//下穿下轨开空平多条件:=C<MID AND HOLDING>0; //下穿中轨平多平空条件:=C>MID AND HOLDING<0; //上穿中轨平空IF 开多条件 THEN BUY(1,手数,MARKET);IF 开空条件 THEN BUYSHORT(1,手数,MARKET);IF 平多条件 THEN SELL(1,ABS(HOLDING),MARKET);IF 平空条件 THEN SELLSHORT(1,ABS(HOLDING),MARKET);这段源代码是在金字塔上写的。

参数M就是均线的参数,这个可以根据爱好调整下,参数N一般取2,你要是喜欢调整也可以自己调整。

为了方便多个品种组合,我加了两个参数,一个是ZJL,表示开仓动用的资金量,单位是万,20表示动用20万开仓,20万会用完。

一个是BZJBL,保证金比例,即测试品种的保证金比例,单位是百分比,10 表示保证金比例是10%。

模型原理昨天说了,代码也很清楚,一看就明白的。

我测试了下,选了32个品种测试,所有品种适用相同的参数,每个品种分配20万资金一直不变,一直都只用20万,每个品种起始金额都设成100万(相当于起始资金3200万,任何时候都只用20*32=640万),滑点加不加都无所谓,一年3到4次的交易,单次盈利很大,滑点可以忽略,手续费是默认设置:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dmScreenSettings.dmSize= sizeof(DEVMODE);// Devmode结构的大小
dmScreenSettings.dmPelsWidth= width;//设置为屏幕宽度
dmScreenSettings.dmPelsHeight= height;//设置为屏幕高度
dmScreenSettings.dmBitsPerPel= bitsPerPixel;//设为指定位长;
PFD_SUPPORT_OPENGL |// pfd必须支持OpenGL
PFD_DOUBLEBUFFER,// pfd必须支持双缓存
PFD_TYPE_RGBA,//像素格式为RGBA
window->init.bitsPerPixel,//设置颜色深度
0, 0, 0, 0, 0, 0,//忽略颜色位数
char*title;//窗口标题
intwidth;//窗口宽度
intheight;//窗口高度
intbitsPerPixel;//每像素的位数
BOOLisFullScreen;//是否全屏
} GL_WindowInit;
typedef struct {//定义窗口结构体
Keys*keys;//键盘
}
//开始创建OpenGL窗口
window->hWnd = CreateWindowEx(windowExtendedStyle,//窗口扩展样式
window->init.application->className,//应用程序类名
window->init.title,//窗口标题
windowStyle,//窗口样式
//定义位置在屏幕左下方的光源
GLfloat light_position1[] = {-1.0f, -1.0f, 1.0f, 0.0f};//设置光源的位置
GLfloat light_ambient1[] = {0.5f, 0.5f, 0.5f, 1.0f};//定义环境光的颜色
GLfloat light_diffuse1[] = {1.0f, 1.0f, 1.0f, 1.0f};//定义漫反射光的颜色
} Keys;
typedef struct {//定义存储应用程序实例的结构体
HINSTANCEhInstance;//应用程序实例
const char*className;//应用程序类名
} Application;
typedef struct {//定义初始化窗口所需信息
Application*application;//所属的应用程序
{
//全屏切换失败
MessageBox(HWND_DESKTOP, "无法切换到全屏模式,在窗口模式下运行.\nMode Switch Failed,Running In Windowed Mode.", "Error", MB_OK | MB_ICONEXCLAMATION);
window->init.isFullScreen = FALSE;//设置isFullscreen为False
dmScreenSettings.dmFields= DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
//尝试设置显示模式并返回结果。注: CDS_FULLSCREEN移去了状态栏
if (ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
DWORD windowExtendedStyle = WS_EX_APPWINDOW;//设置窗口扩展样式
PIXELFORMATDESCRIPTOR pfd =//像素格式描述符(pfd)的设置
{
sizeof(PIXELFORMATDESCRIPTOR),//像素的尺寸
1,//版本号
PFD_DRAW_TO_WINDOW |// pfd必须支持窗口绘制
#include <gl\gl.h>// OpenGL32库的头文件
#include <gl\glu.h>// Glu32库的头文件
#include <gl\glaux.h>// Glaux库的头文件
#include <stdio.h>//标准输入/输出头文件
//在此处加入程序要求的库到链接器中:
#pragma comment(lib, "opengl32.lib")//链接时查找OpenGL32.lib
0, 0,//窗口的X,Y坐标位置
windowRect.right - windowRect.left,//窗口宽度
windowRect.bottom - windowRect.top,//窗口高度
HWND_DESKTOP,//父窗口为桌面
0,//无菜单
window->init.application->hInstance,//传入应用程序实例
void DrawSceneGL(void);//在这里完成场景的绘制
void Update(void);//在此处更新对消息的动作
void Deinitialize(void);//在此处做退出前扫尾工作
//在此处定义全局变量:
GL_Window*OGL_window;//存储窗口信息
Keys*OGL_keys;//存储按键信息
window);
if (window->hWnd == 0)//窗口是否成功创建
{
return FALSE;//若失败,则返回FALSE
}
window->hDC = GetDC(window->hWnd);//取得当前窗口的设备描述表
if (window->hDC == 0)//若未得到设备描述表
{
}
else//全屏切换成功
{
ShowCursor (FALSE);//隐藏鼠标
windowStyle = WS_POPUP;//设置窗口样式
windowExtendedStyle |= WS_EX_TOPMOST;//设置窗口扩展样式
}
}
else
{
//调整窗口大小,包括窗口边界
AdjustWindowRectEx(&windowRect, windowStyle, 0, windowExtendedStyle);
HWNDhWnd;//窗口句柄
HDChDC;//设备描述表
HGLRChRC;//绘制描述表
GL_WindowInitinit;//提供Window初始化信息的结构体
} GL_Window;
//此代码模块中包含的函数的前向声明:
BOOL Initialize(GL_Window* window, Keys* keys);//设置你绘制前的初始化值
//GLfloat light_ambient0[] = {0.7f, 0.7f, 0.7f, 1.0f};//定义环境光的颜色
//GLfloat light_diffuse0[] = {1.0f, 0.0f, 1.0f, 1.0f};//定义漫反射光的颜色
//GLfloat light_specular0[] = {1.0f, 1.0f, 1.0f, 1.0f};//定义镜面反射光的颜色
#defineWIDTH640//定义窗口宽度
#define HEIGHT480//定义窗口高度
#define BPP16//定义每象素的位数
#define MAXTEXTURE1//定义最大的纹理数目(new)
//在此处引用程序要求的头文件:
#include <windows.h>// Windows的头文件
GLfloat light_specular1[] = {1.0f, 1.0f, 1.0f, 1.0f};//定义镜面反射光的颜色
//定义位置在屏幕右上方的光源
GLfloat light_position0[] = {1.0f, 1.0f, 1.0f, 0.0f};//设置光源的位置
GLfloat light_ambient0[] = {0.5f, 0.5f, 0.5f, 1.0f};//定义环境光的颜色
GLuint PixelFormat;//保存像素格式
if (window->init.isFullScreen == TRUE)//切换全屏
{
if (ChangeScreenResolution(window->init.width, window->init.height, window->init.bitsPerPixel) == FALSE)
GLfloat light_diffuse0[] = {1.0f, 1.0f, 1.0f, 1.0f};//定义漫反射光的颜色
GLfloat light_specular0[] = {1.0f, 1.0f, 1.0f, 1.0f};//定义镜面反射光的颜色
BOOL lighting = FALSE;//控制光照的开启/关闭
BOOL light = FALSE;//用以切换两个光源
BOOL type = FALSE;
BOOL pKeyC;
BOOL pKeyT;
void ResizeWindowGL(int width, int height)//重新设置窗口大小
{
glViewport(0, 0, (GLsizei)(width), (GLsizei)(height));//重置当前视口大小
glLoadIdentity();//重置模型视图矩阵
相关文档
最新文档