Torin писал(а):На освоение С++ могут году уйти, а поставленная задача не очевидна, что хоть как-то повлияет на прибыльность. Поэтому я бы даже не рассматривал её как перспективную. Понятно, что трейдеру хочется всё перепробовать, но пока не разберешься в природе цен, то о прибылях мечтать остается.
#property copyright "Copyright © 2016, Mr.SilverKZ"
#property link "silverkaz@mail.ru"
//--------------------------------------------------------------------
input string Login = ""; // Login my account Myfxbook
input string Password = ""; // Password my account Myfxbook
//--------------------------------------------------------------------
int PrevTime;
string session;
//--------------------------------------------------------------------
int init()
{
//---
Comment("");
//---
return(0);
//---
}
//--------------------------------------------------------------------
int deinit()
{
//---
Comment("");
//--- Logout
string logout = Request("https://www.myfxbook.com/api/logout.xml?session="+session);
//---
return(0);
//---
}
//--------------------------------------------------------------------
int start()
{
//---
if (Login == "" || Password == "")
{
Comment("Введите логин и пароль для входа в аккаунт www.myfxbook.com!");
return(0);
}
//--- New bar
if (Time[0] <= PrevTime) return(0);
PrevTime = Time[0];
//--- Login to your account, creates a new session
session = Request("https://www.myfxbook.com/api/login.xml?email="+Login+"&password="+Password, "session");
if (session == "")
{
Comment("Ошибка входа в аккаунт www.myfxbook.com!");
return(0);
}
//--- Get my accounts
string my_account_name = Request("https://www.myfxbook.com/api/get-my-accounts.xml?session="+session, "name");
//--- Get watched accounts
string get_watched_account = Request("https://www.myfxbook.com/api/get-watched-accounts.xml?session="+session, "name");
//---
Comment("Ответ сервера \n",
"session_id: ", session, "\n",
"my account name: ", my_account_name, "\n",
"watched account name: ", get_watched_account);
//---
//---
return(0);
//---
}
//--------------------------------------------------------------------
// END
//--------------------------------------------------------------------
// Request
//--------------------------------------------------------------------
string Request(string url, string key = "")
{
//---
char post[], result[];
string cookie = NULL, headers;
string str = "";
string error_result[];
int timeout = 5000;
string response = "";
ResetLastError();
if(WebRequest("GET", url, cookie, NULL, timeout, post, 0, result, headers) == -1)
{
Print("Ошибка в WebRequest. Код ошибки = ",GetLastError());
MessageBox("Необходимо добавить адрес 'https://www.myfxbook.com/' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION);
return(response);
}
str = CharArrayToString(result);
if (StringLen(str) == 0) return(response);
//--- Parser
if (key != "")
{
int start_pos, end_pos;
start_pos = StringFind(str, "<"+key+">");
if (start_pos == -1) return(response);
start_pos = start_pos + StringLen("<"+key+">");
end_pos = StringFind(str, "</"+key+">");
response = StringSubstr(str, start_pos, end_pos - start_pos);
}
//---
return(response);
//---
}
//--------------------------------------------------------------------
Рэндом писал(а):Я этого не знаю. Но подозреваю нужна библиотека для работы с HTML.
Рэндом писал(а):В MQL нет штатных средств для этого. К тому же есть готовые библиотеки для работы с XML.
Print("Ответ сервера \n",
"session_id: ", session, "\n",
"my account name: ", my_account_name, "\n",
"watched account name: ", get_watched_account);
Get Community outlook
Parameter Description
session Session id
*Currency values are represented in USD ($).
Request:
http://www.myfxbook.com/api/get-community-outlook.xml?session=DSL07vu14QxHWErTIAFrH40
Response (example only):
<response error="false" message="">
<community-outlook>
<symbols>
<symbol>
<name>EURUSD</name>
<shortPercentage>55</shortPercentage>
<longPercentage>44</longPercentage>
<shortVolume>1142.58</shortVolume>
<longVolume>905.47</longVolume>
<longPositions>2932</longPositions>
<shortPositions>3888</shortPositions>
<totalPositions>2048</totalPositions>
<avgShortPrice>1.3808</avgShortPrice>
<avgLongPrice>1.4097</avgLongPrice>
</symbol>
</symbols>
<general>
<demoAccountsPercentage>43</demoAccountsPercentage>
<realAccountsPercentage>56</realAccountsPercentage>
<profitablePercentage>54</profitablePercentage>
<nonProfitablePercentage>45</nonProfitablePercentage>
<fundsWon>6,819,251.63</fundsWon>
<fundsLost>-8,740,646.15</fundsLost>
<averageDeposit>21,740.16</averageDeposit>
<averageAccountProfit>4,127.88</averageAccountProfit>
<averageAccountLoss>-5,290.95</averageAccountLoss>
<totalFunds>35,914,737.56</totalFunds>
</general>
</community-outlook>
</response>
string getcommunityoutlookre = Request("https://www.myfxbook.com/api/get-community-outlook.xml?session="+session, "realAccountsPercentage");
string get_watched_account = Request("https://www.myfxbook.com/api/get-community-outlook.xml?session="+session, "totalFunds");
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 92
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения