操盤手十年課程mt4編程_第1頁(yè)
操盤手十年課程mt4編程_第2頁(yè)
操盤手十年課程mt4編程_第3頁(yè)
操盤手十年課程mt4編程_第4頁(yè)
操盤手十年課程mt4編程_第5頁(yè)
已閱讀5頁(yè),還剩89頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、語(yǔ)法 Syntax代碼格式空格建、Tab 鍵、換行鍵和換頁(yè)可以成為代碼排版的分隔符,你能使用各種符號(hào)來(lái)增加代碼的可讀性。注釋多行注釋使用 /* 作為開(kāi)始到 */ 結(jié)束,在這之間不能夠嵌套。單行注釋使用 / 作為開(kāi)始到新的一行結(jié)束,可以被嵌套到多行注釋之中。示例:標(biāo)識(shí)符標(biāo)識(shí)符用來(lái)給變量、函數(shù)和數(shù)據(jù)類型進(jìn)行命名,長(zhǎng)度不能超過(guò) 31 個(gè)字節(jié)你可以使用數(shù)字 0-9、拉丁字母大寫 A-Z 和小寫a-z(大小寫有區(qū)分的)還有下劃線(_)。此外首字母不可以是數(shù)字,標(biāo)識(shí)符不能和保留字.示例:保留字下面列出的是固定的保留字。不能使用以下任何保留字進(jìn)行命名。數(shù)據(jù)類型 Data types數(shù)據(jù)類型概述 主要數(shù)據(jù)類型

2、有:····Integer (int) Boolean (bool) ëèòåðàëû (char)String (string)數(shù)據(jù)類型類型操作符其它bool extern break false color static case true datetimecontinuedoubledefaultintelsestringforvoidifreturn switch while/ NAME1 namel Total_5 Paper/ 單行注釋/* 多行注釋 / 嵌套的單

3、行注釋注釋結(jié)束 */···Floating-point number (double) Color (color)Datetime (datetime)我們用Integer 類型數(shù)據(jù)來(lái)作為DateTime 和Color 數(shù)據(jù)的使用以下方式可以進(jìn)行類型站換:。Integer 類型十進(jìn)制: 數(shù)字 0-9;0 不能作為第一個(gè)字母示例:十六進(jìn)制: 數(shù)字 0-9;拉丁字母 a-f 或A-F 用來(lái)表示 10-15;使用 0x 或者 0X 作為開(kāi)始。示例:Integer 變量的取值范圍為-2147483648 到 2147483647。Literal 類型任意在單引號(hào)中的字符或

