在客户端程序运行子系统时,执行一个MQL4程序发生了异外情况,其错误代码将被保存下来。对于每一个MQL4程序执行,存在一个特殊的last_error变量。在init()函数运行之前,last_error变量必须重置为零。如果在计算阶段或调用内置函数时发生错误,last_error变量会收到相应的错误代码。存储在这个变量中的值可以用GetLastError()函数访问,之后,last_error变量将重置为零。
这里罗列了直接导致程序立即停止运行的关键错误:
常数值描述ERR_WRONG_FUNCTION_POINTER4001在调用内部函数时,发现错误的函数指针ERR_NO_MEMORY_FOR_CALL_STACK4003在调用内部函数时,不能为函数调用堆栈再分配内存ERR_RECURSIVE_STACK_OVERFLOW4004递归调用函数时,数据堆栈溢出ERR_NO_MEMORY_FOR_PARAM_STRING4006在调用内部函数时,不能为作为函数参数的字符串分配内存ERR_NO_MEMORY_FOR_TEMP_STRING4007不能为字符串操作分配临时缓冲区ERR_NO_MEMORY_FOR_ARRAYSTRING4010赋值时,不能为数组中字符串重新分配内存ERR_TOO_LONG_STRING4011赋值时,太长的字符串被送到服务缓冲区(不能再为服务缓冲区分配内存)ERR_REMAINDER_FROM_ZERO_DIVIDE4012余数除0错误ERR_ZERO_DIVIDE4013除0 错误ERR_UNKNOWN_COMMAND4014无效指令如果在产生致命错误时程序停止了工作,这些错误代码可能被下次启动的程序用GetLastError()函数读取,也可被非初始化函数读取。在程序或非初始化函数开始运行之前,last_error变量不会归零。
这里罗列了调用导入函数时发生的致命错误,这些错误会引起智能交易或自定义指标立即停止启动函数的执行,直到用户重新初始化为止。
常数值描述ERR_CANNOT_LOAD_LIBRARY4018调用导入函数时,载入DLL或EX4库发生错误ERR_CANNOT_CALL_FUNCTION4019调用导入函数时,发现DLL或EX4库不包含被调用函数ERR_DLL_CALLS_NOT_ALLOWED4017调用导入DLL函数时,发现禁止DLL导入ERR_EXTERNAL_CALLS_NOT_ALLOWED4020调用导入EX4函数时,发现禁止导入外部EX4其他错误不中断程序执行。
常数值描述ERR_ARRAY_INDEX_OUT_OF_RANGE4002超界访问数组ERR_NOT_INITIALIZED_STRING4008未初始化字符串;没有值赋给在表达式中充当操作数的字符串ERR_NOT_INITIALIZED_ARRAYSTRING4009未初始化字符串数组;没有值赋给在表达式中充当操作数的字符串ERR_NO_MEMORY_FOR_RETURNED_STR4021不能为函数返回的字符串重新分配内存从不产生ERR_NO_MQLERROR (4000)代码。Decode官网
这里罗列了可能只是由于软件或硬件故障而产生的许多错误。如果下列描述的错误反复出现,应与开发商联络。
常数值描述ERR_WRONG_FUNCTION_POINTER4001在调用内部函数时,发现错误的函数指针ERR_UNKNOWN_COMMAND4014无效指令ERR_NOT_INITIALIZED_ARRAY4016未初始化数组ERR_INVALID_FUNCTION_PARAMSCNT4050函数参数个数不正确ERR_STRING_FUNCTION_INTERNAL4052字符串函数内部出错ERR_TRADE_ERROR4067交易函数执行出错ERR_SOME_OBJECT_ERROR4207对象函数出错下面这些函数会经常的修改last_error变量的值(即使没有发生错误也可能会修改last_error变量的值)。
函数错误代码AccountFreeMarginCheckERR_STRING_PARAMETER_EXPECTED (4062), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_UNKNOWN_SYMBOL (4106), ERR_NOT_ENOUGH_MONEY (134)OrderSendERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), ERR_LONGS_NOT_ALLOWED (4110), ERR_SHORTS_NOT_ALLOWED (4111), 交易服务器返回的错误代码OrderCloseERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), 交易服务器返回的错误代码OrderCloseByERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), 交易服务器返回的错误代码OrderDeleteERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), 交易服务器返回的错误代码OrderModifyERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), 交易服务器返回的错误代码GetLastErrorERR_NO_ERROR (0)下面这些函数只有发生错误的时候才会修改last_error变量值。
函数错误代码ArrayBsearchERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayCopyERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayCopyRatesERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_STRING_PARAMETER_EXPECTED (4062),ArrayCopySeriesERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_HISTORY_WILL_UPDATED (4066), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayDimensionERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)ArrayGetAsSeriesERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)ArrayInitializeERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayIsSeriesERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)ArrayMaximumERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayMinimumERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayRangeERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArrayResizeERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)ArraySetAsSeriesERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)ArraySizeERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)ArraySortERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INVALID_FUNCTION_PARAMVALUE (4051)FileCloseERR_INVALID_FUNCTION_PARAMVALUE (4051)FileDeleteERR_WRONG_FILE_NAME (4101), ERR_SOME_FILE_ERROR (4100)FileFlushERR_INVALID_FUNCTION_PARAMVALUE (4051)FileIsEndingERR_INVALID_FUNCTION_PARAMVALUE (4051)FileIsLineEndingERR_INVALID_FUNCTION_PARAMVALUE (4051)FileOpenERR_TOO_MANY_OPENED_FILES (4102), ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100), ERR_CANNOT_OPEN_FILE (4103)FileOpenHistoryERR_TOO_MANY_OPENED_FILES (4102), ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100), ERR_CANNOT_OPEN_FILE (4103)FileReadArrayERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_ARRAY_ERROR (4053), ERR_SOME_FILE_ERROR (4100), ERR_END_OF_FILE (4099)FileReadDoubleERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_END_OF_FILE (4099)FileReadIntegerERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_END_OF_FILE (4099)FileReadNumberERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_END_OF_FILE (4099)FileReadStringERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_TOO_LONG_STRING (4011), ERR_END_OF_FILE (4099)FileSeekERR_INVALID_FUNCTION_PARAMVALUE (4051)FileSizeERR_INVALID_FUNCTION_PARAMVALUE (4051)FileTellERR_INVALID_FUNCTION_PARAMVALUE (4051)FileWriteERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100)FileWriteDoubleERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100)FileWriteIntegerERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100)FileWriteStringERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_STRING_PARAMETER_EXPECTED (4062)FileWriteArrayERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100),GlobalVariableCheckERR_STRING_PARAMETER_EXPECTED (4062)GlobalVariableDelERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)GlobalVariableGetERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)GlobalVariablesDeleteAllERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)GlobalVariableSetERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)GlobalVariableSetOnConditionERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)iCustomERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051)technical indicators, series access functionsERR_HISTORY_WILL_UPDATED (4066)technical indicators OnArrayERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)IndicatorBuffersERR_INVALID_FUNCTION_PARAMVALUE (4051)IndicatorDigitsERR_INVALID_FUNCTION_PARAMVALUE (4051)IndicatorShortNameERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051)MarketInfoERR_STRING_PARAMETER_EXPECTED (4062), ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_UNKNOWN_SYMBOL (4106), ERR_INVALID_FUNCTION_PARAMVALUE (4051)MathArccosERR_INVALID_FUNCTION_PARAMVALUE (4051)MathArcsinERR_INVALID_FUNCTION_PARAMVALUE (4051)MathModERR_ZERO_DIVIDE (4013)MathSqrtERR_INVALID_FUNCTION_PARAMVALUE (4051)MessageBoxERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062)ObjectCreateERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_ALREADY_EXISTS (4200), ERR_NO_SPECIFIED_SUBWINDOW (4206)ObjectDeleteERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)ObjectDescriptionERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)ObjectFindERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204)ObjectGetERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_PROPERTY (4201)ObjectGetFiboDescriptionERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_UNKNOWN_OBJECT_PROPERTY (4201)ObjectGetShiftByValueERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_OBJECT_COORDINATES_ERROR (4205)ObjectGetValueByShiftERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_OBJECT_COORDINATES_ERROR (4205)ObjectMoveERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_DOES_NOT_EXIST (4202)ObjectNameERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)ObjectSetERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_PROPERTY (4201)ObjectSetTextERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)ObjectSetFiboDescriptionERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_UNKNOWN_OBJECT_PROPERTY (4201)ObjectTypeERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)OrderClosePriceERR_NO_ORDER_SELECTED (4105)OrderCloseTimeERR_NO_ORDER_SELECTED (4105)OrderCommentERR_NO_ORDER_SELECTED (4105)OrderCommissionERR_NO_ORDER_SELECTED (4105)OrderExpirationERR_NO_ORDER_SELECTED (4105)OrderLotsERR_NO_ORDER_SELECTED (4105)OrderMagicNumberERR_NO_ORDER_SELECTED (4105)OrderOpenPriceERR_NO_ORDER_SELECTED (4105)OrderOpenTimeERR_NO_ORDER_SELECTED (4105)OrderPrintERR_NO_ORDER_SELECTED (4105)OrderProfitERR_NO_ORDER_SELECTED (4105)OrderStopLossERR_NO_ORDER_SELECTED (4105)OrderSwapERR_NO_ORDER_SELECTED (4105)OrderSymbolERR_NO_ORDER_SELECTED (4105)OrderTakeProfitERR_NO_ORDER_SELECTED (4105)OrderTicketERR_NO_ORDER_SELECTED (4105)OrderTypeERR_NO_ORDER_SELECTED (4105)PlaySoundERR_WRONG_FILE_NAME (4101)SendFTPERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062)SendMailERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_FUNCTION_NOT_CONFIRMED (4060), ERR_SEND_MAIL_ERROR (4061)SetIndexArrowERR_INVALID_FUNCTION_PARAMVALUE (4051)SetIndexBufferERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INCOMPATIBLE_ARRAYS (4056)SetIndexDrawBeginERR_INVALID_FUNCTION_PARAMVALUE (4051)SetIndexEmptyValueERR_INVALID_FUNCTION_PARAMVALUE (4051)SetIndexLabelERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_STRING_PARAMETER_EXPECTED (4062)SetIndexShiftERR_INVALID_FUNCTION_PARAMVALUE (4051)SetIndexStyleERR_INVALID_FUNCTION_PARAMVALUE (4051)SetLevelValueERR_INVALID_FUNCTION_PARAMVALUE (4051)SleepERR_CUSTOM_INDICATOR_ERROR (4055)StringFindERR_STRING_PARAMETER_EXPECTED (4062)StringGetCharERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)StringLenERR_STRING_PARAMETER_EXPECTED (4062)StringSetCharERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_NOT_INITIALIZED_STRING (4008), ERR_TOO_LONG_STRING (4011), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)StringSubstrERR_STRING_PARAMETER_EXPECTED (4062), ERR_TOO_LONG_STRING (4011)StringTrimLeftERR_STRING_PARAMETER_EXPECTED (4062)StringTrimRightERR_STRING_PARAMETER_EXPECTED (4062)WindowIsVisibleERR_FUNC_NOT_ALLOWED_IN_TESTING (4059)WindowFindERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008)WindowHandleERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008)WindowScreenShotERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051)下面的函数从不改变last_error变量值。
AccountBalance, AccountCompany, AccountCredit, AccountCurrency, AccountEquity, AccountFreeMargin, AccountLeverage, AccountMargin, AccountName, AccountNumber, AccountProfit, AccountServer, Alert, CharToStr, Comment, Day, DayOfWeek, DayOfYear, DoubleToStr, GetTickCount, HideTestIndicators, Hour, IndicatorCounted, IsConnected, IsDemo, IsDllsAllowed, IsExpertEnabled, IsLibrariesAllowed, IsOptimization, IsStopped, IsTesting, IsTradeAllowed, IsTradeContextBusy, IsVisualMode, MathAbs, MathArctan, MathCeil, MathCos, MathExp, MathFloor, MathLog, MathMax, MathMin, MathPow, MathRand, MathRound, MathSin, MathSrand, MathTan, Minute, Month, NormalizeDouble, ObjectsDeleteAll, ObjectsTotal, OrderSelect, OrdersHistoryTotal, Period, Print, RefreshRates, Seconds, SetLevelStyle, StringConcatenate, StrToTime, StrToDouble, Symbol, TerminalCompany, TerminalName, TerminalPath, TimeCurrent, TimeDay, TimeDayOfWeek, TimeDayOfYear, TimeHour, TimeLocal, TimeMinute, TimeMonth, TimeSeconds, TimeToStr, TimeYear, UninitializeReason, WindowBarsPerChart, WindowFirstVisibleBar, WindowPriceOnDropped, WindowRedraw, WindowTimeOnDropped, WindowsTotal, WindowOnDropped, WindowXOnDropped, WindowYOnDropped, Year
资深外汇分析师
由多名资深外汇分析师组成的专业团队,拥有平均15年以上的市场分析经验,擅长技术分析和基本面分析相结合的交易策略。