//+------------------------------------------------------------------+
//| monitor.mq4 |
//| Copyright 2025, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
// 定義全局變量芽卿,用于記錄上一次訂單數(shù)量
int lastOrderCount = 0;
// 初始化函數(shù)
int OnInit()
{
lastOrderCount = OrdersTotal(); // 獲取當(dāng)前訂單總數(shù)
return INIT_SUCCEEDED;
}
// 每個 Tick 執(zhí)行一次
void OnTick()
{
// 獲取當(dāng)前訂單總數(shù)
int currentOrderCount = OrdersTotal();
// 如果訂單數(shù)量增加,說明有新訂單
if (currentOrderCount > lastOrderCount)
{
// 遍歷訂單北苟,找到新開的訂單
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) // 選擇訂單
{
// 檢查訂單是否是新訂單
if (OrderOpenTime() > TimeCurrent() - 10) // 假設(shè)訂單在最近 10 秒內(nèi)打開
{
// 獲取訂單信息
string symbol = OrderSymbol();
double lotSize = OrderLots();
double price = OrderOpenPrice();
string orderType = (OrderType() == OP_BUY) ? "BUY" : "SELL";
// 轉(zhuǎn)換開單時間為UTC時間
datetime openTimeUTC = OrderOpenTime() - TimeGMTOffset();
string openTimeUTCStr = TimeToString(openTimeUTC, TIME_DATE | TIME_MINUTES);
// 打印日志(可選)
PrintFormat("New Order Detected: %s %s Lot: %.2f Price: %.5f Open Time (UTC): %s",
orderType, symbol, lotSize, price, openTimeUTCStr);
// 定義 API 地址
string apiUrl = "http://127.0.0.1:8000/api/ainance/mt/receive_order";
// 將訂單信息發(fā)送到 HTTP API
SendOrderToAPI(apiUrl, symbol, lotSize, price, orderType, openTimeUTCStr);
}
}
}
}
// 更新訂單數(shù)量
lastOrderCount = currentOrderCount;
}
// 發(fā)送訂單信息到 HTTP API 的函數(shù)
void SendOrderToAPI(string url, string symbol, double lotSize, double price, string orderType, string openTimeUTC)
{
// 構(gòu)造 JSON 數(shù)據(jù)
string jsonData = StringFormat(
"{\"symbol\": \"%s\", \"lot_size\": %.2f, \"price\": %.5f, \"order_type\": \"%s\", \"open_time_utc\": \"%s\"}",
symbol, lotSize, price, orderType, openTimeUTC
);
// 將 JSON 數(shù)據(jù)轉(zhuǎn)換為 UTF-8 編碼的字符數(shù)組
char postData[];
ArrayResize(postData, 0); // 清空數(shù)組
StringToCharArray(jsonData, postData, 0, StringLen(jsonData), CP_UTF8);
// 設(shè)置請求頭
string headers = "Content-Type: application/json";
// 發(fā)送 HTTP 請求
char result[];
string resultHeaders;
string cookie = "";
int timeout = 5000;
int responseCode = WebRequest("POST", url, headers, cookie, timeout, postData, ArraySize(postData), result, resultHeaders);
if (responseCode == 200)
{
// 請求成功掌桩,解析響應(yīng)內(nèi)容
string response = CharArrayToString(result);
Print("數(shù)據(jù)發(fā)送成功圆凰,后端返回:", response);
}
else
{
// 請求失敗,打印錯誤信息
PrintFormat("HTTP 請求失敗褒翰!響應(yīng)代碼:%d欲间,錯誤代碼:%d", responseCode, GetLastError());
Print("Response Headers: ", resultHeaders);
}
}
MT4賬號監(jiān)測
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門苏携,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人对粪,你說我怎么就攤上這事右冻。” “怎么了著拭?”我有些...
- 文/不壞的土叔 我叫張陵纱扭,是天一觀的道長。 經(jīng)常有香客問我儡遮,道長乳蛾,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任鄙币,我火速辦了婚禮肃叶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘十嘿。我一直安慰自己因惭,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布绩衷。 她就那樣靜靜地躺著蹦魔,像睡著了一般激率。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上版姑,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼么介!你這毒婦竟也來了娜遵?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布芝雪,位于F島的核電站,受9級特大地震影響综苔,放射性物質(zhì)發(fā)生泄漏惩系。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一休里、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赃承,春花似錦妙黍、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽可免。三九已至,卻和暖如春做粤,著一層夾襖步出監(jiān)牢的瞬間浇借,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 當(dāng)你持倉很多個品種的時候涨薪,你會發(fā)現(xiàn)持倉單子太多,分不清楚哪個品種有沒有整體盈利炫乓,某個品種的成本價是多少刚夺。持倉了多久...
- 一年前發(fā)布的MT4版纏中狩獵纏論工具包,外匯MT4版纏論工具包和之前通達(dá)信版本實現(xiàn)邏輯完全一致末捣,參數(shù)設(shè)置用法完全一...
- 專業(yè)MT4歷史盈虧統(tǒng)計指標(biāo)侠姑,可以統(tǒng)計的數(shù)據(jù)太多了。 包含有按日統(tǒng)計塔粒、按周統(tǒng)計结借、按月統(tǒng)計、按年統(tǒng)計卒茬,統(tǒng)計盈利率船老、準(zhǔn)確...
- 前言 Google Play應(yīng)用市場對于應(yīng)用的targetSdkVersion有了更為嚴(yán)格的要求。從 2018 年...
- """1.個性化消息: 將用戶的姓名存到一個變量中圃酵,并向該用戶顯示一條消息柳畔。顯示的消息應(yīng)非常簡單,如“Hello ...