4、十六進(jìn)制的任意ASCII 碼例如'x10'都是被看作為一個(gè)字符,一些字符例如單引號(hào)('),雙引號(hào)("),問(wèn)號(hào)(?),反斜杠()和一些需要在之前加一個(gè)反斜杠()進(jìn)行轉(zhuǎn)意后表示出來(lái):以上字符如果不經(jīng)過(guò)反斜杠進(jìn)行轉(zhuǎn)意將不能被使用示例:Boolean 類型Boolean 用來(lái)表示 是示例:和 否, 還可以用數(shù)字 1 和 0 進(jìn)行表示。True 和Flase 可以忽略大小寫。bool a = true; bool b = false; bool c = 1;int a = 'A'int b = '$'int c = '©

5、' / code 0xA9int d = 'xAE' / symbol code ®line feed NL (LF) n horizontal tab HT t carriage return CR r reverse slash single quote ' ' double quote " "hexadecimal ASCII-code hh xhh0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C712, 111, -956 1007int (bool,color,datetime);

6、double;string;Floating-point number 類型浮點(diǎn)型變量在整數(shù)型后面加一個(gè)點(diǎn)(.)用來(lái)更精確的表示十進(jìn)制數(shù)字。示例:浮點(diǎn)型的取值范圍從 2.2e-308 到 1.8e308.String 類型字符串型是用來(lái)表示連續(xù)的ASCII 碼字符的使用連續(xù)的兩個(gè)雙引號(hào)來(lái)包括需要表示的內(nèi)容如:"Character constant".示例:Color 類型顏色類型可以使用以下示例里的幾種方式進(jìn)行定義。示例:Datetime 類型時(shí)間類型使用年、月、日、時(shí)、分、秒來(lái)進(jìn)行定義,你可以使用以下示例中的方式來(lái)定義變量。示例:Operations & Expr

7、essions運(yùn)算符和表D'2004.01.01 00:00' / New Year D'1980.07.19 12:30:27'D'19.07.1980 12:30:27'D'19.07.1980 12' /equal to D'1980.07.19 12:00:00' D'01.01.2004' /equal to D'01.01.2004 00:00:00'D'12:30:27' /equal to D'compilation date 12:30:27

8、' D'' /equal to D'compilation date 00:00:00'/ symbol constants C'128,128,128' / gray C'0x00,0x00,0xFF' / blue/ named color RedYellow Black/ integer-valued representation 0xFFFFFF / white16777215 / white 0x008000 / green 32768 / green"This is a character strin

9、g" "Copyright symbol txA9" "this line with LF symbol n" "A" "1234567890" "0" "$"double a = 12.111; double b = -956.1007; double c = 0.0001; double d = 16;表一個(gè)表示例:可以擁有多個(gè)字符和操作符,一個(gè)表可以寫在幾行里面。注:分號(hào)(;)是表的結(jié)束符。算術(shù)運(yùn)算符加減 1 的運(yùn)算符不能被嵌套在表中賦值運(yùn)算符注:將右側(cè)的結(jié)果

10、賦值給左側(cè)的變量注:一個(gè)表只能有一個(gè)賦值運(yùn)算符.關(guān)系運(yùn)算符用返回 0(False)或 1(True)來(lái)表示兩個(gè)量之間的關(guān)系。a 是否等于b a = b; a 是否不等于b a != b; a 是否小于b a < b;a 是否大于b a > b;a 是否小于等于b a <= b; a 是否大于等于b a >= b;將x 的值賦值給y y = x;將x 的值加到y(tǒng) 上面 y += x; 在y 上面減去x 的值 y -= x; 得到y(tǒng) 的x 倍的值 y *= x; 得到y(tǒng) 除以x 的值 y /= x;取y 除以x 后的余數(shù) y %= x; y 向右位移x 位 y >&g

11、t;= x;y 向左位移x 位 y <<= x; 得到邏輯AND 的值 y &= x; 得到邏輯OR 的值 y |= x;得到邏輯非OR 的值 y = x;int a=3;a+; / 可行的表int b=(a+)*3; / 不可行的表Sum of values i = j + 2; Difference of values i = j - 3;Changing the operation sign x = - x; Product of values z = 3 * x;Division quotient i = j / 5;Division remainder minut

12、es = time % 60; Adding 1 to the variable value i+; Subtracting 1 from the variable value k-;a+; b = 10; x = (y*z)/w;真假運(yùn)算符運(yùn)算符(!),用來(lái)表示真的結(jié)果。邏輯運(yùn)算符或(|)用來(lái)表示兩個(gè)表示例:只要有一個(gè)成立即可。邏輯運(yùn)算符和(&&)用來(lái)表示兩個(gè)表示例:要同時(shí)成立。位邏輯運(yùn)算符 運(yùn)算符對(duì)操作數(shù)執(zhí)行按位求補(bǔ)操作。>> 運(yùn)算符對(duì)操作數(shù)執(zhí)行向右位移操作。<< 運(yùn)算符對(duì)操作數(shù)執(zhí)行向左位移操作。一元 & 運(yùn)算符返回操作數(shù)的地址為整型和 bo

13、ol 類型預(yù)定義了二進(jìn)制 & 運(yùn)算符。對(duì)于整型,& 計(jì)算操作數(shù)的按位“與”。對(duì)于 bool 操作數(shù),& 計(jì)算操作數(shù)的邏輯“與”;也就是說(shuō),當(dāng)且僅當(dāng)兩個(gè)操作數(shù)均為 true 時(shí),其結(jié)果才為 true。二進(jìn)制 | 運(yùn)算符是為整型和 bool 類型預(yù)定義的。對(duì)于整型,| 對(duì)操作數(shù)進(jìn)行按位“或”運(yùn)算。對(duì)于 bool 操作數(shù),| 對(duì)操作數(shù)進(jìn)行邏輯“或”計(jì)算,也就是說(shuō),當(dāng)且僅當(dāng)兩個(gè)操作數(shù)均為 false 時(shí),其結(jié)果才為 false。為整型和 bool 類型預(yù)定義了 二進(jìn)制操作數(shù)。對(duì)于整型, 計(jì)算操作數(shù)的按位“異或”。對(duì)于 bool 操作數(shù), 計(jì)算操作數(shù)的邏輯“異或”;也就是說(shuō),當(dāng)且

14、僅當(dāng)只有一個(gè)操作數(shù)為 true 時(shí),其結(jié)果才為 true。注:位邏輯運(yùn)算符只作用于Integers 類型其它運(yùn)算符索引。在數(shù)組中i 位置的值。使用 x1,x2,.,xn 這樣的方法將各種值傳送到function 中進(jìn)行運(yùn)算。arrayi = 3;/將 3 負(fù)值到array 數(shù)組第i 位置上b = x y;b = x | y;b = (x & y) != 0);x = x << y;x = x >> y;b = n;if(p!=x && p>y) Print("true"); n+;if(xl)Print("ou

15、t of range");/ 如果a 不是真的if(!a) Print("not 'a'");示例:優(yōu)先級(jí)規(guī)則下面是從上到下的運(yùn)算優(yōu)先規(guī)則,優(yōu)先級(jí)高的將先被運(yùn)算。操作符 Operators() Function call From left to right Array element selection! Negation From left to right Bitwise negation- Sign changing operation* Multiplication From left to right/ Division% Module

16、 division+ Addition From left to right- Subtraction<< Left shift From left to right>> Right shift< Less than From left to right<= Less than or equals> Greater than>= Greater than or equals= Equals From left to right!= Not equal& Bitwise AND operation From left to right Bi

17、twise exclusive OR From left to right| Bitwise OR operation From left to right && Logical AND From left to right| Logical OR From left to right= Assignment From right to left+= Assignment addition-= Assignment subtraction*= Assignment multiplication/= Assignment division%= Assignment module&

18、gt;>= Assignment right shift<<= Assignment left shift &= Assignment bitwise AND|= Assignment bitwise OR= Assignment exclusive OR, Comma From left to rightdouble SL=Ask-25*Point; double TP=Ask+25*Point;int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,TP, "My comment",123,0,Red);

