mt4编程参考

上传人:豆****2 文档编号:46914496 上传时间:2021-12-16 格式:DOC 页数:93 大小:578KB
收藏 版权申诉 举报 下载
mt4编程参考_第1页
第1页 / 共93页
mt4编程参考_第2页
第2页 / 共93页
mt4编程参考_第3页
第3页 / 共93页
资源描述:

《mt4编程参考》由会员分享,可在线阅读,更多相关《mt4编程参考(93页珍藏版)》请在装配图网上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除语法 Syntax代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加你带骂得可读性。注释多行注释使用 /* 作为开始到 */ 结束,在这之间不能够嵌套。单行注释使用 / 作为开始到新的一行结束,可以被嵌套到多行注释之中。示例:/单行注释 /*多行 注释 /嵌套的单行注释注释结束 */标识符 标识符用来给变量、函数和数据类型进行命名,长度不能超过31一个字节你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.示例:/ NAME

2、1 namel Total_5 Paper保留字 下面列出的是固定的保留字。不能使用以下任何保留字进行命名。 数据类型存储类型操作符其它bool extern break false color static case true datetime continue double default int else string for void if return switch while 数据类型 Data types数据类型概述主要数据类型有: Integer (int) Boolean (bool) (char) String (string) Floating-point number

3、(double) Color (color) Datetime (datetime) 我们用Integer类型数据来作为DateTime和Color数据的存储。使用以下方式可以进行类型站换:int (bool,color,datetime);double;string;Integer 类型十进制: 数字0-9;0不能作为第一个字母示例:12, 111, -956 1007十六进制: 数字0-9;拉丁字母a-f或A-F用来表示10-15;使用0x或者0X作为开始。示例:0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7Integer 变量的取值范围为-214748

4、3648到2147483647。Literal 类型任意在单引号中的字符或十六进制的任意ASCII码例如x10都是被看作为一个字符,一些字符例如单引号(),双引号(),问号(?),反斜杠()和一些控制符都需要在之前加一个反斜杠()进行转意后表示出来:line feed NL (LF) nhorizontal tab HT tcarriage return CR rreverse slash single quote double quote hexadecimal ASCII-code hh xhh以上字符如果不经过反斜杠进行转意将不能被使用示例:int a = A;int b = $;int

5、 c = ; / code 0xA9int d = xAE; / symbol code Boolean 类型Boolean 用来表示 是 和 否, 还可以用数字 1 和 0 进行表示。True和Flase可以忽略大小写。示例:bool a = true;bool b = false;bool c = 1;Floating-point number 类型浮点型变量在整数型后面加一个点(.)用来更精确的表示十进制数字。示例:double a = 12.111;double b = -956.1007;double c = 0.0001;double d = 16;浮点型的取值范围从 2.2e-3

6、08 到 1.8e308.String 类型字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:Character constant.示例:This is a character stringCopyright symbol txA9this line with LF symbol nA 1234567890 0 $Color 类型颜色类型可以使用以下示例里的几种方式进行定义。 示例:/ symbol constantsC128,128,128 / grayC0x00,0x00,0xFF / blue/ named colorRedYellowBlack/ i

7、nteger-valued representation0xFFFFFF / white16777215 / white0x008000 / green32768 / greenDatetime 类型时间类型使用年、月、日、时、分、秒来进行定义,你可以使用以下示例中的方式来定义变量。示例:D2004.01.01 00:00 / New YearD1980.07.19 12:30:27D19.07.1980 12:30:27D19.07.1980 12 /equal to D1980.07.19 12:00:00D01.01.2004 /equal to D01.01.2004 00:00:00

8、D12:30:27 /equal to Dcompilation date 12:30:27D /equal to Dcompilation date 00:00:00运算符和表达式 Operations & Expressions表达式一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。示例:a+; b = 10; x = (y*z)/w;注:分号(;)是表达式的结束符。算术运算符Sum of values i = j + 2;Difference of values i = j - 3;Changing the operation sign x = - x;Product of

9、 values z = 3 * x;Division quotient i = j / 5;Division remainder minutes = time % 60;Adding 1 to the variable value i+;Subtracting 1 from the variable value k-;加减1的运算符不能被嵌套在表达式中int a=3;a+; / 可行的表达式int b=(a+)*3; / 不可行的表达式赋值运算符注:将右侧的结果赋值给左侧的变量将x的值赋值给y y = x;将x的值加到y上面 y += x;在y上面减去x的值 y -= x;得到y的x倍的值 y

