教你如何在mql4中进行数据哈希运算 - 页 3 1234567 新评论 Alexandr Bryzgalov 2013.09.28 13:01 #21 Reshetov:问题是,间接费用可以计算,但你无法看到其背后的利润。 我已经盈利了,而且不差钱,这都是加密的问题。 Alexandr Bryzgalov 2013.09.28 13:03 #22 TheXpert:首先,它不是SHA256,是HMAC SHA512。 它是在BTC-e上 Yury Reshetov 2013.09.28 13:09 #23 sanyooooook: 我已经在获利了,而且不差钱,这只是一个加密的问题。这条信息之后,再想加密获利就太晚了:敲诈者已经知道了,很快就会停下来。而且他们没花多长时间就找到了:郊区那座没有屋顶的房子就是sanyooooook 加密利润的地方。 Alexandr Bryzgalov 2013.09.28 13:20 #24 Reshetov:这条信息之后,再想加密利润就太晚了:敲诈者已经知道了,很快就会停下来。而且他们不需要找很久:郊区没有屋顶的房子就是sanyooooook 加密利润的地方。"我们不惧怕灰狼") TheXpert 2013.09.28 14:06 #25 sanyooooook: 这是在BTC-e上。明白了。顺便说一句,你不应该害怕。顺便说一下,对于winapi,你必须先编写工作代码,然后将其翻译成mql。而用mql写的东西,是一个独立的程序...意思是什么?如果你不想学习Sharp,你就必须学习Python。如果你想要钱,你将不得不学习。 Alexandr Bryzgalov 2013.09.28 14:48 #26 TheXpert:明白了。顺便说一句,你不应该害怕。顺便说一下,对于winapi,你必须先编写工作代码,然后将其翻译成mql。而用mql写的东西,是一个独立的程序...意思是什么?你不想学Sharp,就学Python吧。你想要面团,你就得学习。妈的,看看这个。 1.交换api,以json格式发送一个帖子请求(json不难)。2.在这个查询中,部分数据是散列的,这里我有一个问题,但这不是一个问题。 我想明白了(暂时我通过输入数据的愚蠢散列推迟了代码的实施)。3.这个东西不会发送任何东西,也许我做错了帖子?//+------------------------------------------------------------------+ //| POSTBTCE.mq4 | //| Copyright © 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <stdlib.mqh> #import "wininet.dll" #define INTERNET_OPEN_TYPE_DIRECT 0 #define INTERNET_OPEN_TYPE_PRECONFIG 1 #define INTERNET_OPEN_TYPE_PROXY 3 // Had to cut the following two defines because of silly MQL4 identifier limits #define _IGNORE_REDIRECT_TO_HTTP 0x00008000 #define _IGNORE_REDIRECT_TO_HTTPS 0x00004000 #define INTERNET_FLAG_KEEP_CONNECTION 0x00400000 #define INTERNET_FLAG_NO_AUTO_REDIRECT 0x00200000 #define INTERNET_FLAG_NO_COOKIES 0x00080000 #define INTERNET_FLAG_RELOAD 0x80000000 #define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000 #define INTERNET_FLAG_DONT_CACHE 0x04000000 #define INTERNET_FLAG_PRAGMA_NOCACHE 0x00000100 #define INTERNET_FLAG_NO_UI 0x00000200 #define HTTP_ADDREQ_FLAG_ADD 0x20000000 #define HTTP_ADDREQ_FLAG_REPLACE 0x80000000 #define INTERNET_SERVICE_HTTP 3 #define INTERNET_DEFAULT_HTTP_PORT 80 #define ICU_ESCAPE 0x80000000 #define ICU_USERNAME 0x40000000 #define ICU_NO_ENCODE 0x20000000 #define ICU_DECODE 0x10000000 #define ICU_NO_META 0x08000000 #define ICU_ENCODE_PERCENT 0x00001000 #define ICU_ENCODE_SPACES_ONLY 0x04000000 #define ICU_BROWSER_MODE 0x02000000 #define AGENT "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)" #define BUFSIZ 128 #define REQUEST_FILE "_req.txt" ////////////// PROTOTYPES bool InternetCanonicalizeUrlA(string lpszUrl, string lpszBuffer, int& lpdwBufferLength[], int dwFlags); int InternetOpenA(string sAgent, int lAccessType, string sProxyName="", string sProxyBypass="", int lFlags=0); int InternetOpenUrlA(int hInternetSession, string sUrl, string sHeaders="", int lHeadersLength=0, int lFlags=0, int lContext=0); int InternetReadFile(int hFile, string sBuffer, int lNumBytesToRead, int& lNumberOfBytesRead[]); int InternetCloseHandle(int hInet); int InternetConnectA(int handle, string host, int port, string user, string pass, int service, int flags, int context); bool HttpSendRequestA(int handle, string headers, int headersLen, int& optional[], int optionalLen); bool HttpAddRequestHeadersA(int handle, string headers, int headersLen, int modifiers); int HttpOpenRequestA(int hConnect, string lpszVerb, string lpszObjectName, string lpszVersion, string lpszReferer, string& lplpszAcceptTypes[], int dwFlags, int dwContext); #import //////// CODE bool HttpGET(string strUrl, string& strWebPage) { int hSession = InternetOpenA(AGENT, INTERNET_OPEN_TYPE_DIRECT, "0", "0", 0); int hReq = InternetOpenUrlA(hSession, strUrl, "0", 0, INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD, 0); if (hReq == 0) { return(false); } int lReturn[] = {1}; string sBuffer = ""; while (TRUE) { if (InternetReadFile(hReq, sBuffer, BUFSIZ, lReturn) <= 0 || lReturn[0] == 0) { break; } strWebPage = StringConcatenate(strWebPage, StringSubstr(sBuffer, 0, lReturn[0])); } InternetCloseHandle(hReq); InternetCloseHandle(hSession); return (true); } /////////// POST bool HttpPOST(string host, string script, string params[][], string filenames[][], string& strWebPage) { int hIntrn = InternetOpenA(AGENT, INTERNET_OPEN_TYPE_DIRECT, "0", "0", 0); if (hIntrn == 0) { return (false); } int hConn = InternetConnectA(hIntrn, host, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, NULL); if (hConn == 0) { return (false); } int dwOpenRequestFlags = // _IGNORE_REDIRECT_TO_HTTP | // _IGNORE_REDIRECT_TO_HTTPS | // INTERNET_FLAG_KEEP_CONNECTION | // INTERNET_FLAG_NO_AUTO_REDIRECT | // INTERNET_FLAG_NO_COOKIES | // INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_UI | INTERNET_FLAG_RELOAD; string accept[] = {"Accept: text/*\r\n"}; int hReq = HttpOpenRequestA(hConn, "POST", script, "HTTP/1.0", NULL, accept, dwOpenRequestFlags, NULL); string strBoundary = "---------------------------HOFSTADTER"; string strContentHeader = "Content-Type: multipart/form-data; boundary=" + strBoundary; HttpAddRequestHeadersA(hReq, strContentHeader, StringLen(strContentHeader), HTTP_ADDREQ_FLAG_REPLACE); int i = 0, idx = 0, r = 0, len = 0 ; string hdr = ""; int _req = FileOpen(REQUEST_FILE, FILE_BIN|FILE_WRITE); if(_req <= 0) { return (false); } // Add parameters to request body for (i = ArrayRange(params, 0) - 1; i >= 0; i--) { hdr = StringConcatenate( "--", strBoundary, "\r\n", "Content-Disposition: form-data; name=\"", params[i][0], "\"\r\n\r\n", params[i][1], "\r\n"); FileWriteString(_req, hdr, StringLen(hdr)); } // Add files to request body for (i = ArrayRange(filenames, 0) - 1; i >= 0; i--) { hdr = StringConcatenate( "--", strBoundary, "\r\n", "Content-Disposition: form-data; name=\"", filenames[i][0], "\"; filename=\"", filenames[i][1], "\"\r\n", "Content-Type: application/octet-stream\r\n\r\n"); FileWriteString(_req, hdr, StringLen(hdr)); int handle = FileOpen(filenames[i][1], FILE_BIN|FILE_READ); if(handle <= 0) { return (false); } len = FileSize(handle); for (int b = 0; b < len; b++) { FileWriteInteger(_req, FileReadInteger(handle, CHAR_VALUE), CHAR_VALUE); } FileClose(handle); } string boundaryEnd = "\r\n--" + strBoundary + "--\r\n"; FileWriteString(_req, boundaryEnd, StringLen(boundaryEnd)); FileClose(_req); // Re-reads saved POST data byte-to-byte from file in the pseudo-character array // we need to send with HttpSendRequestA. This is due to the fact I know no clean // way to cast strings _plus_ binary file contents to a character array in MQL. // If you know how to do it properly feel free to contact me. int request[]; _req = FileOpen(REQUEST_FILE, FILE_BIN|FILE_READ); if (_req <= 0) { return (false); } len = FileSize(_req); ArrayResize(request, len); ArrayInitialize(request, 0); for (i = 0; i < len; i++) { request[r] |= FileReadInteger(_req, CHAR_VALUE) << (idx * 8); idx = (idx + 1) %4; if (idx == 0) { r++; } } FileClose(_req); if (!HttpSendRequestA(hReq, NULL, 0, request, len)) { return (false); } // Read response int lReturn[] = {1}; string sBuffer = ""; while (TRUE) { if (InternetReadFile(hReq, sBuffer, BUFSIZ, lReturn) <= 0 || lReturn[0] == 0) { break; } strWebPage = StringConcatenate(strWebPage, StringSubstr(sBuffer, 0, lReturn[0])); } InternetCloseHandle(hReq); InternetCloseHandle(hConn); InternetCloseHandle(hIntrn); return (true); } //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- string params[2][2]; params[0][0] = "key1"; params[0][1] = "value1"; params[1][0] = "key2"; params[1][1] = "value2"; // for multiple file upload string filenames[2][2]; filenames[0][0] = "uploaded1"; // name of form field for file upload filenames[0][1] = "test1.txt"; // file name in experts/files/ subfolder filenames[1][0] = "uploaded2"; filenames[1][1] = "test2.txt"; string response; string Signature="DZeZIy/6H6fXGPEk8sdfgYJOYl0gGIlfivZqcfjbIzKk="; string s="{"+CharToStr(34)+"Login"+CharToStr(34)+":"+CharToStr(34)+"B8yQVM4tGWijT"+CharToStr(34)+"," +CharToStr(34)+"Wmid"+CharToStr(34)+":"+CharToStr(34)+""+CharToStr(34)+"," +CharToStr(34)+"Culture"+CharToStr(34)+":"+CharToStr(34)+"ru-RU"+CharToStr(34)+"," +CharToStr(34)+"Signature"+CharToStr(34)+":"+CharToStr(34)+Signature+CharToStr(34)+"}";Print(s); HttpPOST("https://secure.indx.ru/api/v1/tradejson.asmx", s, params, filenames, response); Print(response); //---- return(0); } //+------------------------------------------------------------------+ Alexandr Bryzgalov 2013.09.28 14:50 #27 一旦你可以发送请求,你就可以准备好一套交易功能 了。葵花籽,但它不会返回任何东西给我((!字符串在请求时是正确的,但我一定是使用了错误的POST函数。 TheXpert 2013.09.28 14:57 #28 sanyooooook: 所以我说用任何正常的语言来写,并找出问题所在,然后把它翻译成MQL。 Yury Reshetov 2013.09.28 19:15 #29 sanyooooook:3.这个虫灾不想发任何东西,也许我做错了帖子?... string response; string Signature="DZeZIy/6H6fXGPEk8sdfgYJOYl0gGIlfivZqcfjbIzKk="; string s="{"+CharToStr(34)+"Login"+CharToStr(34)+":"+CharToStr(34)+"B8yQVM4tGWijT"+CharToStr(34)+"," +CharToStr(34)+"Wmid"+CharToStr(34)+":"+CharToStr(34)+"364823817435"+CharToStr(34)+"," +CharToStr(34)+"Culture"+CharToStr(34)+":"+CharToStr(34)+"ru-RU"+CharToStr(34)+"," +CharToStr(34)+"Signature"+CharToStr(34)+":"+CharToStr(34)+Signature+CharToStr(34)+"}";Print(s); HttpPOST("https://secure.indx.ru/api/v1/tradejson.asmx", s, params, filenames, response); ... 实际上,在GET和POST请求中,所有的东西都是以:id=value的形式传递的,也就是说,参数名称和值都有一个等号。另外,所有非拉丁字母和数字的字符都用%(字符代码)进行编码。 也就是说,如果我们假设数组params存储了所传递参数的标识符,那么变量s肯定也应该是一个相同大小的数组,以传递与参数对应的值? Alexandr Bryzgalov 2013.09.28 19:34 #30 Reshetov:也就是说,如果我们假设params数组存储了要传递的参数的标识符,那么s变量肯定也是一个相同大小的数组,以传递与参数对应的值?你在问我吗? 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
问题是,间接费用可以计算,但你无法看到其背后的利润。
首先,它不是SHA256,是HMAC SHA512。
我已经在获利了,而且不差钱,这只是一个加密的问题。
这条信息之后,再想加密获利就太晚了:敲诈者已经知道了,很快就会停下来。而且他们没花多长时间就找到了:郊区那座没有屋顶的房子就是sanyooooook 加密利润的地方。
这条信息之后,再想加密利润就太晚了:敲诈者已经知道了,很快就会停下来。而且他们不需要找很久:郊区没有屋顶的房子就是sanyooooook 加密利润的地方。
这是在BTC-e上。
明白了。顺便说一句,你不应该害怕。顺便说一下,对于winapi,你必须先编写工作代码,然后将其翻译成mql。而用mql写的东西,是一个独立的程序...意思是什么?
如果你不想学习Sharp,你就必须学习Python。如果你想要钱,你将不得不学习。
明白了。顺便说一句,你不应该害怕。顺便说一下,对于winapi,你必须先编写工作代码,然后将其翻译成mql。而用mql写的东西,是一个独立的程序...意思是什么?
你不想学Sharp,就学Python吧。你想要面团,你就得学习。
妈的,看看这个。
1.交换api,以json格式发送一个帖子请求(json不难)。
2.在这个查询中,部分数据是散列的,这里我有一个问题,但这不是一个问题。 我想明白了(暂时我通过输入数据的愚蠢散列推迟了代码的实施)。
3.这个东西不会发送任何东西,也许我做错了帖子?
一旦你可以发送请求,你就可以准备好一套交易功能 了。
葵花籽,但它不会返回任何东西给我((!
字符串在请求时是正确的,但我一定是使用了错误的POST函数。
sanyooooook:
3.这个虫灾不想发任何东西,也许我做错了帖子?
实际上,在GET和POST请求中,所有的东西都是以:id=value的形式传递的,也就是说,参数名称和值都有一个等号。另外,所有非拉丁字母和数字的字符都用%(字符代码)进行编码。
也就是说,如果我们假设数组params存储了所传递参数的标识符,那么变量s肯定也应该是一个相同大小的数组,以传递与参数对应的值?
也就是说,如果我们假设params数组存储了要传递的参数的标识符,那么s变量肯定也是一个相同大小的数组,以传递与参数对应的值?
你在问我吗?