19、格式和嵌套格式.一個(gè)操作符可以占用一行或者多行,兩個(gè)或多個(gè)操作符可以占用嵌套.執(zhí)行符(if, if-else, switch, while and for)可以進(jìn)行任意嵌套.的行。復(fù)合操作符一個(gè)復(fù)合操作符有一個(gè)(一個(gè)區(qū)段)和由一個(gè)或多個(gè)任何類型的操作符組成的的附件. 每個(gè)表使用分號(hào)作為結(jié)束(;) 示例:表操作符任何以分號(hào)(;)結(jié)束的表Assignment operator.Identifier=expression;都被視為是一個(gè)操作符。標(biāo)識(shí)符=表示例:;一個(gè)操作符中只能有一個(gè)表調(diào)用函數(shù)操作符。Function_name(argument1,., argumentN);函數(shù)名稱(參數(shù) 1,.,

20、參數(shù) N);示例:空操作符只有一個(gè)分號(hào)組成(;).我們用它來(lái)表示沒(méi)有任何表的空操作符.停止操作符 一個(gè)break; ,示例:置,用來(lái)在指定情況下跳出循環(huán)操作.其放在嵌套內(nèi)的指繼續(xù)操作符一個(gè)continue;示例:置,用來(lái)在指定情況下跳過(guò)接下來(lái)的運(yùn)算,直接跳入下一次的循環(huán)。其放在嵌套內(nèi)的指/ summary of nonzero elements of array int func(int array)int array_size=ArraySize(array);/ 從 0 開(kāi)始搜索數(shù)組for(i=0;i<ARRAY_SIZE;I+)if(arrayi=0) break;fclose(f

21、ile);x=3;y=x=3; / 這是錯(cuò)誤的if(x=0)x=1; y=2; z=3;返回操作符一個(gè)return;將需要返回的結(jié)果放在 return 后面的()中。示例:條件操作符 ifif (expression) operator;如果表示例:為真那么執(zhí)行操作。條件操作符 if-else if (expression) operator1else operator2如果表為真那么執(zhí)行operator1,如果為假執(zhí)行 operator2,else 后還可以跟進(jìn)多個(gè) if 執(zhí)行多項(xiàng)選擇。詳見(jiàn)示例。示例:if(x>1) if(y=2) z=5;else z=6;if(x>l)if(

22、y=2) z=5;else z=6;/ 多項(xiàng)選擇if(x='a')if(a=x) temp*=3;temp=MathAbs(temp);return(x+y);int sum=0; for(int i=0;iif(ai=0) continue; sum+=ai;return(sum);選擇操作符 switchswitch (expression)case constant1: operators; break; case constant2: operators; break;.default: operators; break;當(dāng)表expression 的值等于結(jié)果之一時(shí),執(zhí)

23、行其結(jié)果下的操作。不管結(jié)果如何都將執(zhí)行default 中的操作。示例:被選擇的結(jié)果只可以是示例:,不可為變量或表。循環(huán)操作符 whilewhile (expression) operator;switch(x)case 'A': Print("CASE An"); break;case 'B':case 'C':Print("CASE B or Cn"); break;default:Print("NOT A, B or Cn"); break;case 3+4: /正確的case X+

24、Y: /錯(cuò)誤的y=1;else if(x='b') y=2; z=3;else if(x='c')y = 4;else Print("ERROR");只要表expression 為示例:執(zhí)行操作operator循環(huán)操作符 forfor (expression1; expression2; expression3) operator;用表1(expression1)來(lái)定義初始變量,當(dāng)表表3(expression3)用 while 可以表示為這樣:expression1;while (expression2)operator; expressio

25、n3;示例:2(expression2)為真的時(shí)候執(zhí)行操作 operator,在每次循環(huán)結(jié)束后執(zhí)行使用for(;)可以造成一個(gè)死循環(huán)如同 while(true)一樣.表1 和表示例:3 都可以內(nèi)嵌多個(gè)用逗號(hào)(,)分割的表。函數(shù) Function函數(shù)定義一個(gè)函數(shù)是由返回值、輸入?yún)?shù)、內(nèi)嵌操作所組成的。示例:如果沒(méi)有返回值那么返回值的類型可以寫為void示例:void errmesg(string s)Print("error: "+s);double / 返回值類型linfunc (double x, double a, double b) / 函數(shù)名和輸入?yún)?shù)/ 內(nèi)嵌的操作