10、 *= x;得到y除以x的值 y /= x;取y除以x后的余数 y %= x;y向右位移x位 y = x;y向左位移x位 y = x;得到逻辑AND的值 y &= x;得到逻辑OR的值 y |= x;得到逻辑非OR的值 y = x;注:一个表达式只能有一个赋值运算符.关系运算符用返回0(False)或1(True)来表示两个量之间的关系。a是否等于b a = b;a是否不等于b a != b;a是否小于b a b;a是否小于等于b a = b;真假运算符否定运算符(!),用来表示真假的反面的结果。/ 如果a不是真的if(!a)Print(not a);逻辑运算符或(|)用来表示两个表达式只要有

11、一个成立即可。示例:if(xl)Print(out of range);逻辑运算符和(&)用来表示两个表达式要同时成立才行。示例:if(p!=x & py)Print(true);n+;位逻辑运算符 运算符对操作数执行按位求补操作。b = n; 运算符对操作数执行向右位移操作。x = x y; 运算符对操作数执行向左位移操作。x = x y;一元 & 运算符返回操作数的地址为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。b = (x

12、 & y) != 0);二进制 | 运算符是为整型和 bool 类型预定义的。对于整型,| 对操作数进行按位“或”运算。对于 bool 操作数,| 对操作数进行逻辑“或”计算,也就是说,当且仅当两个操作数均为 false 时,其结果才为 false。b = x | y;为整型和 bool 类型预定义了 二进制操作数。对于整型, 计算操作数的按位“异或”。对于 bool 操作数, 计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true 时,其结果才为 true。b = x y;注:位逻辑运算符只作用于Integers类型其它运算符索引。定位在数组中i位置的值。arrayi = 3

13、;/将3负值到array数组第i位置上使用 x1,x2,.,xn 这样的方法将各种值传送到function中进行运算。示例:double 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);优先级规则下面是从上到下的运算优先规则,优先级高的将先被运算。() Function call From left to right Array element selection! Negation From left to right

14、 Bitwise negation- Sign changing operation* Multiplication From left to right/ Division% Module division+ Addition From left to right- Subtraction Right shift Less than From left to right Greater than= Greater than or equals= Equals From left to right!= Not equal& Bitwise AND operation From left to

15、right Bitwise 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= A

16、ssignment right shift= Assignment left shift&= Assignment bitwise AND|= Assignment bitwise OR= Assignment exclusive OR, Comma From left to right操作符 Operators 格式和嵌套格式.一个操作符可以占用一行或者多行,两个或多个操作符可以占用更多的行。嵌套.执行控制符(if, if-else, switch, while and for)可以进行任意嵌套.复合操作符一个复合操作符有一个(一个区段)和由一个或多个任何类型的操作符组成的的附件. 每个表达

17、式使用分号作为结束(;)示例:if(x=0)x=1; y=2; z=3;表达式操作符任何以分号(;)结束的表达式都被视为是一个操作符。Assignment operator.Identifier=expression;标识符=表达式;示例:x=3;y=x=3; / 这是错误的一个操作符中只能有一个表达式。调用函数操作符Function_name(argument1,., argumentN);函数名称(参数1,.,参数N);示例:fclose(file);空操作符只有一个分号组成(;).我们用它来表示没有任何表达式的空操作符.停止操作符一个break; , 我们将其放在嵌套内的指定位置,用来在

18、指定情况下跳出循环操作.示例:/ 从0开始搜索数组for(i=0;i1)if(y=2)z=5;elsez=6; if(xl)if(y=2) z=5;elsez=6;/ 多项选择if(x=a)y=1;else if(x=b)y=2;z=3;else if(x=c)y = 4;elsePrint(ERROR);选择操作符 switchswitch (expression)case constant1: operators; break;case constant2: operators; break;.default: operators; break;当表达式expression的值等于结果之一

19、时,执行其结果下的操作。不管结果如何都将执行default中的操作。示例:case 3+4: /正确的case X+Y: /错误的被选择的结果只可以是常数,不可为变量或表达式。示例: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;循环操作符 whilewhile (expression)operator;只要表达式expression为真就执行操作operator示例:while(kN)y=y*x;k+;循环操作符 f

