· 6 years ago · May 11, 2019, 01:22 AM
1<?php
2
3/*
4
5Ðеобходимо напиÑать php class, который будет принимать get-Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸ отправлÑть другой get Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² ÑоответÑтвии Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ уÑловиÑми, а также делать необходимые проверки
6Ð”Ð»Ñ Ð¿Ñ€Ð¸ÐµÐ¼Ð° и отправки GET-запроÑов иÑпользовать https://github.com/guzzle/guzzle
7Ðеобходимо реализовать запиÑÑŒ информации о запроÑах в БД и вывод информации из базы данных.
8
9Ðеобходимо реализовать проÑтой роутинг:
10 1. https://api.sitename.ru/class.php?action=dashboard вывод информации о вÑех запроÑах (Ñтавках)
11 2. https://api.sitename.ru/class.php?action=request на данный маршрут будут отправлÑтьÑÑ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ð¹ GET-запроÑ
12
13Формат входного GET-запроÑа Ñледующий: https://sitename.ru/class.php?action=request&request=signal&signal_from=названиеиÑточника&order_type=типордера&symbol=валютнаÑпара(например frxEURUSD)
14
15API binaryteam.ru Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð·Ð´ÐµÑÑŒ: https://docs.google.com/document/d/1BNQIC42N31q_DZx1fSLMCDYeGOB1cFAL3OAd1V8oDZ4/edit
16
17
18
19КлаÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ работать Ñ Ð¼Ð°ÑÑивом пользователей $users, который Ñодержит Ñледующую информацию:
20
21$users = array(
22 'aleksv' => array(
23 'username' => 'aleksv', // Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ
24 'user_status' => 'active', // ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (active или stopped)
25 'trading' => true, // разрешена Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð¸Ð»Ð¸ нет
26 'type_account' => 'demo', // тип аккаунта Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñтавки (demo или real)
27 'duration' => '3m', // продолжительноÑть (Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации Ñтавки)
28 'bet_amount' => (int)1, // Ð¿ÐµÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñумма Ñтавки в USD
29 'martingale' => true, // разрешено иÑпользовать мартингейл или нет на Ñледующий Ñигнал
30 'trade_in_expiration' => false, // разрешено отправлÑть новый Ñигнал по одной и той-же валютной паре, еÑли Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации предыдущего контракта не вышло и результат не извеÑтен
31 'martingale_steps' => (int)2, // количеÑтво колен мартингейл
32 'apikey' => '2101823462323f9e97107f9c9481162d', // ключ binaryteam Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñтавок
33 ),
34 'roman' => array(
35 'username' => 'roman',
36 'user_status' => 'stopped',
37 'trading' => true,
38 'type_account' => 'demo',
39 'duration' => '3m',
40 'bet_amount' => (int)1,
41 'martingale' => true,
42 'trade_in_expiration' => false,
43 'martingale_steps' => (int)2,
44 'apikey' => '',
45 )
46);
47
48
49ПоÑле Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ñщего GET-запроÑа необходимо Ñоздать объект клаÑÑа Request Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ параметрами:
50
51$user = new Request ($params);
52
53и вызвать метод: $user->sendbet_api();
54
55### ПроверÑем, активен пользователь или нет, разрешена Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð¸Ð»Ð¸ нет, еÑть ключ API или нет. ЕÑли пользователь active, Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ true и еÑть APIKEY выполнÑем программу дальше
56
57### Далее проверÑем:
58
59
60
61 0. Сценарий первый: в базе данных нет еще никаких Ñтавок
62 -----------------------
63 Тогда, ÑохранÑем полученную информацию из входÑщего GET-запроÑа в БД, ÑеÑÑию, затем отправлÑем иÑходÑщий GET-Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐµÑ€Ð²Ð¸Ñ https://api.binaryteam.ru/?request=signal&key=".$this->apikey."&type_account=".$this->type_account."&bet=".$signal."&symbol=".$this->symbol."&duration=".$this->duration."&amount=".$this->bet_amount , получаем $binaryteam_betid, ждем 5 Ñекунд, вызываем метод $user->bet_info($binaryteam_betid, $apikey) отправлÑем повторный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐµÑ€Ð²Ð¸Ñ binaryteam, получаем полную информацию по контракту $binaryteam_betid($contract_id) и ÑохранÑем информацию в БД.
64
65
66
67 1. Сценарий второй:
68 -----------------------
69 Ð’ базе данных еÑть Ñтавки Ñ Ñ‚Ð°ÐºÐ¾Ð¹-же валютной парой и таким-же полем signal_from как мы получили из входÑщего GET-запроÑа.
70 Ð”Ð»Ñ Ð²Ñех Ñтавок Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации закончилоÑÑŒ(нет активных контрактов) и поÑледнÑÑ Ñтавка "ВЫИГРÐЛР- result =1"
71
72 Тогда необходимо выполнить дейÑÑ‚Ð²Ð¸Ñ Ð¾Ð¿Ð¸Ñанные в - 0. Сценарий первый
73
74
75
76
77 2. Сценарий третий:
78 -----------------------
79 Ð’ базе данных еÑть Ñтавки Ñ Ñ‚Ð°ÐºÐ¾Ð¹-же валютной парой и таким-же полем signal_from как мы получили из входÑщего GET-запроÑа.
80 Ð”Ð»Ñ Ð²Ñех Ñтавок Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации закончилоÑÑŒ(нет активных контрактов) и поÑледнÑÑ Ñтавка "ПРОИГРÐЛР- result =2"
81
82 Тогда проверÑем $this->martingale и $this->martingale_steps. ЕÑли $this->martingale = false, тогда необходимо выполнить дейÑÑ‚Ð²Ð¸Ñ Ð¾Ð¿Ð¸Ñанные в - 0. Сценарий первый
83
84 ЕÑли ( $this->martingale = true && $this->martingale_steps >= 1 )? Тогда необходимо выполнить дейÑÑ‚Ð²Ð¸Ñ Ð¾Ð¿Ð¸Ñанные в - 0. Сценарий первый (Ñохранить информацию и открыть контракт удвоенной Ñтавкой: $this->bet_amount *2 Ñто на шаге 1(Ñохранить результат в ÑеÑÑию, каждый Ñледующий шаг, удваиваем предыдущий $this->bet_amount до тех пор, пока не закончатÑÑ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтво колен мартингейл). ЕÑли количеÑтво колен мартингейл закончилоÑÑŒ, Ñ‚.е мы прошли веÑÑŒ цикл колен, тогда необходимо выполнить дейÑÑ‚Ð²Ð¸Ñ Ð¾Ð¿Ð¸Ñанные в - 0. Сценарий первый (открыть обычную Ñтавку) и так до Ñледующего проигрыша.
85
86
87
88 3. Сценарий четвертый:
89 -----------------------
90 Ð’ базе данных ЕСТЬ! Ñтавка(поÑледнÑÑ Ñтавка) Ñ Ñ‚Ð°ÐºÐ¾Ð¹-же валютной парой и таким-же полем signal_from как мы получили из входÑщего GET-запроÑа.
91 Ð”Ð»Ñ Ñтавки Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации еще закончилоÑÑŒ (результат не извеÑтен), тогда проверÑем:
92
93 1. $this->trade_in_expiration
94
95 ЕÑли значение $this->trade_in_expiration === true(разрешено отправлÑть новыю Ñтавку, пока Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации не вышло), то ÑохранÑем полученную информацию из входÑщего GET-запроÑа в БД, ÑеÑÑию, затем отправлÑем иÑходÑщий GET-Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐµÑ€Ð²Ð¸Ñ https://api.binaryteam.ru/?request=signal&key=".$this->apikey."&type_account=".$this->type_account."&bet=".$signal."&symbol=".$this->symbol."&duration=".$this->duration."&amount=".$this->bet_amount , получаем $binaryteam_betid, ждем 5 Ñекунд, вызываем метод $user->bet_info($binaryteam_betid, $apikey) отправлÑем повторный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐµÑ€Ð²Ð¸Ñ binaryteam, получаем полную информацию по контракту $binaryteam_betid($contract_id) и ÑохранÑем информацию в БД.
96
97 2. ЕÑли ($this->trade_in_expiration === false) - запрещено отправлÑть новыю Ñтавку, пока Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации не вышло, тогда ничего не делаем (проÑто игнорируем входÑщий GET-запроÑ)
98
99
100
101
102
103 Важный момент: Ð’Ñегда необходимо проверÑть ÑоответÑтвие иÑточника Ñигнала (signal_from) и валюты Ñигнала($this->symbol) из входÑщего GET-запроÑа Ñ Ð¿Ð¾Ñледней Ñтавкой в базе данных, Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же иÑточником Ñигнала и такой-же валютной паре.
104 -----------------------
105 Ðа Ñтранице: https://api.sitename.ru/class.php?action=dashboard необходимо выводить информацию о вÑех запроÑах (Ñтавках), которые были отправлены на Ñервер binaryteam
106
107 ПроверÑть результат Ñтавки по контракту, каждые 5-10 Ñекунд, не долбить каждую Ñекунду Ñервер binaryteam запроÑами
108 ОбновлÑть результаты Ñтавок в таблице /class.php?action=dashboard каждые 5-10 Ñекунд (через ajax - без перезагрузки Ñтраницы)
109
110
111
112
113
114
115
116*/
117
118
119
120
121
122
123
124
125
126
127
128
129 ini_set('display_errors', 1);
130 ini_set('display_startup_errors', 1);
131 ini_set('error_reporting', E_ALL);
132
133 require_once("vendor/autoload.php");
134
135 $db_host = 'localhost';
136 $db_name = 'binarysignals';
137 $db_user = 'binarysignals';
138 $db_password = '9P1a5V2j';
139
140 // ПодключаемÑÑ Ðº Ñерверу БД
141 $mysqli = new mysqli($db_host, $db_user, $db_password, $db_name);
142 $mysqli->set_charset("utf8");
143 if (!$mysqli) { die ('Connection error: ' . mysql_error()); }
144
145 $users = array(
146 'aleksv' => array(
147 'username' => 'aleksv',
148 'user_status' => 'active',
149 'trading' => true,
150 'type_account' => 'demo',
151 'duration' => '3m',
152 'bet_amount' => (int)1,
153 'martingale' => true,
154 'trade_in_expiration' => false,
155 'martingale_steps' => (int)2,
156 'apikey' => '2101823462323f9e97107f9c9481162d',
157 ),
158 'roman' => array(
159 'username' => 'roman',
160 'user_status' => 'stopped',
161 'trading' => true,
162 'type_account' => 'demo',
163 'duration' => '3m',
164 'bet_amount' => (int)1,
165 'martingale' => true,
166 'trade_in_expiration' => false,
167 'martingale_steps' => (int)2,
168 'apikey' => '',
169 )
170 );
171
172
173
174class Request {
175
176 public $username; // Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ
177 public $user_status; // ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (active или stopped)
178 public $trading; // разрешена Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŽ или нет
179 public $type_account; // тип аккаунта Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñтавки (demo или real)
180 public $duration; // продолжительноÑть (Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации Ñтавки)
181 public $bet_amount; // Ð¿ÐµÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñумма Ñтавки в USD
182 public $martingale; // разрешено иÑпользовать мартингейл или нет на Ñледующий Ñигнал
183 public $martingale_steps; // количеÑтво колен мартингейл
184 public $trade_in_expiration; // разрешено отправлÑть новый Ñигнал по одной и той-же валютной паре, еÑли Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации предыдущего контракта не вышло и результат не извеÑтен
185 public $apikey; // ключ binaryteam Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñтавок
186 public $response;
187 public $binaryteam_betid; // идентификатор Ñтавки в Json-ответе на Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñтавки (signal)
188 public $contract_id; // идентификатор Ñтавки в ÑервиÑе binaryteam
189 public $symbol; // Ð’Ð°Ð»ÑŽÑ‚Ð½Ð°Ñ Ð¿Ð°Ñ€Ð°, например frxEURUSD или frxAUDCAD
190 public $order_type; // тип ордера ORDER_TYPE_SELL, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY, ORDER_TYPE_BUY_LIMIT
191 public $signal; // Ñигнал Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ может быть только двух типов: PUT или CALL
192
193
194 public function index() {
195
196 echo "Ðто index";
197 /*
198
199 Получаем вÑе Ñтавки отправленные по API из БД и выводим в таблице на Ñтранице.
200 ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ ÑкÑпирации, получаем результат Ñтавки и обновлÑем информацию в БД. При выводе Ñтавок в таблице, у тех Ñтавок, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации не вышло должен работать таймер и отÑчитывать Ð²Ñ€ÐµÐ¼Ñ Ð´Ð¾ конца ÑкÑпирации (запроÑом через ajax к методу get_expiration_time каждую Ñекунду - метод опиÑать). Пример таблицы: http://skrinshoter.ru/s/090519/aNY8KwAC
201
202
203 */
204 }
205
206
207
208 public function __construct($params = null) {
209
210 if (!empty($params)) {
211 foreach($params as $key => $value)
212 {
213 $this->$key = $value;
214 }
215 }
216
217 }
218
219 public function sendbet_api() {
220
221 if ($this->user_status ==='active' && $this->trading === true && !empty($this->apikey)) {
222
223 /*
224 ПроверÑем, активен пользователь или нет, разрешена Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ Ð¸Ð»Ð¸ нет, еÑть ключ API или нет. ЕÑли пользователь active, Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð»Ñ true и еÑть APIKEY выполнÑем программу дальше
225
226 */
227
228 // echo "<pre>";
229 // print_r($user);
230 // echo "</pre>";
231
232 isset($_GET['symbol']) ? $this->symbol = $_GET['symbol'] : $this->symbol = '';
233 isset($_GET['order_type'])? $this->order_type = $_GET['order_type'] : $this->order_type = '';
234
235 if ($this->order_type === 'ORDER_TYPE_SELL') {
236 $this->signal = 'PUT';
237 } else if ($this->order_type === 'ORDER_TYPE_SELL_LIMIT') {
238 $this->signal = 'PUT';
239 } else if ($this->order_type === 'ORDER_TYPE_BUY') {
240 $this->signal = 'CALL';
241 } else if ($this->order_type === 'ORDER_TYPE_BUY_LIMIT') {
242 $this->signal = 'CALL';
243 } else {
244 $this->signal = '';
245 }
246
247 // https://api.sitename.ru/class.php?action=request&request=signal&order_type=ORDER_TYPE_SELL&symbol=frxAUDCAD
248
249
250
251
252 /*
253
254 Что необходимо Ñделать перед отправкой Ñигнала:
255
256 1. Проверить 'trade_in_expiration' => false, // разрешено отправлÑть новый Ñигнал по одной и той-же валютной паре, еÑли Ð²Ñ€ÐµÐ¼Ñ ÑкÑпирации предыдущего контракта не вышло и результат не извеÑтен
257
258 */
259
260
261
262
263
264 $client = new \GuzzleHttp\Client();
265 $response = $client->request('GET', "https://api.binaryteam.ru/?request=signal&key=".$this->apikey."&type_account=".$this->type_account."&bet=".$signal."&symbol=".$this->symbol."&duration=".$this->duration."&amount=".$this->bet_amount);
266
267 //echo $response->getStatusCode(); # 200
268 //echo $response->getHeaderLine('content-type'); # 'application/json; charset=utf8'
269 $response_body = json_decode($response->getBody()->getContents(), true);
270
271 echo "<pre>";
272 print_r($response_body);
273 echo "</pre>";
274
275
276// Ответить в фейÑбук
277
278 }
279 }
280
281
282
283
284
285 public function bet_info($binaryteam_betid, $apikey) {
286
287
288 $client = new \GuzzleHttp\Client();
289 $response = $client->request('GET', "https://api.binaryteam.ru/?request=report&key=".$apikey."&id=".$binaryteam_betid);
290 echo $response->getStatusCode(); # 200
291 echo $response->getHeaderLine('content-type'); # 'application/json; charset=utf8'
292 echo $response->getBody(); # '{"id": 1420053, "name": "guzzle", ...}'
293 $response_body = json_decode($response->getBody()->getContents());
294
295
296 echo "<pre>";
297 print_r($response_body);
298 echo "</pre>";
299
300
301
302
303
304 $this->__gwt = $gwt[1];
305 $this->__tkn = $tkn[1];
306 $this->__group_id = $group_id[1];
307
308 if(!$form_id[1] or empty($form_id[1]) or !$id[1] or empty($id[1]))
309 {
310 return false;
311 }
312
313 return array('group_id' => $group_id[1], 'form_id' => $form_id[1], 'tkn' => $tkn[1], 'gwt' => $gwt[1], 'id' => $id[1]);
314 }
315
316 private function login() {
317
318 }
319
320 static function auth($username, $password) {
321
322 }
323
324
325
326
327}
328
329
330
331
332
333
334
335
336
337
338
339if ($_GET['action']) {
340 $info = new Request ();
341}
342
343
344
345
346
347
348
349
350
351switch($_GET['action']) {
352 case "install" :
353
354
355 $sql = "CREATE TABLE IF NOT EXISTS `signals_list` (
356 `id` int not null AUTO_INCREMENT,
357 `contract_id` int(30) not null,
358 `symbol` varchar(255) not null,
359 `bet` varchar(255) not null,
360 `is_signal` varchar(255) not null,
361 `time_start` varchar(255) not null,
362 `time_end` varchar(255) not null,
363 `quote_start` varchar(255) not null,
364 `quote_end` varchar(255) not null,
365 `amount` varchar(255) not null,
366 `duration` varchar(255) not null,
367 `payout` varchar(255) not null,
368 `payout_perc` varchar(255) not null,
369 `payment` varchar(255) not null,
370 `result` varchar(255) not null,
371 `result_code` varchar(255) not null,
372 `start` varchar(255) not null,
373 `timeout` varchar(255) not null,
374 `end` varchar(255) not null,
375 `user_id` int(30) not null,
376 `user_name` varchar(255) not null,
377 `signal_provider` varchar(255) not null,
378 `signal_id` varchar(255) not null,
379 `signal_name` varchar(255) not null,
380 `signal_from` varchar(255) not null,
381 `send_telegram` text not null,
382 `send_sms` text not null,
383 `bet_comment` text not null,
384 `timezone` varchar(255) not null,
385 PRIMARY KEY (id)
386 )
387 ";
388
389 $result = $mysqli->query($sql);
390 //print_r($result) ;
391 if ($result) {
392 // echo "Создание таблицы завершено";
393 //header('HTTP/1.1 200 OK');
394 //header('Location: http://'.$_SERVER['HTTP_HOST'].'class.php?action=install');
395 } else {
396 echo "Таблицу Ñоздать не удалоÑÑŒ";
397 }
398
399 // if ($mysqli->query("SHOW TABLES LIKE signals_list")) {
400 // echo "Таблица ÑущеÑтвует в БД";
401 // }
402
403 break;
404
405 case "request" :
406
407 isset($_GET['request']) ? $request = $_GET['request'] : $request = '';
408 if ($request === 'signal') {
409
410 foreach ( $users as $user ) {
411
412 $user = new Request ([
413 'username' => $user['username'],
414 'user_status' => $user['user_status'],
415 'trading' => $user['trading'],
416 'type_account' => $user['type_account'],
417 'duration' => $user['duration'],
418 'bet_amount' => $user['bet_amount'],
419 'martingale' => $user['martingale'],
420 'trade_in_expiration' => $user['trade_in_expiration'],
421 'martingale_steps' => $user['martingale_steps'],
422 'apikey' => $user['apikey'],
423 ]);
424
425 // echo "<pre>";
426 // print_r($user);
427 // echo "</pre>";
428
429 $user->sendbet_api();
430 }
431
432
433
434 }
435
436 break;
437
438 case "dashboard" :
439
440 $info->index();
441 break;
442
443 default :
444
445 $info->index();
446 break;
447}
448
449
450
451
452
453
454/*
455
456{"request":"report","params":{"key":"2101823462323f9e97107f9c9481162d","id":"15095069"},"answer":{"profile":"pro","contract_id":"46557536688","symbol":"frxEURUSD","bet":"PUT","is_signal":"0","time_start":"1557235424","time_end":"1557264224","quote_start":"1.11803","quote_end":"0","amount":"30","payout":"58.23","payout_perc":"94","payment":"58.23","result":"0","result_code":"702","real":{"amount":"0.50","currency":"USD","percent":"0","depo_start":"0.5","depo_min":"0.5","depo_max":"0.5"},"demo":{"amount":"15642.44","currency":"USD","percent":"0","depo_start":"15730.7","depo_min":"15642.4","depo_max":"15732.4"}},"time":{"start":"2019-05-07 18:10:15","timeout":0.02103,"end":"2019-05-07 15:10:15"}}
457
458
459
460
461
462stdClass Object
463(
464 [request] => report
465 [params] => stdClass Object
466 (
467 [key] => 2101823462323f9e97107f9c9481162d
468 [id] => 15095069
469 )
470
471 [answer] => stdClass Object
472 (
473 [profile] => pro
474 [contract_id] => 46557536688
475 [symbol] => frxEURUSD
476 [bet] => PUT
477 [is_signal] => 0
478 [time_start] => 1557235424
479 [time_end] => 1557264224
480 [quote_start] => 1.11803
481 [quote_end] => 0
482 [amount] => 30
483 [payout] => 58.23
484 [payout_perc] => 94
485 [payment] => 58.23
486 [result] => 0
487 [result_code] => 702
488 [real] => stdClass Object
489 (
490 [amount] => 0.50
491 [currency] => USD
492 [percent] => 0
493 [depo_start] => 0.5
494 [depo_min] => 0.5
495 [depo_max] => 0.5
496 )
497
498 [demo] => stdClass Object
499 (
500 [amount] => 15642.44
501 [currency] => USD
502 [percent] => 0
503 [depo_start] => 15730.7
504 [depo_min] => 15642.4
505 [depo_max] => 15732.4
506 )
507
508 )
509
510 [time] => stdClass Object
511 (
512 [start] => 2019-05-07 17:55:27
513 [timeout] => 0.0432
514 [end] => 2019-05-07 14:55:27
515 )
516
517)
518
519
520
521*/