26、return (a*x + b); / 返回值for(i=0,j=n-l;i<N;I+,J-) ai=aj;for(x=1;x<=7;x+) Print(MathPower(x,2);while(k<N)y=y*x; k+;函數(shù)調(diào)用function_name (x1,x2,.,xn)示例:特殊函數(shù) init()、deinit()和start()init()在載入時(shí)調(diào)用,可以用此函數(shù)在開(kāi)始自定義指標(biāo)或者自動(dòng)之前做初始化操作。deinit()在卸載時(shí)調(diào)用,可以用此函數(shù)在去處自定義指標(biāo)或者自動(dòng)之前做初始化操作。start()當(dāng)數(shù)據(jù)變動(dòng)時(shí)觸發(fā),對(duì)于自定義指標(biāo)或者自動(dòng)變量 Variab

27、les定義變量的編程主要依靠此函數(shù)進(jìn)行。定義基本類型基本類型包括····string - 字符串型; int - 整數(shù)型;double - 雙精度浮點(diǎn)數(shù)型;bool -型示例:定義附加類型附加類型包括··datetime - 時(shí)間型,使用無(wú)符號(hào)整型數(shù)字color - 顏色,使用三色的整型數(shù)字編碼而成,是 1970.1.1 0:0:0 開(kāi)始的秒數(shù)示例:定義數(shù)組類型示例:extern datetime tBegin_Data = D'2004.01.01 00:00' extern color cModify_Color

28、= C'0x44,0xB9,0xE6'string MessageBox; int Orders;double SymbolPrice; bool bLog;int somefunc()double a=linfunc(0.3, 10.5, 8);double linfunc(double x, double a, double b)return (a*x + b);內(nèi)部變量定義內(nèi)部變量顧名思義是在的,可以理解為在當(dāng)前嵌套內(nèi)所使用的變量。函數(shù)參數(shù)定義示例:函數(shù)的參數(shù)內(nèi)的變量只能在函數(shù)內(nèi)才生效,在函數(shù)外無(wú)法使用,而且在函數(shù)內(nèi)對(duì)變量進(jìn)行的修改在函數(shù)外無(wú)法生效。調(diào)用函數(shù)示例:如果有需

29、要在變量傳入由參數(shù)傳入函數(shù)內(nèi)操作后保留修改在函數(shù)外生效的情況的話,可以在參數(shù)定義的類型名稱后加上修飾符(&)。示例:靜態(tài)變量定義在數(shù)據(jù)類型前加上static 就可以將變量定義成靜態(tài)變量示例:全局變量定義全局變量是指在整個(gè)示例:都能夠調(diào)用的變量,只需將變量定義卸載所有嵌套之外即可。附加變量定義附加變量可以示例:由用戶輸入。int Global_flag; int start().static int flagvoid func(int& x, double& y, double& z).func(123, 0.5);void func(int x, double

30、y, bool z).int a50; /一個(gè)一維由五十個(gè)int 組成的數(shù)組double m750; /一個(gè)兩維由 7x50 個(gè)double 組成的數(shù)組初始化變量變量必須經(jīng)過(guò)初始化才可以使用?;绢愋褪纠?數(shù)組類型示例:外部函數(shù)示例:預(yù)處理程序 Preprocessor定義#define identifier_value可以是任何類型的,示例:在不可更改。編譯參數(shù)定義#property identifier_value示例:#define ABC 100#define PI 0.314#define COMPANY_NAME "MetaQuotes Software Corp.&qu

31、ot;#import "user32.dll"int MessageBoxA(int hWnd ,string szText, string szCaption,inype);int SendMessageA(int hWnd,int Msg,int wParam,int lParam); #import "lib.ex4"double round(double value); #importint mta6 = 1,4,9,16,25,36;int mt = 1; / integer 初始化/ double 初始化double p = MarketIn

32、fo(Symbol(),MODE_POINT);/ string 初始化string s = "hello"extern double InputParameter1 = 1.0; int init().以下是所有的參數(shù)名稱:參數(shù)名稱類型說(shuō)明linkstring設(shè)置一個(gè)到公司copyrightstring公司名稱stacksizeint堆棧大小indicator_chart_windowvoid顯示在走勢(shì)圖窗口indicator_separate_windowvoid顯示在新區(qū)塊顯示緩存最高 8indicator_buffersintindicator_minimumint

33、圖形區(qū)間最低點(diǎn)indicator_umint圖形區(qū)間最高點(diǎn)第N 根線的顏色,最高 8 根線indicator_colorNcolorindicator_levelNdoublepredefined level N for separate window custom indicatorshow_confirmvoid當(dāng)程序執(zhí)行之前是否經(jīng)過(guò)確認(rèn)before scriptpropertyrunitspropertysheetappears;disablesshow_confirmshow_inputsvoid嵌入文件#include <file_name>示例:#include &qu

34、ot;file_name"示例:引入函數(shù)或其他模塊#import "file_name" func1();func2(); #import示例:#import "user32.dll"int MessageBoxA(int hWnd,string lpText,string lpCaption, int uType);int MessageBoxExA(int hWnd,string lpText,string lpCaption, int uType,int wLanguageId);#import "melib.ex4"

35、#include "mylib.h"#include <win32.h>#property link ""#property copyright "MetaQuotes Software Corp." #property stacksize 1024賬戶信息 Account Informationdouble AccountBalance()返回賬戶余額示例:double AccountCredit()返回賬戶信用點(diǎn)數(shù)示例:string AccountCompany()返回賬戶公司名示例:string AccountCur

36、rency()返回賬戶所用的通貨名稱示例:double AccountEquity()返回資產(chǎn)凈值示例:double AccountFreeMargin()Returns free margin value of the current account.示例:int AccountLeverage()返回杠桿比率示例:double AccountMargin()Print("Account #",AccountNumber(), " leverage is ", AccountLeverage();Print("Account free mar

37、gin = ",AccountFreeMargin();Print("Account equity = ",AccountEquity();Print("account currency is ", AccountCurrency();Print("Account company name ", AccountCompany();Print("Account number ", AccountCredit();Print("Account balance = ",AccountBala

38、nce();#import "gdi32.dll" int GetDC(int hWnd);int ReleaseDC(int hWnd,int hDC); #importReturns margin value of the current account.示例:string AccountName()返回賬戶名稱示例:int AccountNumber()返回賬戶數(shù)字示例:double AccountProfit()返回賬戶利潤(rùn)示例:數(shù)組函數(shù) Array Functionsint ArrayBsearch( double array, double value, int

39、 count=WHOLE_ARRAY, int start=0, int direction=MODE_ASCEND)搜索一個(gè)值在數(shù)組中的位置此函數(shù)不能用在字符型或連續(xù)數(shù)字的數(shù)組上.: 輸入?yún)?shù)array - 需要搜索的數(shù)組value - 將要搜索的值count - 搜索的數(shù)量,默認(rèn)搜索所有的數(shù)組start - 搜索的開(kāi)始點(diǎn),默認(rèn)從頭開(kāi)始direction - 搜索的方向,MODE_ASCEND 順序搜索 MODE_DESCEND 倒序搜索示例:datetime daytimes; int shift=10,dayshift;/ All the Time timeseries are sort