20、orfor (expression1; expression2; expression3)operator;用表达式1(expression1)来定义初始变量,当表达式2(expression2)为真的时候执行操作operator,在每次循环结束后执行表达式3(expression3)用while可以表示为这样:expression1;while (expression2)operator;expression3;示例:for(x=1;x=7;x+)Print(MathPower(x,2);使用for(;)可以造成一个死循环如同while(true)一样.表达式1和表达式3都可以内嵌多个用逗号

21、(,)分割的表达式。示例:for(i=0,j=n-l;iN;I+,J-)ai=aj;函数 Function函数定义一个函数是由返回值、输入参数、内嵌操作所组成的。示例:double / 返回值类型linfunc (double x, double a, double b) / 函数名和输入参数/ 内嵌的操作return (a*x + b); / 返回值如果没有返回值那么返回值的类型可以写为void示例:void errmesg(string s)Print(error: +s);函数调用function_name (x1,x2,.,xn)示例:int somefunc()double a=li

22、nfunc(0.3, 10.5, 8);double linfunc(double x, double a, double b)return (a*x + b);特殊函数 init()、deinit()和start()init()在载入时调用,可以用此函数在开始自定义指标或者自动交易之前做初始化操作。deinit()在卸载时调用,可以用此函数在去处自定义指标或者自动交易之前做初始化操作。start()当数据变动时触发,对于自定义指标或者自动交易的编程主要依靠此函数进行。变量 Variables定义变量定义基本类型基本类型包括 string - 字符串型; int - 整数型; double -

23、 双精度浮点数型; bool - 布尔型 示例:string MessageBox;int Orders;double SymbolPrice;bool bLog;定义附加类型附加类型包括 datetime - 时间型,使用无符号整型数字存储,是1970.1.1 0:0:0开始的秒数 color - 颜色,使用三色的整型数字编码而成 示例:extern datetime tBegin_Data = D2004.01.01 00:00;extern color cModify_Color = C0x44,0xB9,0xE6;定义数组类型示例:int a50; /一个一维由五十个int组成的数组d

24、ouble m750; /一个两维由7x50个double组成的数组内部变量定义内部变量顾名思义是在内部使用的,可以理解为在当前嵌套内所使用的变量。函数参数定义示例:void func(int x, double y, bool z).函数的参数内的变量只能在函数内才生效,在函数外无法使用,而且在函数内对变量进行的修改在函数外无法生效。调用函数示例:func(123, 0.5);如果有需要在变量传入由参数传入函数内操作后保留修改在函数外生效的情况的话,可以在参数定义的类型名称后加上修饰符(&)。示例:void func(int& x, double& y, double& z).静态变量定义在

25、数据类型前加上static就可以将变量定义成静态变量示例:static int flag全局变量定义全局变量是指在整个程序中都能够调用的变量,只需将变量定义卸载所有嵌套之外即可。示例:int Global_flag;int start().附加变量定义附加变量可以允许由用户自己输入。示例:extern double InputParameter1 = 1.0;int init().初始化变量变量必须经过初始化才可以使用。基本类型示例:int mt = 1; / integer 初始化/ double 初始化double p = MarketInfo(Symbol(),MODE_POINT);/

26、 string 初始化string s = hello;数组类型示例:int mta6 = 1,4,9,16,25,36;外部函数引用示例:#import user32.dllint MessageBoxA(int hWnd ,string szText,string szCaption,int nType);int SendMessageA(int hWnd,int Msg,int wParam,int lParam);#import lib.ex4double round(double value);#import预处理程序 Preprocessor定义常数#define identifi

27、er_value常数可以是任何类型的,常数在程序中不可更改。示例:#define ABC 100#define PI 0.314#define COMPANY_NAME MetaQuotes Software Corp.编译参数定义#property identifier_value示例:#property link #property copyright MetaQuotes Software Corp.#property stacksize 1024以下是所有的参数名称: 参数名称类型说明link string 设置一个链接到公司网站copyright string 公司名称stacksi

28、ze int 堆栈大小indicator_chart_window void 显示在走势图窗口indicator_separate_window void 显示在新区块indicator_buffers int 显示缓存最高8indicator_minimum int 图形区间最低点indicator_maximum int 图形区间最高点indicator_colorN color 第N根线的颜色,最高8根线indicator_levelN double predefined level N for separate window custom indicatorshow_confirm v

29、oid 当程序执行之前是否经过确认show_inputs void before script run its property sheet appears; disables show_confirm property 嵌入文件#include 示例:#include #include file_name示例:#include mylib.h引入函数或其他模块#import file_namefunc1();func2();#import示例:#import user32.dllint MessageBoxA(int hWnd,string lpText,string lpCaption,i

30、nt uType);int MessageBoxExA(int hWnd,string lpText,string lpCaption,int uType,int wLanguageId);#import melib.ex4#import gdi32.dllint GetDC(int hWnd);int ReleaseDC(int hWnd,int hDC);#import账户信息 Account Informationdouble AccountBalance()返回账户余额示例:Print(Account balance = ,AccountBalance();double Account

