版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..精選實(shí)用文檔..精選MQL4ReferenceMQL4命令手冊(cè)〔本手冊(cè)采用Office2007編寫(xiě)〕2021年2月..精選實(shí)用文檔..精選目錄MQL4Reference 1MQL4命令手冊(cè) 1Basics根底 12Syntax語(yǔ)法 12Comments注釋 12Identifiers標(biāo)識(shí)符 12Reservedwords保存字 13Datatypes數(shù)據(jù)類型 13Typecasting類型轉(zhuǎn)換 14Integerconstants整數(shù)常量 14Literalconstants字面常量 14Booleanconstants布爾常量 15Floating-pointnumberconstants(double)浮點(diǎn)數(shù)常量〔雙精度〕 15Stringconstants字符串常量 15Colorconstants顏色常數(shù) 16Datetimeconstants日期時(shí)間常數(shù) 16Operations&Expressions操作表達(dá)式 17Expressions表達(dá)式 17Arithmeticaloperations算術(shù)運(yùn)算 17Assignmentoperation賦值操作 17Operationsofrelation操作關(guān)系 18Booleanoperations布爾運(yùn)算 18Bitwiseoperations位運(yùn)算 19..精選實(shí)用文檔..精選Otheroperations其他運(yùn)算 19Precedencerules優(yōu)先規(guī)那么 20Operators操作符 21Compoundoperator復(fù)合操作符 21Expressionoperator表達(dá)式操作符 21Breakoperator終止操作符 21Continueoperator繼續(xù)操作符 22Returnoperator返回操作符 22Conditionaloperatorif-else條件操作符 23Switchoperator跳轉(zhuǎn)操作符 23Cycleoperatorwhile循環(huán)操作符while 24Cycleoperatorfor循環(huán)操作符for 24Functions函數(shù) 25Functioncall函數(shù)調(diào)用 26Specialfunctions特殊函數(shù) 27Variables變量 27Localvariables局部變量 28Formalparameters形式變量 28Staticvariables靜態(tài)變量 29Globalvariables全局變量 29Definingexternvariables外部定義變量 30Initializationofvariables初始化變量 30Externalfunctionsdefinition外部函數(shù)的定義 30Preprocessor預(yù)處理 31Constantdeclaration常量聲明 31..精選實(shí)用文檔..精選Controllingcompilation編譯控制 32Includingoffiles包含文件 32Importingoffunctions導(dǎo)入功能 33Standardconstants標(biāo)準(zhǔn)常數(shù) 35Seriesarrays系列數(shù)組 35Timeframes圖表周期時(shí)間 35Tradeoperations交易操作 36Priceconstants價(jià)格常數(shù) 36MarketInfo市場(chǎng)信息識(shí)別符 36Drawingstyles畫(huà)線風(fēng)格 37Arrowcodes預(yù)定義箭頭 38Wingdings宋體 39Webcolors顏色常數(shù) 39Indicatorlines指標(biāo)線 40IchimokuKinkoHyo 41MovingAveragemethods移動(dòng)平均方法 41MessageBox信息箱 41Objecttypes對(duì)象類型 43Objectproperties對(duì)象屬性 44Objectvisibility 45Uninitializereasoncodes撤銷初始化原因代碼 45Specialconstants特別常數(shù) 46Errorcodes錯(cuò)誤代碼 46Predefinedvariables預(yù)定義變量 50Ask最新賣價(jià) 50..精選實(shí)用文檔..精選Bars柱數(shù) 50Bid最新買價(jià) 50Close[]收盤價(jià) 51Digits匯率小數(shù)位 51High[]最高價(jià) 51Low[]最低價(jià) 52Open[]開(kāi)盤價(jià) 53Point點(diǎn)值 53Time[]開(kāi)盤時(shí)間 53Volume[]成交量 54ProgramRun程序運(yùn)行 56ProgramRun程序運(yùn)行 56Importedfunctionscall輸入函數(shù)調(diào)用 57Runtimeerrors運(yùn)行錯(cuò)誤 57Accountinformation賬戶信息 68AccountBalance()賬戶余額 68AccountCredit()賬戶信用點(diǎn)數(shù) 68AccountCompany()賬戶公司名 68AccountCurrency()根本貨幣 68AccountEquity()賬戶資產(chǎn)凈值 68AccountFreeMargin()賬戶免費(fèi)保證金 69AccountFreeMarginCheck()賬戶當(dāng)前價(jià)格自由保證金 69AccountFreeMarginMode()賬戶免費(fèi)保證金模式 69AccountLeverage()賬戶杠桿 69AccountMargin()賬戶保證金 69..精選實(shí)用文檔..精選AccountName()賬戶名稱 70AccountNumber()賬戶數(shù)字 70AccountProfit()賬戶利潤(rùn) 70AccountServer()賬戶連接效勞器 70AccountStopoutLevel()賬戶停止水平值 70AccountStopoutMode()賬戶停止返回模式 71Arrayfunctions數(shù)組函數(shù) 72ArrayBsearch()數(shù)組搜索 72ArrayCopy()數(shù)組復(fù)制 72ArrayCopyRates()數(shù)組復(fù)制走勢(shì) 73ArrayCopySeries()數(shù)組復(fù)制系列走勢(shì) 74ArrayDimension()返回?cái)?shù)組維數(shù) 75ArrayGetAsSeries()返回?cái)?shù)組序列 75ArrayInitialize()數(shù)組初始化 75ArrayIsSeries()判斷數(shù)組連續(xù) 75ArrayMaximum()數(shù)組最大值定位 76ArrayMinimum()數(shù)組最小值定位 76ArrayRange()返回?cái)?shù)組指定維數(shù)數(shù)量 76ArrayResize()改變數(shù)組維數(shù) 77ArraySetAsSeries()設(shè)定系列數(shù)組 77ArraySize()返回?cái)?shù)組工程數(shù) 78ArraySort()數(shù)組排序 78Checkup檢查 79GetLastError()返回最后錯(cuò)誤 79IsConnected()返回聯(lián)機(jī)狀態(tài) 79..精選實(shí)用文檔..精選IsDemo()返回模擬賬戶 79IsDllsAllowed()返回dll允許調(diào)用 80IsExpertEnabled()返回智能交易開(kāi)啟狀態(tài) 80IsLibrariesAllowed()返回?cái)?shù)據(jù)庫(kù)函數(shù)調(diào)用 80IsOptimization()返回策略測(cè)試中優(yōu)化模式 81IsStopped()返回終止業(yè)務(wù) 81IsTesting()返回測(cè)試模式狀態(tài) 81IsTradeAllowed()返回允許智能交易 81IsTradeContextBusy()返回其他智能交易忙 82IsVisualMode()返回智能交易“圖片模式〞 82UninitializeReason()返回智能交易初始化原因 82Clientterminal客戶端信息 83TerminalCompany()返回客戶端所屬公司 83TerminalName()返回客戶端名稱 83TerminalPath()返回客戶端文件路徑 83Commonfunctions常規(guī)命令函數(shù) 84Alert彈出警告窗口 84Comment顯示信息在走勢(shì)圖左上角 84GetTickCount獲取時(shí)間標(biāo)記 84MarketInfo在市場(chǎng)觀察窗口返回不同數(shù)據(jù)保證金列表 85MessageBox創(chuàng)立信息窗口 85PlaySound播放聲音 86Print窗口中顯示文本 86SendFTP設(shè)置FTP 86SendMail設(shè)置Email 87..精選實(shí)用文檔..精選Sleep指定的時(shí)間間隔內(nèi)暫停交易業(yè)務(wù) 87Conversionfunctions格式轉(zhuǎn)換函數(shù) 88CharToStr字符轉(zhuǎn)換成字符串 88DoubleToStr雙精度浮點(diǎn)轉(zhuǎn)換成字符串 88NormalizeDouble給出環(huán)繞浮點(diǎn)值的精確度 88StrToDouble字符串型轉(zhuǎn)換成雙精度浮點(diǎn)型 89StrToInteger字符串型轉(zhuǎn)換成整型 89StrToTime字符串型轉(zhuǎn)換成時(shí)間型 89TimeToStr時(shí)間類型轉(zhuǎn)換為"yyyy.mm.ddhh:mi"格式 89Customindicators自定義指標(biāo) 91IndicatorBuffers 91IndicatorCounted 92IndicatorDigits 92IndicatorShortName 93SetIndexArrow 94SetIndexBuffer 94SetIndexDrawBegin 95SetIndexEmptyValue 95SetIndexLabel 96SetIndexShift 97SetIndexStyle 98SetLevelStyle 98SetLevelValue 99Date&Timefunctions日期時(shí)間函數(shù) 100Day 100..精選實(shí)用文檔..精選DayOfWeek 100DayOfYear 100Hour 100Minute 101Month 101Seconds 101TimeCurrent 101TimeDay 102TimeDayOfWeek 102TimeDayOfYear 102TimeHour 102TimeLocal 102TimeMinute 103TimeMonth 103TimeSeconds 103TimeYear 103Year 104Filefunctions文件函數(shù) 105FileClose關(guān)閉文件 105FileDelete刪除文件 105FileFlush將緩存中的數(shù)據(jù)刷新到磁盤上去 106FileIsEnding文件結(jié)尾 106FileIsLineEnding 107FileOpen翻開(kāi)文件 107FileOpenHistory歷史目錄中翻開(kāi)文件 108..精選實(shí)用文檔..精選FileReadArray將二進(jìn)制文件讀取到數(shù)組中 108FileReadDouble從文件中讀取浮點(diǎn)型數(shù)據(jù) 109FileReadInteger從當(dāng)前二進(jìn)制文件讀取整形型數(shù)據(jù) 109FileReadNumber 109FileReadString從當(dāng)前文件位置讀取字串符 110FileSeek文件指針移動(dòng) 110FileSize文件大小 111FileTell文件指針的當(dāng)前位置 111FileWrite寫(xiě)入文件 112FileWriteArray一個(gè)二進(jìn)制文件寫(xiě)入數(shù)組 112FileWriteDouble一個(gè)二進(jìn)制文件以浮動(dòng)小數(shù)點(diǎn)寫(xiě)入雙重值 113FileWriteInteger一個(gè)二進(jìn)制文件寫(xiě)入整數(shù)值 113FileWriteString當(dāng)前文件位置函數(shù)寫(xiě)入一個(gè)二進(jìn)制文件字串符 114Globalvariables全局變量 115GlobalVariableCheck 115GlobalVariableDel 115GlobalVariableGet 115GlobalVariableName 116GlobalVariableSet 116GlobalVariableSetOnCondition 116GlobalVariablesDeleteAll 117GlobalVariablesTotal 117Math&Trig數(shù)學(xué)和三角函數(shù) 119MathAbs 119MathArccos 119..精選實(shí)用文檔..精選MathArcsin 119MathArctan 120MathCeil 120MathCos 120MathExp 121MathFloor 121MathLog 122MathMax 122MathMin 122MathMod 122MathPow 123MathRand 123MathRound 123MathSin 124MathSqrt 124MathSrand 124MathTan 125Objectfunctions目標(biāo)函數(shù) 126ObjectCreate建立目標(biāo) 126ObjectDelete刪除目標(biāo) 127ObjectDescription目標(biāo)描述 127ObjectFind查找目標(biāo) 127ObjectGet目標(biāo)屬性 128ObjectGetFiboDescription斐波納契描述 128ObjectGetShiftByValue 128..精選實(shí)用文檔..精選ObjectGetValueByShift 129ObjectMove移動(dòng)目標(biāo) 129ObjectName目標(biāo)名 129ObjectsDeleteAll刪除所有目標(biāo) 130ObjectSet改變目標(biāo)屬性 130ObjectSetFiboDescription改變目標(biāo)斐波納契指標(biāo) 131ObjectSetText改變目標(biāo)說(shuō)明 131ObjectsTotal返回目標(biāo)總量 131ObjectType返回目標(biāo)類型 132Stringfunctions字符串函數(shù) 133StringConcatenate字符串連接 133StringFind字符串搜索 133StringGetChar字符串指定位置代碼 133StringLen字符串長(zhǎng)度 134StringSetChar 134StringSubstr提取子字符串 134StringTrimLeft 135StringTrimRight 135Technicalindicators技術(shù)指標(biāo) 136iAC比爾.威廉斯的加速器或減速箱振蕩器 136iAD離散指標(biāo) 136iAlligator比爾?威廉斯的鱷魚(yú)指標(biāo) 136iADX移動(dòng)定向索引 137iATR平均真實(shí)范圍 137iAO比爾.威廉斯的振蕩器 138..精選實(shí)用文檔..精選iBearsPower熊功率指標(biāo) 138iBands保力加通道技術(shù)指標(biāo) 138iBandsOnArray保力加通道指標(biāo) 139iBullsPower牛市指標(biāo) 139iCCI商品通道索引指標(biāo) 139iCCIOnArray商品通道索引指標(biāo) 140iCustom指定的客戶指標(biāo) 140iDeMarker 140iEnvelopes包絡(luò)指標(biāo) 141iEnvelopesOnArray包絡(luò)指標(biāo) 141iForce強(qiáng)力索引指標(biāo) 142iFractals分形索引指標(biāo) 142iGator隨機(jī)震蕩指標(biāo) 142iIchimoku 143iBWMFI比爾.威廉斯市場(chǎng)斐波納契指標(biāo) 143iMomentum動(dòng)量索引指標(biāo) 143iMomentumOnArray 144iMFI資金流量索引指標(biāo) 144iMA移動(dòng)平均指標(biāo) 144iMAOnArray 145iOsMA移動(dòng)振動(dòng)平均震蕩器指標(biāo) 145iMACD移動(dòng)平均數(shù)匯總/別離指標(biāo) 146iOBV能量潮指標(biāo) 146iSAR拋物線狀止損和反轉(zhuǎn)指標(biāo) 146iRSI相對(duì)強(qiáng)弱索引指標(biāo) 147..精選實(shí)用文檔..精選iRSIOnArray 147iRVI相對(duì)活力索引指標(biāo) 147iStdDev標(biāo)準(zhǔn)偏差指標(biāo) 148iStdDevOnArray 148iStochastic隨機(jī)震蕩指標(biāo) 148iWPR威廉指標(biāo) 149Timeseriesaccess時(shí)間序列圖表數(shù)據(jù) 150iBars柱的數(shù)量 150iBarShift開(kāi)始時(shí)間的柱 150iClose 150iHigh 151iHighest 151iLow 152iLowest 152iOpen 152iTime 153iVolume 153Tradingfunctions交易函數(shù) 155Executionerrors 155OrderClose 157OrderCloseBy 158OrderClosePrice 158OrderCloseTime 158OrderComment 159OrderCommission 159..精選實(shí)用文檔..精選OrderDelete 159OrderExpiration 160OrderLots 160OrderMagicNumber 160OrderModify 160OrderOpenPrice 161OrderOpenTime 161OrderPrint 162OrderProfit 162OrderSelect 162OrderSend 163OrdersHistoryTotal 164OrderStopLoss 164OrdersTotal 164OrderSwap 165OrderSymbol 165OrderTakeProfit 165OrderTicket 166OrderType 166Windowfunctions窗口函數(shù) 167HideTestIndicators隱藏指標(biāo) 167Period使用周期 167RefreshRates刷新預(yù)定義變量和系列數(shù)組的數(shù)據(jù) 167Symbol當(dāng)前貨幣對(duì) 168WindowBarsPerChart可見(jiàn)柱總數(shù) 168..精選實(shí)用文檔..精選WindowExpertName智能交易系統(tǒng)名稱 169WindowFind返回名稱 169WindowFirstVisibleBar第一個(gè)可見(jiàn)柱 169WindowHandle 169WindowIsVisible圖表在子窗口中可見(jiàn) 170WindowOnDropped 170WindowPriceMax 170WindowPriceMin 171WindowPriceOnDropped 171WindowRedraw 172WindowScreenShot 172WindowTimeOnDropped 173WindowsTotal指標(biāo)窗口數(shù) 173WindowXOnDropped 173WindowYOnDropped 174Obsoletefunctions過(guò)時(shí)的函數(shù) 175..精選實(shí)用文檔..精選MetaQuotesLanguage4(MQL4)是一種新的內(nèi)置型程序用來(lái)編寫(xiě)交易策略。這種語(yǔ)言可以創(chuàng)立你自己的智能交易,使自己的交易策略能夠完全自動(dòng)地執(zhí)行。而且,MQL4還能自定義客戶指標(biāo),腳本和數(shù)據(jù)庫(kù)。內(nèi)包含了大量可以分析當(dāng)前及歷史報(bào)價(jià)所必須的函數(shù),以及一些根本的運(yùn)算和邏輯操作。并內(nèi)置了一些根本的指標(biāo)和操作命令。MetaEditor4集合了編寫(xiě)MQL4程序代碼的各種語(yǔ)句,它能幫助使用者方便地寫(xiě)出標(biāo)準(zhǔn)的代碼。MetaQuotesLanguageDictionary是MQL4語(yǔ)言的幫助工具,它包含了我們?cè)谑褂霉こ讨兴锌赡苡玫降暮瘮?shù)。MetaQuotesLanguage4可以編寫(xiě)不同作用的程序代碼:■智能交易是一種連接到特定圖表的自動(dòng)交易系統(tǒng)。它能夠根據(jù)設(shè)置的節(jié)點(diǎn)自動(dòng)啟動(dòng),當(dāng)它開(kāi)始運(yùn)行后,它不會(huì)同時(shí)去處理另一個(gè)新的指令(也就是說(shuō)必須等到當(dāng)前程序完成)。這種交易系統(tǒng)能夠在提醒用戶可以交易的同時(shí),將交易定單自動(dòng)送到交易效勞器。與大多數(shù)交易系統(tǒng)一樣,它也能夠用歷史數(shù)據(jù)測(cè)試交易策略,并在圖表上顯示出來(lái)。智能交易存儲(chǔ)在terminal_directory\experts?!鲎远x指標(biāo)可用來(lái)編寫(xiě)新的技術(shù)指標(biāo),和內(nèi)置的指標(biāo)一樣,它不能用來(lái)進(jìn)行自動(dòng)交易,只能作為分析數(shù)據(jù)的工具。自定義指標(biāo)儲(chǔ)存在terminal_directory\experts\indicators?!瞿_本是執(zhí)行單一功能的一段程序,和智能交易不同,腳本不能單獨(dú)執(zhí)行,只能被調(diào)用。腳本存儲(chǔ)在terminal_dictionary\experts\scripts。■數(shù)據(jù)庫(kù)常被使用的自定義函數(shù)的集合。數(shù)據(jù)庫(kù)不能單獨(dú)運(yùn)行。數(shù)據(jù)庫(kù)建議存儲(chǔ)在terminal_directory\experts\libraries?!霭募募1皇褂玫某绦驂K源代碼,這些文件能夠被包含在智能交易,腳本,客戶指標(biāo)和數(shù)據(jù)庫(kù)的源代碼中。使用包含文件比調(diào)用資料庫(kù)更靈活快捷。包含文件交易儲(chǔ)存在terminal_directory\experts\include。..精選實(shí)用文檔..精選Basics根底MetaQuotesLanguage4(MQL4)是一種新型的交易策略內(nèi)置語(yǔ)言。用來(lái)編寫(xiě)交易策略的程序語(yǔ)言。這種語(yǔ)言可以創(chuàng)立你自己的智能交易,使自己的交易策略能夠完全地自動(dòng)執(zhí)行。程序內(nèi)包含了分析歷史報(bào)價(jià)的必備函數(shù),以及一些根本的運(yùn)算法和邏輯操作和一些根本的指標(biāo)和操作命令。而且,MQL4還能自定義自己的客戶指標(biāo),腳本和數(shù)據(jù)庫(kù)。Syntax語(yǔ)法MQL4的語(yǔ)法類似于C語(yǔ)言,除了以下這些特點(diǎn):沒(méi)有運(yùn)算地址;沒(méi)有do...while語(yǔ)句;沒(méi)有g(shù)oto...語(yǔ)句;沒(méi)有[條件][表達(dá)式1]:[表達(dá)式2]語(yǔ)句;沒(méi)有復(fù)合數(shù)據(jù)類型(結(jié)構(gòu));復(fù)合負(fù)值是不允許的,例如:val1=val2=0;arr[i++]=val;cond=(cnt=OrdersTotal)>0;等等;邏輯表達(dá)式的計(jì)算完成前不可以提前終止。Comments注釋多行注釋使用/*作為開(kāi)始到*/結(jié)束,在這之間不能夠嵌套。單行注釋使用//作為開(kāi)始到新的一行結(jié)束,可以被嵌套到多行注釋之中。例如://單獨(dú)注解/*multi-line//嵌入單獨(dú)注解comment*/..精選實(shí)用文檔..精選Identifiers標(biāo)識(shí)符標(biāo)識(shí)符用來(lái)給變量、函數(shù)和數(shù)據(jù)類型進(jìn)行命名,長(zhǎng)度不能超過(guò)31個(gè)字節(jié),你可以使用數(shù)字0-9、拉丁字母大寫(xiě)A-Z和小寫(xiě)a-z(大小寫(xiě)有區(qū)分的)還有下劃線(_)。此外首字母不可以是數(shù)字,標(biāo)識(shí)符不能和保存字沖突.例如:NAME1namelTotal_5PaperReservedwords保存字下面列出的是固定的保存字。不能使用以下任何保存字進(jìn)行命名。數(shù)據(jù)類型儲(chǔ)存類型操作符其他bool布爾數(shù)據(jù)externbreakfalsecolor顏色數(shù)據(jù)staticcasetruedatetime日期時(shí)間數(shù)據(jù)continuedouble浮點(diǎn)型數(shù)據(jù)defaultint整型數(shù)據(jù)elsestring字符串?dāng)?shù)據(jù)forvoidif字符數(shù)據(jù)(char)returnswitchwhile..精選實(shí)用文檔..精選Datatypes數(shù)據(jù)類型所有的程序都依靠數(shù)據(jù)來(lái)運(yùn)作,數(shù)據(jù)因目的不同可以有不同的類型。比方,訪問(wèn)數(shù)組可以用整型數(shù)據(jù),價(jià)格可以用雙精度的浮點(diǎn)型數(shù)據(jù)。在MQL4中沒(méi)有專門用來(lái)標(biāo)記貨幣值的數(shù)據(jù)類型。不同的數(shù)據(jù)類型有不同的處理速度,整型數(shù)據(jù)是最快的。雙精度的數(shù)據(jù)處理需要額外的處理器,所以處理浮點(diǎn)型數(shù)據(jù)比擬復(fù)雜,比處理整型數(shù)據(jù)慢一些。字符串是處理速度最慢的,因?yàn)樗嫒?dòng)態(tài)內(nèi)存。主要的數(shù)據(jù)類型如下:整型數(shù)據(jù)(int)布爾數(shù)據(jù)(bool)字符數(shù)據(jù)(char)字符串?dāng)?shù)據(jù)(string)浮點(diǎn)型數(shù)據(jù)(double)顏色數(shù)據(jù)(color)日期時(shí)間數(shù)據(jù)(datetime)color和datetime可以使我們更清楚的區(qū)分圖表中的內(nèi)容,在expertadvisor和indicator中經(jīng)常使用這些數(shù)據(jù)類型。顏色和日期時(shí)間數(shù)據(jù)用整數(shù)來(lái)表示。int和double都屬于數(shù)值〔數(shù)字〕型。在表達(dá)式運(yùn)算中使用強(qiáng)制的類型轉(zhuǎn)換。Typecasting類型轉(zhuǎn)換表達(dá)式中使用強(qiáng)制的數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換時(shí)類型的優(yōu)先級(jí)如下:int(bool,color,datetime);double;string;在運(yùn)算完成之前(除了數(shù)據(jù)已被定義的),數(shù)據(jù)會(huì)根據(jù)優(yōu)先級(jí)被轉(zhuǎn)換。當(dāng)定義數(shù)據(jù)的操作完成前,數(shù)據(jù)會(huì)轉(zhuǎn)換成被定義的數(shù)據(jù)類型。..精選實(shí)用文檔..精選例如:inti=1/2;//沒(méi)有類型轉(zhuǎn)換,結(jié)果為0inti=1/2.0;//表達(dá)式中有浮點(diǎn)型數(shù)據(jù),但會(huì)轉(zhuǎn)換成整型數(shù)據(jù),結(jié)果為0類型轉(zhuǎn)換不但運(yùn)用在常量中,還被運(yùn)用在相應(yīng)的變量中。Integerconstants整數(shù)常量十進(jìn)制:數(shù)字0-9,包括負(fù)數(shù)。例如:12,111,-9561007十六進(jìn)制:數(shù)字0-9,字面a-f或者A-F代表10-15;以0x或者0X開(kāi)頭。例如:0x0A,0x12,0X12,0x2f,0xA3,0Xa3,0X7C7整型數(shù)據(jù)占用4字節(jié)的空間,其數(shù)值范圍介于-2147483648~2147483647之間。如果超出這個(gè)范圍,那么視為無(wú)效。Literalconstants字面常量任何帶單引號(hào)的單一字符或者十六進(jìn)制的ASCII碼如'\x10'都是字符數(shù)據(jù)。一些特殊的字符如單引號(hào)(')、雙引號(hào)(")、問(wèn)號(hào)(?)、反斜線(\)和控制符必須以反斜線開(kāi)頭(\),組合表達(dá)原來(lái)的意思,如下表所示:換行NL(LF)\n制表符HT\t..精選實(shí)用文檔..精選回車CR\r反斜線\\\單引號(hào)'\'雙引號(hào)"\"十六進(jìn)制ASCIIhh\xhh如果上述字符不使用反斜線,結(jié)果將不被定義:inta='A';intb='$';intc='?';//代碼0xA9intd='\xAE';//貨幣對(duì)代碼?字符數(shù)據(jù)占用4字節(jié)的空間。其數(shù)值范圍介于0~255之間。如果超出這個(gè)范圍,那么視為無(wú)效。Booleanconstants布爾常量Boolean用來(lái)表示是和否,還可以用數(shù)字1和0進(jìn)行表示。True和Flase可以忽略大小寫(xiě)。例如:boola=true;boolb=false;boolc=1;它的十進(jìn)制表示一個(gè)長(zhǎng)度為4-byte的整數(shù)值。Boolean常數(shù)可以表示0或1值。Floating-pointnumberconstants(double)浮點(diǎn)數(shù)常量〔雙精度〕浮點(diǎn)型數(shù)據(jù)由整數(shù)局部、小數(shù)點(diǎn)(.)和小數(shù)局部組成,其中整數(shù)局部和小數(shù)局部為一系列十進(jìn)制數(shù)字。..精選實(shí)用文檔..精選例如:doublea=12.111;doubleb=-956.1007;doublec=0.0001;doubled=16;浮點(diǎn)型數(shù)據(jù)(雙精度)占用4字節(jié)的空間。其數(shù)值范圍介于-1.7*e-308~1.7*e308之間。如果超出這個(gè)范圍,那么視為無(wú)效。Stringconstants字符串常量字符串?dāng)?shù)據(jù)是帶有雙引號(hào)的一連串ASCII字符,如:"Characterconstant"。字符串?dāng)?shù)據(jù)是引號(hào)里的一組字符,如果字符串中需要插入一個(gè)雙引號(hào)(")必須在它前面使用反斜線(\)。任何特殊字符都必須有前置的反斜線(\)才能在字符串中使用。字符串可以容納0到255個(gè)字符,如果超過(guò)這個(gè)長(zhǎng)度,右邊多余的字符將被忽略,編譯器也會(huì)有相應(yīng)的警示。例如s:"Thisisacharacterstring""Copyrightsymbol\t\xA9""thislinecontainsalinefeedsymbol\n""C:\\ProgramFiles\\MetaTrader4""A""1234567890""0""$"字符串?dāng)?shù)據(jù)占用8個(gè)字節(jié)的空間。其中第一局部為長(zhǎng)的整型存儲(chǔ)字符串緩沖區(qū)分布的長(zhǎng)度。第二局部是32位的存儲(chǔ)字符串緩沖區(qū)的地址。Colorconstants顏色常數(shù)顏色數(shù)據(jù)可以用三種方法表示:字符數(shù)據(jù)、整型數(shù)據(jù)或者是顏色名(只能是Webcolors中已命名的).字符數(shù)據(jù)的表達(dá)方法是用三個(gè)數(shù)字來(lái)表示三種主要顏色:紅、綠、藍(lán)的比例。以C開(kāi)頭,用單引號(hào)括住。數(shù)字的值在0~255之間按比例選取。..精選實(shí)用文檔..精選整數(shù)數(shù)據(jù)的表達(dá)方法使用十六進(jìn)制或十進(jìn)制數(shù)字。十六進(jìn)制數(shù)字如0x00BBGGRR,其中RR是紅色的比例,GG是綠色的比例,BB是藍(lán)色的比例。十進(jìn)制數(shù)不能直接表達(dá)紅綠藍(lán)的比例,而是十六進(jìn)制數(shù)字的十進(jìn)制表示方式。特殊的顏色名可以參考Webcolorsset表。例如://字符數(shù)據(jù)C'128,128,128'//灰色C'0x00,0x00,0xFF'//藍(lán)色//顏色名RedYellowBlack//整型數(shù)據(jù)0xFFFFFF//白色16777215//白色0x008000//綠色32768//綠色顏色數(shù)據(jù)占用4字節(jié)的空間。第一個(gè)字節(jié)一般被忽略,后三個(gè)字節(jié)包含了紅綠藍(lán)的組成信息。Datetimeconstants日期時(shí)間常數(shù)日期時(shí)間數(shù)據(jù)由6個(gè)局部的字符組成:年、月、日、時(shí)、分、秒,以D開(kāi)頭,用單引號(hào)括起。日期(年、月、日)或者時(shí)間(時(shí)、分、秒)甚至兩者一起都可以不用填寫(xiě)。日期時(shí)間數(shù)據(jù)開(kāi)始于1.1.1970截止到12.31.2037例如:D'2004.01.0100:00'//新年D'1980.07.1912:30:27'..精選實(shí)用文檔..精選D'19.07.198012:30:27'D'19.07.198012'//等于D'1980.07.1912:00:00'D'01.01.2004'//等于D'01.01.200400:00:00'D'12:30:27'//等于D'[編譯日期]12:30:27'D''//等于D'[編譯日期]00:00:00'日期時(shí)間數(shù)據(jù)占用4字節(jié)空間長(zhǎng)度的整型數(shù)值。其值從1970年1月00:00開(kāi)始以秒的形式顯示總數(shù)。Operations&Expressions操作表達(dá)式一些數(shù)字和字符的組合是特別重要的,它們被稱為運(yùn)算符,例如:+-*/%算術(shù)運(yùn)算符&&||邏輯運(yùn)算符=+=*=負(fù)值運(yùn)算符運(yùn)算符應(yīng)用在表達(dá)式中實(shí)現(xiàn)特定的作用。需要特別注意標(biāo)點(diǎn)符號(hào)如圓括號(hào)、方括號(hào)、逗號(hào)、冒號(hào)、分號(hào)。運(yùn)算符、標(biāo)點(diǎn)符號(hào)、空格用來(lái)分割語(yǔ)句的不同局部。Expressions表達(dá)式一個(gè)表達(dá)式可以擁有多個(gè)字符和操作符,一個(gè)表達(dá)式可以寫(xiě)在幾行里面。例如:a++;b=10;x=(y*z)/(w+2)+127;一個(gè)表達(dá)式的最后一個(gè)分號(hào)(;)操作符。..精選實(shí)用文檔..精選Arithmeticaloperations算術(shù)運(yùn)算算術(shù)運(yùn)算符包括加法和乘法運(yùn)算:求和i=j+2;求差i=j-3;改變運(yùn)算符x=-x;求積z=3*x;求商i=j/5;求模minutes=time%60;自加1i++;自減1k--;添加1的運(yùn)算符不能使用在表達(dá)式中。例如:inta=3;a++;//有效表達(dá)式intb=(a++)*3;//無(wú)效表達(dá)式Assignmentoperation賦值操作表達(dá)式的值包括左邊值給出的賦值運(yùn)算符。把變量x的值賦予變量yy=x;以下表達(dá)式中賦值運(yùn)算符結(jié)合了算術(shù)運(yùn)算符或位運(yùn)算符:在y值上加上x(chóng)y+=x;在y值上減去xy-=x;在y值上乘以xy*=x;在y值上除以xy/=x;在y值上求x的模y%=x;..精選實(shí)用文檔..精選把y值向右做x位邏輯移位y>>=x;把y值向左做x位邏輯移位y<<=x;AND位運(yùn)算符y&=x;OR位運(yùn)算符y|=x;把x和y按做邏輯異或的操作y^=x;表達(dá)式中可以只能有一個(gè)賦值運(yùn)算符。位運(yùn)算符只能用于整型數(shù)據(jù)。邏輯移位運(yùn)算符中x值只能是小于5位的二進(jìn)制數(shù),過(guò)大的數(shù)值將會(huì)被拒絕。所以移動(dòng)范圍只能是0到31。用%=運(yùn)算符(用x的模板求y值),其結(jié)果等于余數(shù)。Operationsofrelation操作關(guān)系邏輯值FALSE代表整數(shù)零值,邏輯值TRUE代表不同于零的任何值。用返回0(False)或1(True)來(lái)表示兩個(gè)量之間的關(guān)系。等于ba=b;不等于ba!=b;小于ba<b;大于ba>b;小于等于ba<=b;大于等于ba>=b;2個(gè)不標(biāo)準(zhǔn)的浮點(diǎn)型數(shù)據(jù)不能用=或!=運(yùn)算符比擬,但是我們可以把2者相減,正?;蠛蚽ull進(jìn)行比擬。Booleanoperations布爾運(yùn)算否認(rèn)運(yùn)算符(!),用來(lái)表示真假的反面的結(jié)果。如果運(yùn)算值是FALSE(0)結(jié)果為TRUE(1);如果運(yùn)算不同于FALSE(0)等于FALSE(0)。if(!a)Print("不是'a'");x和y值的邏輯運(yùn)算符或OR(||)用來(lái)表示兩個(gè)表達(dá)式只要有一個(gè)成立即可。如果x和y值為真的,表達(dá)式值為TRUE(1)。否那么,值為FALSE(0)。邏輯表達(dá)式被完全計(jì)算。..精選實(shí)用文檔..精選if(x<0||x>=max_bars)Print("超出范圍");x和y值的邏輯運(yùn)算符AND(&&)。如果x和值都是真實(shí)的,表達(dá)式值為TRUE(1)。Otherwise,itisFALSE(0).if(p!=x&&p>y)Print("TRUE");Bitwiseoperations位運(yùn)算運(yùn)算符對(duì)操作數(shù)執(zhí)行按位求補(bǔ)操作。表達(dá)式的數(shù)字值中包含1,其中n包含0和數(shù)字值中包含0,其中n包含1。b=~n;運(yùn)算符x向右移動(dòng)到數(shù)字y代表二進(jìn)制代碼。向右移動(dòng)是邏輯運(yùn)算,即左側(cè)將被零填滿。x=x>>y;運(yùn)算符x向右移動(dòng)到數(shù)字y代表二進(jìn)制代碼。左側(cè)將被零填滿x=x<<y;二進(jìn)制的x和y代表位邏輯運(yùn)算符AND。在所有數(shù)組中x和y的值都不含有零表達(dá)式的值包含1(TRUE);在所有其他數(shù)字中包含0(FALSE)。b=((x&y)!=0);二進(jìn)制的x和y代表位邏輯運(yùn)算符OR。在所有數(shù)字中x和y的值都不等于零表達(dá)值包含1并且在所有其他數(shù)字中包含0。b=x|y;二進(jìn)制的x和y代表位邏輯運(yùn)算符EXCLUSIVE。在所有數(shù)字中x和y的值都不同于二進(jìn)制值表達(dá)值包含1并且在所有其他數(shù)字中包含0。b=x^y;位邏輯運(yùn)算符只作用于Integers類型。Otheroperations其他運(yùn)算指數(shù)在數(shù)組第一元素的位置,表達(dá)式值為i的系列數(shù)變量值。..精選實(shí)用文檔..精選例如:array[i]=3;//數(shù)組的3的計(jì)算值到第i個(gè)元素。只有整數(shù)能夠成為數(shù)組指數(shù)。四維以下的數(shù)組是禁止的。每組的檢測(cè)是從0到測(cè)量大小-1。特定情況下,對(duì)于維數(shù)組由50個(gè)元素組成,參照的第一個(gè)數(shù)組將為[0],這樣最后一個(gè)數(shù)組將是[49]。獲取超出數(shù)組,將會(huì)發(fā)生常規(guī)錯(cuò)誤ERR_ARRAY_INDEX_OUT_OF_RANGE,可以調(diào)用GetLastError()函數(shù)。調(diào)用x1,x2,...,xn自變數(shù)函數(shù)每一個(gè)自變數(shù)可以顯示一個(gè)常數(shù),一個(gè)變量和相應(yīng)類型表達(dá)式。自變數(shù)的通過(guò)必須根據(jù)通道命令。用此函數(shù)返回表達(dá)式值。如果返回的表達(dá)式值為空,一些函數(shù)不能進(jìn)行中轉(zhuǎn)。請(qǐng)確認(rèn)表達(dá)式x1,x2,...,xn是按照命令執(zhí)行的。例如:doubleSL=Bid-25*Point;intticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,Ask+25*Point,"Mycomment",123,0,Red);標(biāo)點(diǎn)操作符從左到右的表達(dá)式用標(biāo)點(diǎn)分開(kāi)。所有表達(dá)式的計(jì)算是從左至右的。結(jié)果類型和值相互吻合,說(shuō)明表達(dá)式是正確的。參量列表可以作為范例被通過(guò)。例如:for(i=0,j=99;i<100;i++,j--)Print(數(shù)組[i][j]);Precedencerules優(yōu)先規(guī)那么下面是從上到下的運(yùn)算優(yōu)先規(guī)那么,優(yōu)先級(jí)高的將先被運(yùn)算。()函數(shù)調(diào)用從左到右[]數(shù)組元素參考!真假運(yùn)算符從右到左..精選實(shí)用文檔..精選-改變運(yùn)算符++增量--減量~位邏輯運(yùn)算符&位邏輯運(yùn)算符AND從左到右|位邏輯運(yùn)算符OR^位邏輯運(yùn)算符OR<<左移>>右移*乘法從左到右/除法%百分比+加法從左到右-減法<小于從左到右<=小于等于>大于>=大于等于==等于!=不等于||邏輯OR從左到右&&邏輯AND從左到右=值從右到左+=加法值-=減法值..精選實(shí)用文檔..精選*=乘法值/=除法值%=百分比值>>=右移值<<=左移值&=位邏輯運(yùn)算符AND值|=位邏輯運(yùn)算符OR值^=位邏輯運(yùn)算符OR值,逗號(hào)從左到右插入語(yǔ)會(huì)顯示所優(yōu)先執(zhí)行的運(yùn)算注意:在MQL4程序中執(zhí)行優(yōu)先運(yùn)算不同于在C語(yǔ)言范圍內(nèi)的運(yùn)算。Operators操作符語(yǔ)言操作符必須對(duì)執(zhí)行完成任務(wù)的一些運(yùn)算法操作進(jìn)行描述。程序本身是這樣的序列語(yǔ)句。語(yǔ)句逐個(gè)隨后以分號(hào)別離。一個(gè)語(yǔ)句能占領(lǐng)一條或幾條線。二個(gè)或更多語(yǔ)句可能位于同樣線。單獨(dú)執(zhí)行命令的語(yǔ)句(if,if-else,switch,whileandfor)可以相互插入例如:if(Month()==12)if(Day()==31)Print("新年快樂(lè)!");Compoundoperator復(fù)合操作符一個(gè)復(fù)合操作符有一個(gè)(一個(gè)區(qū)段)和由一個(gè)或多個(gè)任何類型的操作符組成的的附件{}.每個(gè)表達(dá)式使用分號(hào)作為結(jié)束(;)。例如:if(x==0)..精選實(shí)用文檔..精選{Print("無(wú)效位置x=",x);return;}Expressionoperator表達(dá)式操作符任何以分號(hào)(;)結(jié)束的表達(dá)式都被視為是一個(gè)操作符。這里是一些表達(dá)式操作符得范例:稱號(hào)運(yùn)算符:Identifier=expression;x=3;y=x=3;//錯(cuò)誤稱號(hào)運(yùn)算符在表達(dá)式操作符中只限一次使用。函數(shù)調(diào)用運(yùn)算符:Function_name(argument1,...,argumentN);FileClose(file);空運(yùn)算符:它是由分號(hào)(;)組成并且使用在一個(gè)檢測(cè)運(yùn)算符中。Breakoperator終止操作符一個(gè)嵌入操作符終止最近外部操作符switch,while或for的執(zhí)行。在終止操作符之后給出檢測(cè)操作符。這個(gè)操作符的目的之一:當(dāng)中心值指定為變量時(shí),操作符完成循環(huán)執(zhí)行。例如://搜索第一個(gè)零元素for(i=0;i<array_size;i++)if((array[i]==0)break;..精選實(shí)用文檔..精選Continueoperator繼續(xù)操作符一個(gè)繼續(xù)操作符。我們將其放在嵌套內(nèi)的指定位置,用來(lái)在指定情況下跳過(guò)接下來(lái)的運(yùn)算,直接跳入下一次的循環(huán)while或for操作符。操作符嵌入位置與此操作符相反。例如://總結(jié)數(shù)組非零元素intfunc(intarray[]){intarray_size=ArraySize(array);intsum=0;for(inti=0;i<array_size;i++){if(a[i]==0)continue;sum+=a[i];}return(sum);}Returnoperator返回操作符一個(gè)return將需要返回的結(jié)果放在return后面的()中。例如:intCalcSum(intx,inty){return(x+y);}在函數(shù)中省缺值類型被返回,此return操作符必須使用:..精選實(shí)用文檔..精選voidSomeFunction(){Print("Hello!");return;//這個(gè)操作符被刪除}函數(shù)正確的震動(dòng)表示return操作符執(zhí)行。Conditionaloperatorif-else條件操作符如果表達(dá)式為true,操作符執(zhí)行并按照操作符1給出的檢測(cè)。如果表達(dá)式為false,操作符2執(zhí)行。if(expression)operator1elseoperator2if操作符else局部可能被忽略。if操作符忽略else局部,顯示分歧可能會(huì)嵌入。這種情況下,else位置在先前if操作符的最近部位,這樣不會(huì)出現(xiàn)else局部。例如://else局部提及到第二個(gè)if操作符:if(x>1)if(y==2)z=5;elsez=6;//else局部提及到第一個(gè)if操作符:if(x>l){if(y==2)z=5;}..精選實(shí)用文檔..精選elsez=6;//嵌入操作符if(x=='a'){y=1;}elseif(x=='b'){y=2;z=3;}elseif(x=='c'){y=4;}elsePrint("ERROR");Switchoperator跳轉(zhuǎn)操作符在case全部變量和相應(yīng)表達(dá)式值檢測(cè)的操作符之內(nèi)比擬常數(shù)表達(dá)式值。每一個(gè)case變量會(huì)在整數(shù)或常數(shù)表達(dá)式內(nèi)標(biāo)注。常數(shù)表達(dá)式不包含函數(shù)變量調(diào)用。switch表達(dá)式操作符必須是整數(shù)類型。switch(expression){caseconstant:operatorscaseconstant:operators精選實(shí)用文檔..精選default:operators}如果在case操作符等于表達(dá)式值,操作符default標(biāo)簽連接將會(huì)執(zhí)行。此default變量無(wú)需在最后。如果相應(yīng)表達(dá)式值和default變量沒(méi)有獲取,不會(huì)有任何執(zhí)行。關(guān)鍵詞case和常數(shù)被標(biāo)注,并且if操作符執(zhí)行case變量,程序?qū)?zhí)行以下所有操作符直至break操作符生成。一個(gè)常數(shù)表達(dá)式的計(jì)算是在編譯期間。在一個(gè)switch操作符內(nèi)部存在兩個(gè)相同值的常數(shù)。例如:switch(x){case'A':Print("CASEA");break;case'B':case'C':Print("CASEBorC");break;default:Print("NOTA,BorC");break;}Cycleoperatorwhile循環(huán)操作符while如果表達(dá)式為true,操作符執(zhí)行直至表達(dá)式變成false。如果表達(dá)式為false,將檢測(cè)最近操作符。while(expression)operator;..精選實(shí)用文檔..精選在操作符執(zhí)行前,一個(gè)表達(dá)式值已經(jīng)被指定。不過(guò),如果開(kāi)始表達(dá)式為false,操作符根本不會(huì)執(zhí)行。例如:while(k<n){y=y*x;k++;}Cycleoperatorfor循環(huán)操作符for用表達(dá)式1Expression來(lái)定義初始變量,當(dāng)表達(dá)式2Expression2為真的時(shí)候執(zhí)行操作運(yùn)算符,在每次循環(huán)結(jié)束后執(zhí)行表達(dá)式3Expression3。如果true,運(yùn)算符for將被執(zhí)行。循環(huán)重復(fù)直至Expression2變?yōu)閒alse。如果false,循環(huán)將會(huì)被中斷并且檢測(cè)運(yùn)算符文本。稍候執(zhí)行。for(Expression1;Expression2;Expression3)operator;此for運(yùn)算符以下運(yùn)算符成功:Expression1;while(Expression2){operator;Expression3;};使用for(;)可以造成一個(gè)死循環(huán)如同while(1)一樣.表達(dá)式1和表達(dá)式3都可以內(nèi)嵌多個(gè)用逗號(hào)(,)分割的表達(dá)式。<例如:for(x=1;x<=7;x++)Print(MathPower(x,2));..精選實(shí)用文檔..精選for(;;){Print(MathPower(x,2));x++;if(x>10)break;}for(i=0,j=n-l;i<n;i++,j--)a[i]=a[j];Functions函數(shù)函數(shù)是局部程序的一個(gè)名稱,它可以在需要時(shí)從任何一個(gè)局部調(diào)用。它是由定義分類返回值,名稱,形式參量和合成運(yùn)算符組成并執(zhí)行的。通過(guò)的總數(shù)被限定在64個(gè)字符之內(nèi)。例如:double//被返回值的類型linfunc(doublex,doublea,doubleb)//函數(shù)名稱和參量列表{//合成運(yùn)算符return(a+b);//返回值}"返回"運(yùn)算符可以返回在這個(gè)運(yùn)算符內(nèi)表達(dá)式的值。如果需要,此表達(dá)式值可以轉(zhuǎn)換為函數(shù)結(jié)果類型。函數(shù)沒(méi)有返回的值必定是“省缺〞類型。例如:voiderrmesg(strings){Print("錯(cuò)誤:"+s);}通過(guò)函數(shù)的參量可能存在由特定類型常數(shù)指定的默認(rèn)值。..精選實(shí)用文檔..精選例如:intsomefunc(doublea,doubled=0.0001,intn=5,boolb=true,strings="passedstring"){Print("需求參量a=",a);Print("以下參量被傳送:d=",d,"n=",n,"b=",b,"s=",s);return(0);}如果此默認(rèn)值指定一個(gè)參量,那么所有的參量也必須存在默認(rèn)值。錯(cuò)誤范例:intsomefunc(doublea,doubled=0.0001,intn,boolb,strings="passedstring"){}Functioncall函數(shù)調(diào)用如果顯示的文件沒(méi)有描述,它將考慮上下文的聯(lián)系作為函數(shù)名稱。函數(shù)名稱(x1,x2,...,xn)自變數(shù)(形式參量)以值的形式通過(guò)。計(jì)算每一個(gè)表達(dá)式xl,...,xn并將其值發(fā)送到函數(shù)。表達(dá)式計(jì)算命令值是被保證的。在執(zhí)行系統(tǒng)測(cè)試數(shù)字和自變數(shù)類型期間會(huì)給出函數(shù)。這種形式的函數(shù)調(diào)用被稱作調(diào)用值。調(diào)用函數(shù)是一個(gè)通過(guò)函數(shù)返回的表達(dá)式的值。描述函數(shù)類型必須相應(yīng)類型返回的值。全球范圍內(nèi)程序的任何一個(gè)局部函數(shù)是被公布或描述的,即其他函數(shù)之外。在另外函數(shù)里,函數(shù)不能被公布或描述。例如:intstart(){doublesome_array[4]={0.3,1.4,2.5,3.6};doublea=linfunc(some_array,10.5,8);..精選實(shí)用文檔..精選//...}doublelinfunc(doublex[],doublea,doubleb){return(a*x[0]+b);}函數(shù)的調(diào)用是默認(rèn)參量,通過(guò)參量的列表是被限定的,但不是之前的第一默認(rèn)參量。例如:voidsomefunc(doubleinit,doublesec=0.0001,intlevel=10);//functionprototypesomefunc();//錯(cuò)誤調(diào)用,第一請(qǐng)求參量必須存在。somefunc(3.14);//正確調(diào)用somefunc(3.14,0.0002);//正確調(diào)用somefunc(3.14,0.0002,10);//正確調(diào)用當(dāng)我們調(diào)用一個(gè)函數(shù)時(shí),不可以忽略參量,存在默認(rèn)值:somefunc(3.14,,10);//錯(cuò)誤調(diào)用。第二參量被忽略。Specialfunctions特殊函數(shù)在MQL4中存在三種預(yù)定義名稱函數(shù):init()在載入時(shí)調(diào)用,可以用此函數(shù)在開(kāi)始自定義指標(biāo)或者自動(dòng)交易之前做初始化操作。start()是根本函數(shù)。對(duì)于智能交易,在下一個(gè)價(jià)格變動(dòng)進(jìn)入之后被調(diào)用。對(duì)于客戶指標(biāo),在指標(biāo)添加到圖表之后,客戶端開(kāi)始(如果指標(biāo)添加到圖表)并且下一個(gè)價(jià)格變動(dòng)進(jìn)入之后,函數(shù)被調(diào)用。對(duì)于腳本,在腳本被添加到圖表之后立即執(zhí)行并初始化。如果在模板中不存在start()函數(shù),模板(智能交易,腳本或客戶指標(biāo))不能開(kāi)啟。deinit()當(dāng)數(shù)據(jù)變動(dòng)時(shí)觸發(fā),對(duì)于自定義指標(biāo)或者自動(dòng)交易的編程主要依靠此函數(shù)進(jìn)行預(yù)定義函數(shù)需要一些參量。不過(guò),當(dāng)這些參量被客戶端調(diào)用時(shí),外部沒(méi)有參量提供。start(),init()和deinit()函數(shù)從模板的任何一點(diǎn)按照常規(guī)調(diào)用,等于其他函數(shù)。不建議從init()函數(shù)調(diào)用start()函數(shù)或是執(zhí)行交易業(yè)務(wù),作為圖表數(shù)據(jù),市場(chǎng)開(kāi)價(jià)格。模板的初始化會(huì)出現(xiàn)殘缺。這時(shí),init()和deinit()函數(shù)必須盡可能結(jié)束運(yùn)行。在調(diào)用start()函數(shù)之前,嘗試重新全面開(kāi)啟運(yùn)行。..精選實(shí)用文檔..精選Variables變量可變量必須在公開(kāi)之前使用??勺兞勘仨殦碛刑厥獾淖R(shí)別名。相關(guān)可變量的定義描述會(huì)顯示。根本類型如下:布爾數(shù)據(jù)-布爾值的true和false;字串符數(shù)據(jù)-特殊字符串;雙精度數(shù)字-帶有浮點(diǎn)雙精度數(shù)字。例如:stringMessageBox;intOrders;doubleSymbolPrice;boolbLog;附加類型:顏色為整數(shù)代表RGB顏色;日期時(shí)間為日期和時(shí)間,起始時(shí)間從1979年1月上午0.00開(kāi)始以秒數(shù)計(jì)算。添加數(shù)據(jù)類型在輸入?yún)⒘康膶傩源翱诜奖悴榭?。例?datetimetBegin_Data=D'2004.01.0100:00';colorcModify_Color=C'0x44,0xB9,0xE6';數(shù)組相同數(shù)列數(shù)據(jù)被標(biāo)注序列。inta[50];//50整數(shù)的一維數(shù)組doublem[7][50];//7個(gè)數(shù)組的二維數(shù)組..精選實(shí)用文檔..精選//每一個(gè)由50個(gè)整數(shù)組成。唯一整數(shù)可以是數(shù)組指數(shù)。不允許四唯數(shù)列。數(shù)組元素開(kāi)始編號(hào)為0。一個(gè)一維列陣的最后元素是1的數(shù)字比列陣大小。這就意味著,請(qǐng)求數(shù)列的最后元素包括50個(gè)整數(shù)將出現(xiàn)作為a[49]。維度被標(biāo)注從0到維度大小-1.一個(gè)二維數(shù)組的最后元素從例如將出現(xiàn)作為m[6][49]。如果訪問(wèn)超出數(shù)列范圍,執(zhí)行系統(tǒng)將發(fā)生錯(cuò)誤可能生成錯(cuò)誤ERR_ARRAY_INDEX_OUT_OF_RANGE,在GetLastError()函數(shù)中可以得到。Localvariables局部變量在任意的地方內(nèi)可變量的公開(kāi)是局部的。局部變量在公開(kāi)的局部里是被限定的。局部變量可以由任意一個(gè)表示結(jié)果初始化。每次函數(shù)的運(yùn)行只可以初始化一個(gè)局部變量。局部變量?jī)?chǔ)存在相應(yīng)的存儲(chǔ)器上。例如:intsomefunc(){intret_code=0;return(ret_code);}Formalparameters形式變量通過(guò)函數(shù)的變量是局部的。范圍是在作用塊內(nèi)。在作用之內(nèi)正式變量的名稱必須不同于其他外部定義變量和函數(shù)變量。作用塊內(nèi)的正式變量值已經(jīng)被賦予。例如:voidfunc(intx[],doubley,boolz){if(y>0.0&&!z)Print(x[0]);..精選實(shí)用文檔..精選...}正式參量可能由常數(shù)初始化。在這種情況下,初始化的值作為缺省值被考慮。參量,在旁邊〔intialized〕,必須初始化。例如:voidfunc(intx,doubley=0.0,boolz=true){...}這樣作用顯現(xiàn)時(shí),初始化的參量可能被省去,缺省值會(huì)代替它們。例如:func(123,0.5);MQL4資料庫(kù)功能在外部函數(shù)變量模塊之內(nèi)無(wú)法有默認(rèn)值初始化。參量值通過(guò)。在任何情況下,變量里布局的修改將不會(huì)顯示在功能板塊內(nèi)。它是可以通過(guò)數(shù)列作為參量。但是,為了數(shù)列可以作為變量,需要改變它的數(shù)列元素。它是還可能通過(guò)參量參考。在這種情況下,修改的這樣參量將被顯示在對(duì)應(yīng)的變量。數(shù)組元素?zé)o法參考通過(guò)。參量可能只在一個(gè)模塊參考通過(guò),數(shù)據(jù)庫(kù)不提供。例如:voidfunc(int&x,double&y,double&z[]){doublecalculated_tp;...for(inti=0;i<OrdersTotal();i++){if(i==ArraySize(z))break;if(OrderSelect(i)==false)break;..精選實(shí)用文檔..精選z[i]=OrderOpenPrice();}x=i;y=calculated_tp;}數(shù)組可以通過(guò)參考通過(guò),全部改變會(huì)在數(shù)列來(lái)源內(nèi)顯示。不同于簡(jiǎn)單的參量,數(shù)組可以進(jìn)入數(shù)據(jù)庫(kù)...以缺省值參量通過(guò)無(wú)法初始化。最大參量不可以超過(guò)64個(gè)。Staticvariables靜態(tài)變量"靜止"記憶被稱作靜態(tài)變量。在數(shù)據(jù)類型之前指定成分"靜止"被公開(kāi)。例如:intsomefunc(){staticintflag=10;return(flag);}靜態(tài)變量被存放在永久記憶里,在函數(shù)退出后靜態(tài)變量不會(huì)喪失。所有在同一板塊內(nèi)〔除正式變量作用外〕,可能作為靜止變量定義。靜態(tài)變量可以由相對(duì)應(yīng)的類型常數(shù)初始化。與局部變量不同。如果沒(méi)有明確地初始化,靜態(tài)變量初始化以零。靜態(tài)變量在"init()"函數(shù)之前只可應(yīng)用一次。Globalvariables全局變量整體變量作為函數(shù)被定義在相同水平,即,不可以局部使用。例如:..精選實(shí)用文檔..精選intGlobalFlag=10;//整體變量intstart(){...}整體變量的范圍是整個(gè)程序。整體變量在所有程序內(nèi)是被定義的。如果它的值沒(méi)有被定義,初始化值為零。整體變量只對(duì)于相應(yīng)的常數(shù)初始化。整體變量只可以在init()函數(shù)操作之前一次性初始化。注解:變量在整體變量的水平位上不能夠與客戶端GlobalVariable...()函數(shù)混淆。Definingexternvariables外部定義變量外部定義的可變量。在數(shù)據(jù)類型公布之前指定外部變量。例如:externdoubleInputParameter1=1.0;externcolorInputParameter2=red;intinit(){...}確定從外部程序輸入的變量,會(huì)直接顯現(xiàn)輸入數(shù)據(jù)窗口。數(shù)列本身不能作為外部變量。Initializationofvariables初始化變量任何情況定義可變物可以初始化。如果它的原始值未被限定,任何可變物初始化為零(0)。整體變量和靜態(tài)變量的初始化由相應(yīng)的常數(shù)進(jìn)行。整體變量和靜態(tài)變量只能一次性初始化。局部變量的初始化與相應(yīng)的調(diào)動(dòng)進(jìn)行。例如:intn=1;..精選實(shí)用文檔..精選doublep=MarketInfo(Symbol(),MODE_POINT);strings="hello";doublef[]={0.0,0.236,0.382,0.5,0.618,1.0};inta[4][4]={1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4};數(shù)組元素值列表必須被附寄在括號(hào)內(nèi)。初始化省去的值被考慮為零。如果初始化的數(shù)組大小不被定義,它將由編譯器定義。多維數(shù)組由一個(gè)一維序列,即序列初始化沒(méi)有另外的括號(hào)。所有數(shù)列,只能以常數(shù)初始化。Externalfunctionsdefinition外部函數(shù)的定義類型外在作用被定義在程序的其它組分必須明確地被描述。缺乏這樣定義也許導(dǎo)致錯(cuò)誤在程序期間的編輯、聯(lián)結(jié),或施行。當(dāng)描述一個(gè)外在對(duì)象,主題詞進(jìn)口必須被使用以在模塊的參考。例如:#import"user32.dll"intMessageBoxA(inthWnd,stringszText,stringszCaption,intnType);intSendMessageA(inthWnd,intMsg,intwParam,intlParam);#import"lib.ex4"doubleround(doublevalue);#import進(jìn)口可能被使用容易地描述作用叫從外在DLLs或編寫(xiě)EX4圖書(shū)館。尖對(duì)可變物可能通過(guò)對(duì)進(jìn)口的dll作用。串類型的數(shù)據(jù)被通過(guò)作為尖對(duì)對(duì)應(yīng)的記憶塊(你應(yīng)該記住串?dāng)?shù)據(jù)的內(nèi)部表示法包括二份:記憶塊長(zhǎng)度和記憶阻攔尖)。如果有需要通過(guò)數(shù)據(jù)內(nèi)部或雙重型,那么對(duì)應(yīng)的型的一維一些應(yīng)該參考通過(guò)作為參量。例如:#import"some_lib.dll"voidPassIntegerByref(int&OneInt[]);#import..精選實(shí)用文檔..精選intstart(){intarray[1];//...PassIntegerByref(array);Print(array[0]);//...}Preprocessor預(yù)處理預(yù)處理程序是一個(gè)特殊MQL4的子程序,在程序執(zhí)行之前預(yù)先準(zhǔn)備的程序源代碼。預(yù)處理程序會(huì)盡可能地讀取源代碼。代碼的結(jié)構(gòu)可能包括MQL4程序源代碼的特殊文件。對(duì)于讀取的代碼盡可能地按照具體常數(shù)分配儲(chǔ)存。預(yù)處理程序允許MQL4程序參量指定。如果#標(biāo)志被使用在程序的第一線,這條線是預(yù)處理程序方針。預(yù)處理程序方向末端以換行字符結(jié)尾。Constantdeclaration常量聲明使用#define定義常數(shù)可以在程序中指定貨幣對(duì)字串符并且定義貨幣對(duì)名稱或貨幣對(duì)常數(shù)。稍候,編輯器會(huì)按照相應(yīng)的字串符名稱復(fù)原所有顯示。事實(shí)上,這些名稱可以由任意數(shù)組文本替換:#defineidentifiervalue此常數(shù)識(shí)別符符合變量名稱的規(guī)那么值可以是以下任意類型:#defineABC100#defineCOMPANY_NAME"MetaQuotesSoftwareCorp."精選實(shí)用文檔..精選voidShowCopyright(){Print("版權(quán)所有?2001-2007,",COMPANY_NAME);Print("://");}Controllingcompilation編譯控制每個(gè)MQL4程序允添加以#property名稱特殊的參量來(lái)幫助客戶端效勞。這是一個(gè)內(nèi)設(shè)指標(biāo)。#property識(shí)別值常數(shù)類型描述linkstring公司網(wǎng)站的相關(guān)連接copyrightstring公司名稱stacksizeint棧式儲(chǔ)存器大小library
資料庫(kù);查看任何可出現(xiàn)的功能錯(cuò)誤indicator_chart_windowvoid在圖表窗口顯示指標(biāo)indicator_separate_windowvoid在指定窗口顯示指標(biāo)indicator_buffersint對(duì)于指標(biāo)計(jì)算的數(shù)字,最大為8indicator_minimumdouble在指標(biāo)窗口下端indicator_maximumdouble在指標(biāo)窗口的上端indicator_colorNcolor在1和8之間顯示線的顏色indicator_widthNint在1和8之間顯示線的寬度..精選實(shí)用文檔..精選indicator_styleNint在1和8之間顯示線的風(fēng)格indicator_levelNdouble在客戶指標(biāo)窗口1和8之間N的水平indicator_levelcolorcolor水平線顏色indicator_levelwidthint水平線寬度indicator_levelstyleint水平線風(fēng)格show_confirmvoid在腳本運(yùn)行之前顯示確認(rèn)show_inputsvoid在腳本運(yùn)行之前顯示它的屬性和確認(rèn)例如:#propertylink"://"#propertycopyright"MetaQuotesSoftwareCorp."#propertylibrary#propertystacksize1024在執(zhí)行模板設(shè)定時(shí),編譯器將會(huì)寫(xiě)入值。Incl
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《小烏龜看爺爺》課件
- 《電氣安全操作技術(shù)》課件
- 三年級(jí)數(shù)學(xué)認(rèn)識(shí)分?jǐn)?shù)課件
- 《神經(jīng)系統(tǒng)的療養(yǎng)》課件
- 單位管理制度集合大合集人員管理篇十篇
- 單位管理制度匯編大合集人力資源管理十篇
- 中心對(duì)稱課件
- 單位管理制度分享大全職工管理篇
- 《證據(jù)法的基礎(chǔ)知識(shí)》課件
- 《診斷學(xué)》課程標(biāo)準(zhǔn)
- 循證護(hù)理在骨科中的護(hù)理
- 心肺復(fù)蘇應(yīng)急演練腳本
- 華南理工大學(xué)2022年622物理化學(xué)考研真題(含答案)
- 建筑垃圾安全生產(chǎn)管理制度范本
- 酒店總經(jīng)理應(yīng)聘計(jì)劃書(shū)
- 22G101三維立體彩色圖集
- 2023年CQE客訴工程師年度總結(jié)及下年規(guī)劃
- 人教版地理七年級(jí)上冊(cè)期末測(cè)試題(4套含答案)
- 水平井施工方案及措施
- 小學(xué)數(shù)學(xué)一年級(jí)上冊(cè)-期末測(cè)試卷(二)含答案-人教版
- 登金陵鳳凰臺(tái)
評(píng)論
0/150
提交評(píng)論