40、ed in descendant mode ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1); if(Timeshift&gt>=daytimes0) dayshift=0;elsedayshift=ArrayBsearch(daytimes,Timeshift,WHOLE_ARRAY,0,MODE_DESCEND); if(Period()<PERIOD_D1)dayshift+;Print(TimeToStr(Timeshift)," corresponds to ",dayshift,&q

41、uot; day bar opened at ", TimeToStr(daytimesdayshift);Print("Account profit ", AccountProfit();Print("account number ", AccountNumber();Print("Account name ", AccountName();Print("Account margin ", AccountMargin();int ArrayCopy( object& dest, object s

42、ource, int start_dest=0, count=WHOLE_ARRAY)一個(gè)數(shù)組到另外一個(gè)數(shù)組。intstart_source=0,int只有double, int, datetime, color, 和 bool 這些類型的數(shù)組可以被: 輸入?yún)?shù)dest - 目標(biāo)數(shù)組source - 源數(shù)組start_dest - 從目標(biāo)數(shù)組的第幾位開(kāi)始寫入,默認(rèn)為 0start_source - 從源數(shù)組的第幾位開(kāi)始,默認(rèn)為 0。count -多少位的數(shù)組示例:int ArrayCopyRates( double& dest_array, string symbol=NULL, in

43、t timeframe=0)一段走勢(shì)圖上的數(shù)據(jù)到一個(gè)二維數(shù)組,數(shù)組的第二維只有 6 個(gè)項(xiàng)目分別是:0 - 時(shí)間,1 - 開(kāi)盤價(jià),2 -,3 - 最高價(jià),4 - 收盤價(jià),5 - 成交量.: 輸入?yún)?shù)dest_array - 目標(biāo)數(shù)組symbol - 標(biāo)示,當(dāng)前所需要的通貨的標(biāo)示timeframe - 圖表的時(shí)間線示例:int ArrayCopySeries( double& array, int series_index, string symbol=NULL, int timeframe=0)一個(gè)系列的走勢(shì)圖數(shù)據(jù)到數(shù)組上注: 如果series_index 是MODE_TIME, 那么第

