خب قصه اینطوری شد که این روزا بدجوری ذهنم آشفته بود
فلذا نشستم پای یک چالش کدنویسی که خودم برای خودم درستش کردم
اول از همه بگم که واقعا chatgpt بی نظیره و در تهیه این چند خط کد خیلی منو یاری کرد
اما در نهایت کد ایراداتی داشت که دیگه از دست چت جی پی تی هم بر نمیومد :دی
نه که بر نیاد ، مشکل اینجا بود که اون نمی فهمید من چی میگم :)
شاید هم من بلد نبودم درست بهش بگم چی میخوا :)
بهر حال انی وی
خب در متاتریدر 4 یک کامند سطح بالایی داریم به اسم WebRequest
این تابع به سختی کار میکنه ( برای اینکه بیشتر متوجه داستان سختی هاش بشین پیشنهاد میکنم این عبارت رو سرج کنین :
WebRequest 4029
تا ببینین یک دنیا رو اسیر و علاف خودش کرده اما خب درنهایت درست شد
این تابع به خوبی کار میکنه
یک جدول لازم داریم با این مشخصات که توی دیتابیس باید درست کنیم :
CREATE DATABASE forex_trading;
USE forex_trading;
CREATE TABLE lost_trades (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
ticket INT(11) NOT NULL,
type VARCHAR(50) NOT NULL,
profit DOUBLE NOT NULL,
reg_date TIMESTAMP
);
اون سمت یک کد PHP میخواد که در سمت سرور باید اجرا بشه :
// اطلاعات دیتابیس
$servername = "localhost";
$username = "****"; // نام کاربری دیتابیس شما
$password = "CVdRgSQc9Zrpwk4mK6ng"; // پسورد دیتابیس شما
$dbname = "****"; // نام دیتابیس شما
// دریافت دادهها از درخواستGET
$ticket = $_GET['ticket'];
$type = $_GET['type'];
$profit = $_GET['profit'];
// اتصال به دیتابیس
$conn = new mysqli($servername, $username, $password, $dbname);
// بررسی اتصال
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// ذخیره دادهها در دیتابیس
if($ticket !='')
{
$sql = "INSERT INTO lost_trades (ticket, type, profit) VALUES ('$ticket', '$type', '$profit')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "
" . $conn->error;
}
}
else
{
echo "Not thing ! ";
}
$conn->close();
?>
سمت متا تریدر هم این تابع رو به برنامه اضافه میکنیم .
void SendLostTradeData(int ticket, string type, double profit) {
string url = "http://api.***.ir/store_lost_trades.php?"+
"ticket=" + IntegerToString(iTime(NULL,PERIOD_CURRENT,0)) + "&type=" + type + "&profit=" + DoubleToString(Ask, Digits); // دادهها
string headers ="Content-Type: application/x-www-form-urlencoded\r\nUser-Agent: MetaTrader/4.00\r\n"; // هدر درخواست
int timeout = 5000; // مدت زمان انتظار
char data[];
char result[]; // آرایهای برای ذخیره نتیجه درخواست
string result_headers = ""; // هدرهای پاسخ سرور
int res = WebRequest("GET", url, headers, timeout, data, result, result_headers);
if (res != -1) {
string resultText = CharArrayToString(result); // تبدیل پاسخ به رشته
Print("Data sent successfully: ", resultText); // اگر درخواست موفق بود
} else {
Print("Failed to send data. Error code: ", GetLastError()); // اگر درخواست با خطا مواجه شد
}
}
همینا دیگه ، حالا اینا چه کمکی میکنه و اینا ، قصه اش طولانیه
اما خب امیدوارم تو حالت خوب باشه گل من :)
دوستت دارم
مواظبت خودت باشی