31、Credit()返回账户信用点数示例:Print(Account number , AccountCredit();string AccountCompany()返回账户公司名示例:Print(Account company name , AccountCompany();string AccountCurrency()返回账户所用的通货名称示例:Print(account currency is , AccountCurrency();double AccountEquity()返回资产净值示例:Print(Account equity = ,AccountEquity();double A

32、ccountFreeMargin()Returns free margin value of the current account.示例:Print(Account free margin = ,AccountFreeMargin();int AccountLeverage()返回杠杆比率示例:Print(Account #,AccountNumber(), leverage is , AccountLeverage();double AccountMargin()Returns margin value of the current account.示例:Print(Account mar

33、gin , AccountMargin();string AccountName()返回账户名称示例:Print(Account name , AccountName();int AccountNumber()返回账户数字示例:Print(account number , AccountNumber();double AccountProfit()返回账户利润示例:Print(Account profit , AccountProfit();数组函数 Array Functionsint ArrayBsearch( double array, double value, int count=W

34、HOLE_ARRAY, int start=0, int direction=MODE_ASCEND)搜索一个值在数组中的位置此函数不能用在字符型或连续数字的数组上.: 输入参数array - 需要搜索的数组value - 将要搜索的值 count - 搜索的数量,默认搜索所有的数组start - 搜索的开始点,默认从头开始direction - 搜索的方向,MODE_ASCEND 顺序搜索 MODE_DESCEND 倒序搜索 示例:datetime daytimes;int shift=10,dayshift;/ All the Time timeseries are sorted in d

35、escendant modeArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);if(Timeshift>=daytimes0) dayshift=0;elsedayshift=ArrayBsearch(daytimes,Timeshift,WHOLE_ARRAY,0,MODE_DESCEND);if(Period()=daytimes0) dayshift=0;elsedayshift=ArrayBsearch(daytimes,Timeshift,WHOLE_ARRAY,0,MODE_DESCEND);if(Period()Pr

36、int(TimeToStr(Timeshift), corresponds to ,dayshift, day bar opened at , TimeToStr(daytimesdayshift);int ArrayDimension( int array) 返回数组的维数 : 输入参数array - 需要检查的数组 示例:int num_array105;int dim_size;dim_size=ArrayDimension(num_array);/ dim_size is 2bool ArrayGetAsSeries(object array)检查数组是否是有组织序列的数组(是否从最后

37、到最开始排序过的),如果不是返回否 : 输入参数array - 需要检查的数组 示例:if(ArrayGetAsSeries(array1)=true)Print(array1 is indexed as a series array);elsePrint(array1 is indexed normally (from left to right);int ArrayInitialize( double& array, double value)对数组进行初始化,返回经过初始化的数组项的个数 : 输入参数array - 需要初始化的数组value - 新的数组项的值 示例:/- 把所有数组项

38、的值设置为2.1double myarray10;ArrayInitialize(myarray,2.1);bool ArrayIsSeries( object array) 检查数组是否连续的(time,open,close,high,low, or volume). : 输入参数array - 需要检查的数组 示例:if(ArrayIsSeries(array1)=false)ArrayInitialize(array1,0);elsePrint(Series array cannot be initialized!);return(-1);int ArrayMaximum( double

39、 array, int count=WHOLE_ARRAY, int start=0) 找出数组中最大值的定位 : 输入参数array - 需要检查的数组count - 搜索数组中项目的个数start - 搜索的开始点 示例:double num_array15=4,1,6,3,9,4,1,6,3,9,4,1,6,3,9;int maxValueIdx=ArrayMaximum(num_array);Print(Max value = , num_arraymaxValueIdx);int ArrayMinimum( double array, int count=WHOLE_ARRAY, i

40、nt start=0) 找出数组中最小值的定位 : 输入参数array - 需要检查的数组count - 搜索数组中项目的个数start - 搜索的开始点 示例: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);int ArrayRange( object array, int range_index) 取数组中指定维数中项目的数量。 : 输入参数array - 需要检查的数组r

41、ange_index - 指定的维数 示例:int dim_size;double num_array10,10,10;dim_size=ArrayRange(num_array, 1);int ArrayResize( object& array, int new_size) 重定义数组大小 : 输入参数array - 需要检查的数组new_size - 第一维中数组的新大小 示例:double array14;int element_count=ArrayResize(array, 20);/ 数组中总项目数为80bool ArraySetAsSeries( double& array,

42、bool set) 设置指数数组为系列数组,数组0位的值是最后的值。返回之前的数组状态 : 输入参数array - 需要处理的数组set - 是否是设置为系列数组,true或者false 示例: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

43、,PRICE_CLOSE,i);for(i=0; isignal_bufferi=iMAOnArray(macd_buffer,limit,9,0,MODE_SMA,i);int ArraySize( object array) 返回数组的项目数 : 输入参数array - 需要处理的数组 示例:int count=ArraySize(array1);for(int i=0; i/ do some calculations.int ArraySort( double& array, int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_AS

44、CEND) 对数组进行排序,系列数组不可进行排序 : 输入参数array - 需要处理的数组count - 对多少个数组项进行排序start - 排序的开始点sort_dir - 排序方式,MODE_ASCEND顺序排列 MODE_DESCEND倒序排列 示例:double num_array5=4,1,6,3,9;/ now array contains values 4,1,6,3,9ArraySort(num_array);/ now array is sorted 1,3,4,6,9ArraySort(num_array,MODE_DESCEND);/ now array is sor

45、ted 9,6,4,3,1类型转换函数 Conversion Functionsstring CharToStr( int char_code) 将字符型转换成字符串型结果返回: 输入参数char_code - 字符的ACSII码 示例:string str=WORL + CharToStr(44); / 44 is code for D/ resulting string will be WORLDstring DoubleToStr( double value, int digits)将双精度浮点型转换成字符串型结果返回 : 输入参数value - 浮点型数字digits - 小数点后多少

46、位,0-8 示例:string value=DoubleToStr(1.28473418, 5);/ value is 1.28473double NormalizeDouble( double value, int digits) 将双精度浮点型格式化后结果返回 : 输入参数value - 浮点型数字digits - 小数点后多少位,0-8 示例:double var1=0.123456789;Print(NormalizeDouble(var1,5);/ output: 0.12346double StrToDouble( string value)将字符串型转换成双精度浮点型结果返回 :

47、 输入参数value - 数字的字符串 示例:double var=StrToDouble(103.2812);int StrToInteger( string value)将字符串型转换成整型结果返回 : 输入参数value - 数字的字符串 示例:int var1=StrToInteger(1024);datetime StrToTime( string value) 将字符串型转换成时间型结果返回,输入格式为 yyyy.mm.dd hh:mi : 输入参数value - 时间的字符串 示例:datetime var1;var1=StrToTime(2003.8.12 17:35);var

48、1=StrToTime(17:35); / returns with current datevar1=StrToTime(2003.8.12); / returns with midnight time 00:00string TimeToStr( datetime value, int mode=TIME_DATE|TIME_MINUTES)将时间型转换成字符串型返回 : 输入参数value - 时间的数字,从1970.1.1 0:0:0 到现在的秒数mode - 返回字符串的格式 TIME_DATE(yyyy.mm.dd),TIME_MINUTES(hh:mi),TIME_SECONDS

49、(hh:mi:ss) 示例:strign var1=TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS);公用函数 Common Functionsvoid Alert( . ) 弹出一个显示信息的警告窗口: 输入参数. - 任意值,如有多个可用逗号分割 示例:if(Close0SignalLevel)Alert(Close price coming , Close0,!);string ClientTerminalName()返回客户终端名称示例:Print(Terminal name is ,ClientTerminalName();string Comp

50、anyName()返回公司名称示例:Print(Company name is ,CompanyName();void Comment( . )显示信息在走势图左上角 : 输入参数. - 任意值,如有多个可用逗号分割 示例:double free=AccountFreeMargin();Comment(Account free margin is ,DoubleToStr(free,2),n,Current time is ,TimeToStr(CurTime();int GetLastError()取最后错误在错误中的索引位置示例:int err;int handle=FileOpen(somefile.dat, FILE_READ|FILE_BIN);if(handle1)err=GetLastError();Print(error(,err,): ,ErrorDescription(err);return(0);int GetTickCount()取时间标记,函数取回用毫秒标示的时间标记。示例:int start=GetTickCount();/ do some hard calculation.Print(Calculation time is , GetTickCount

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!