44、一個(gè)參數(shù)必須是日期型的數(shù)組: 輸入?yún)?shù)dest_array - 目標(biāo)數(shù)組series_index - 想要取的系列的名稱或編號(hào),0-5 symbol - 標(biāo)示,當(dāng)前所需要的通貨的標(biāo)示timeframe - 圖表的時(shí)間線示例:double array16; ArrayCopyRates(array1,"EURUSD", PERIOD_H1);Print("Current bar ",TimeToStr(array100),"Open", array101);double array16; double array2106;/ fill

45、array with some data ArrayCopyRates(array1); ArrayCopy(array2, array1,0,Bars-9,10);/ now array2 has first 10 bars in the historyint ArrayDimension( int array)返回?cái)?shù)組的維數(shù): 輸入?yún)?shù)array - 需要檢查的數(shù)組示例:bool ArrayGetAsSeries(object array)檢查數(shù)組是否是有組織序列的數(shù)組(是否從最后到最開(kāi)始排序過(guò)的),如果不是返回否: 輸入?yún)?shù)array - 需要檢查的數(shù)組示例:int ArrayIniti

46、alize( double& array, double value)對(duì)數(shù)組進(jìn)行初始化,返回經(jīng)過(guò)初始化的數(shù)組項(xiàng)的個(gè)數(shù): 輸入?yún)?shù)array - 需要初始化的數(shù)組value - 新的數(shù)組項(xiàng)的值示例:/把所有數(shù)組項(xiàng)的值設(shè)置為 2.1double myarray10; ArrayInitialize(myarray,2.1);if(ArrayGetAsSeries(array1)=true) Print("array1 is indexed as a series array"); elsePrint("array1 is indexed normally (f

47、rom left to right)");int num_array105; int dim_size;dim_size=ArrayDimension(num_array);/ dim_size is 2datetime daytimes; int shift=10,dayshift;/ All the Time timeseries are sorted in descendant mode ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1); if(Timeshift>=daytimes0) dayshift=0;e

