網站搜索:
當前位置:→ 股海網股軟教程 → 正文
  • 通達信DLL插件編寫大眾化教程

  • 相關簡介:通達信DLL插件編寫大眾化教程 要想象編普通公式一樣編DLL插件,我們必須掌握C語言里的for語句的用法,我們不用理解具體的含義,更不需要死記硬背下來,我們只要知道最基本的結構就可以了, 本來我是記不住的,現在想想就能打出代碼來了 void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc) 這一行,在C語言里叫指針,在通達信里就叫輸入參數的,講得高雅一點,就是通達信的接口 除了void 后面的那三個字母要各種

  • 文章來源:股海網發布時間:2019-01-05 12:05:51瀏覽次數:下載次數:0收藏:



通達信DLL插件編寫大眾化教程

要想象編普通公式一樣編DLL插件,我們必須掌握C語言里的for語句的用法,我們不用理解具體的含義,更不需要死記硬背下來,我們只要知道最基本的結構就可以了,

本來我是記不住的,現在想想就能打出代碼來了

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

這一行,在C語言里叫指針,在通達信里就叫輸入參數的,講得高雅一點,就是通達信的接口

除了void 后面的那三個字母要各種改以外,別的全部不要動,這個是固定的模式

我們還要記住一個英文單詞

因為很多時間,我用自定義的參數,用這個英文要方便很多

fTemp 中文是什么或者怎么讀,我也不會,哈哈,如果你認為我不行,可以不用看下面了

我們編公式要用到變量和參數,變量因為是計算出來的,會有小數點,所以用float在指針那一行下面申明一下
參數很多時候用的都是整數,我們就用int來申明一下;
N=9;
V1:MA(C,N);

比如說這個公式,V1就是變量,N就是參數

那么我們用fTemp代替V1

申明就這樣寫了


void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;


申明寫完了,我們要開始寫一個for語句

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;

for(int i = 1;i<DataLen;i++)

這句意思就是說,申明i等于1(或者你等于零也可以,i后面要是有計算式的話,刪掉,至少我刪了好多都證明是可行的),第一句用分號結束,第二句,如果i小DataLen,那么i++,意思就是可以朝下進行,再加一次,進入下面的語句,如果不是小于,是大于或等于了,那么就結束了,程序就不朝下運行了,這是固定不變的,所有的for開頭的語句都是這樣的

一個完整的for開頭的語句就是這樣了

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;

for(int i = 1;i<DataLen;i++)
{

}

給一個大括句最好,如果不給,只算第一行的,下面的就不算了
再繼續下面

void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;

int N = 0;

for(int i = 1;i<DataLen;i++)
{
pfOUT = pfINa//這個地方有一個大括號中間有一個i看圖,論壇會漏掉
}
看截圖

通達信DLL插件編寫大眾化教程

那么,這就是一個完整的for語句了,記住一句,所有的for開頭的語句,你可以全部放在一個for語句里各種計算;

看我的這個帖子,那些五天線,十天線,還有二十天線,我們全部放在一起計算



我們要這樣做:

比如說我們要計算一個公式,這個公式要求是五天線大于十天線,十天線大于二十天線,我們這樣來處理
void SMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)

float fTemp =0.0;
float fTemp1 =0.0;
float fTemp2 =0.0;
float fTemp3 =0.0;
float fTemp4 =0.0;
float sum = 0.0;
int N = 0;

for(int i = 1;i<DataLen;i++)
{

                for (int j = 0;
                        j < 5; j++)
                        sum = sum + pfINa[i - j];
                fTemp1 = sum / 5;
                for (int j = 0;
                        j < 10; j++)
                        sum = sum + pfINa[i - j];
                fTemp2 = sum / 10;
                for (int j = 0;
                        j < 20; j++)
                        sum = sum + pfINa[i - j];
                fTemp3 = sum / 20;
              pfOUT
= fTemp1 > fTemp2 > fTemp2;

                 }

提個醒,pfOUT后面有一個大括號,大括號里有一個小寫的i

通達信DLL插件編寫大眾化教程

只要是for開頭的,全部可以把第一個for省略掉,然后放在一起加減乘除,今天大于明天那些全部是一樣的,總之思路或者說方法就是這樣,怎樣發揮,你自己想吧,就是你想怎樣都可以 ,如果你明白了這帖子的話

前提條件是for的第一句表達式必須是一樣,那些五天線還有十天線為什么不能用一個for了,因為括號里有5,還有10,還有20,是不一樣的,如果是一樣,仍然可以再省略掉,只用一個for

兩個一樣的for,,就是后面的語句是一樣的,你編在一起,會把cpu累死,反正我死了好多次機了

如果再給一個不是for開頭的,可以直接申明一個fTemp 變量

等代替上一個語句里的pfOUT

然后把fTemp

換成下一個語句的里

pfINa這個參數

 

通達信DLL插件編寫大眾化教程

  • 下載資源所需積分

    0

  • 當前擁有積分

    0

公式解密、改選股聯系QQ:78858997
網友評論 0條評論

關于我們 - 聯系我們 - 廣告合作 - 下載聲明 - 網站幫助 - 友情鏈接 - SiteMap - TOP
Copyright © 2020 銘網科技,All Rights Reserved.湘ICP備09016573號-10
本站所有信息免費,所有廣告和涉及鏈接,與股海網均無任何關系,請股友自行判斷真假
股海網股票軟件下載中心
股海網股票書籍下載中心 湘公網安備43108102000040號
福建快3走势 新快3遗漏数据 北京pk拾开奖结果 大乐透复式玩法价格 神来棋牌老版下载手机版 陕西闲来麻将下载苹果版 英超联赛排行榜 遇乐升级安卓版 大地棋牌官网唯一注册 一分钟赛车计划9码 股票涨跌幅百分比怎么算 北京快中彩指标统计 腾讯欢乐捕鱼蒸汽时代 微信打麻将怎么创房间 真人麻将下载手机版 下载吉林麻将 手机玩天津麻将