48、lsedayshift=ArrayBsearch(daytimes,Timeshift,WHOLE_ARRAY,0,MODE_DESCEND); if(Period()Print(TimeToStr(Timeshift),"correspondsto",dayshift,"daybaropenedat", TimeToStr(daytimesdayshift);bool ArrayIsSeries( object array)檢查數(shù)組是否連續(xù)的(time,open,close,high,low, or volume).: 輸入?yún)?shù)array - 需要檢查

49、的數(shù)組示例:int Arrayum( double array, int count=WHOLE_ARRAY, int start=0)找出數(shù)組中最大值的: 輸入?yún)?shù)array - 需要檢查的數(shù)組count - 搜索數(shù)組中項(xiàng)目的個(gè)數(shù)start - 搜索的開(kāi)始點(diǎn)示例:int ArrayMinimum( double array, int count=WHOLE_ARRAY, int start=0)找出數(shù)組中最小值的: 輸入?yún)?shù)array - 需要檢查的數(shù)組count - 搜索數(shù)組中項(xiàng)目的個(gè)數(shù)start - 搜索的開(kāi)始點(diǎn)示例:int ArrayRange( object array, int r

50、ange_index)取數(shù)組中指定維數(shù)中項(xiàng)目的數(shù)量。: 輸入?yún)?shù)array - 需要檢查的數(shù)組range_index - 指定的維數(shù)示例:int dim_size;double num_array15=4,1,6,3,9,4,1,6,3,9,4,1,6,3,9;double minValueidx=ArrayMinimum(num_array); Print("Min value = ", num_arrayminValueIdx);double num_array15=4,1,6,3,9,4,1,6,3,9,4,1,6,3,9;int maxValueIdx=Arrayu

51、m(num_array); Print("Max value = ", num_arraymaxValueIdx);if(ArrayIsSeries(array1)=false) ArrayInitialize(array1,0);elsePrint("Series array cannot be initialized!"); return(-1);int ArrayResize( object& array, int new_size)重定義數(shù)組大小: 輸入?yún)?shù)array - 需要檢查的數(shù)組new_size - 第一維中數(shù)組的新大小示例:bo

52、ol ArraySetAsSeries( double& array, bool set)設(shè)置指數(shù)數(shù)組為系列數(shù)組,數(shù)組 0 位的值是最后的值。返回之前的數(shù)組狀態(tài): 輸入?yún)?shù)array - 需要處理的數(shù)組set - 是否是設(shè)置為系列數(shù)組,true 或者false示例:int ArraySize( object array)返回?cái)?shù)組的項(xiàng)目數(shù): 輸入?yún)?shù)array - 需要處理的數(shù)組示例:int ArraySort( double& array, int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND)對(duì)數(shù)組進(jìn)行排序,

53、系列數(shù)組不可進(jìn)行排序int count=ArraySize(array1); for(int i=0; i/ do some calculations.double macd_buffer300; double signal_buffer300;int i,limit=ArraySize(macd_buffer); ArraySetAsSeries(macd_buffer,true); for(i=0; imacd_bufferi=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_C LOSE,i);f

54、or(i=0; i signal_bufferi=iMAOnArray(macd_buffer,limit,9,0,MODE_SMA,i);double array14;int element_count=ArrayResize(array, 20);/ 數(shù)組中總項(xiàng)目數(shù)為 80double num_array10,10,10; dim_size=ArrayRange(num_array, 1);: 輸入?yún)?shù)array - 需要處理的數(shù)組count - 對(duì)多少個(gè)數(shù)組項(xiàng)進(jìn)行排序start - 排序的開(kāi)始點(diǎn)sort_dir - 排序方式,MODE_ASCEND 順序排列 MODE_DESCEND 倒

55、序排列示例:類型轉(zhuǎn)換函數(shù) Conversion Functionsstring CharToStr( int char_code)將字符型轉(zhuǎn)換成字符串型結(jié)果返回: 輸入?yún)?shù)char_code - 字符的ACSII 碼示例:string DoubleToStr( double value, int digits)將雙精度浮點(diǎn)型轉(zhuǎn)換成字符串型結(jié)果返回: 輸入?yún)?shù)value - 浮點(diǎn)型數(shù)字digits - 小數(shù)點(diǎn)后多少位,0-8示例:double NormalizeDouble( double value, int digits)將雙精度浮點(diǎn)型格式化后結(jié)果返回: 輸入?yún)?shù)value - 浮點(diǎn)型數(shù)字d

56、igits - 小數(shù)點(diǎn)后多少位,0-8示例:double StrToDouble( string value)double var1=0.123456789; Print(NormalizeDouble(var1,5);/ output: 0.12346string value=DoubleToStr(1.28473418, 5);/ value is 1.28473string str="WORL" + CharToStr(44); / 44 is code for 'D'/ resulting string will be WORLDdouble num

57、_array5=4,1,6,3,9;/ now array contains values 4,1,6,3,9 ArraySort(num_array);/ now array is sorted 1,3,4,6,9 ArraySort(num_array,MODE_DESCEND);/ now array is sorted 9,6,4,3,1將字符串型轉(zhuǎn)換成雙精度浮點(diǎn)型結(jié)果返回: 輸入?yún)?shù)value - 數(shù)字的字符串示例:int StrToInteger( string value)將字符串型轉(zhuǎn)換成整型結(jié)果返回: 輸入?yún)?shù)value - 數(shù)字的字符串示例:datetime StrToTime(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論