Скачать MetaTrader 5

В общем мониторинга счета через веб. [Что-то сидел хотел напрямую пхп со счетом соединить в обход терминала, как-то не очень.. ]

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересуют возможности MQL5? Загляни в документацию!
Dmitry
811
Dmitry 2008.12.26 21:30 
Господа, никто не замарачивался? Что-то сидел хотел напрямую пхп со счетом соединить в обход терминала, как-то не очень.. :(
Марк
392
Марк 2008.12.26 21:42  

это вы хотите торговать со своего сервера посредством пхп?

Что именно не получилось? Каналы не найдены? с++ отлично дружите?

Eduard
235
Eduard 2008.12.26 23:54  
Была уже тема, судя по всему автор ее уже убил, в связи с кучей негатива в теме. Краткое резюме - в обход никак, публичного апи доступа к серверу не опубликовано. Если я не прав, пусть метаквотс поправят. Язык не важен, хоть forth хоть brainfuck был бы API.
Yuriy Zaytsev
13903
Yuriy Zaytsev 2008.12.27 03:44  
TedBeer >>:
Была уже тема, судя по всему автор ее уже убил, в связи с кучей негатива в теме. Краткое резюме - в обход никак, публичного апи доступа к серверу не опубликовано. Если я не прав, пусть метаквотс поправят. Язык не важен, хоть forth хоть brainfuck был бы API.

API дают некоторые брокеры ...

---

METAQUOTES API не дают... и видимо никогда не дадут



не вам лично TedBeer


да и зачем оно API, при неплохом терминале и хорошем языке


но если уж API

кто мешает делать конструкцию типа


    CountRates1  =   ArrayCopyRates(  dest_array1 , Symbol() , PERIOD_M15  )  ; // копируем весь массив таймсерии
    CountRates2  =   ArrayCopyRates(  dest_array2 , Symbol() , PERIOD_M30  )  ; // копируем весь массив таймсерии
    CountRates3  =   ArrayCopyRates(  dest_array3 , Symbol() , PERIOD_MH1  )  ; // копируем весь массив таймсерии
    CountRates4  =   ArrayCopyRates(  dest_array4 , Symbol() , PERIOD_MH4  )  ; // копируем весь массив таймсерии
    CountRates5  =   ArrayCopyRates(  dest_array5 , Symbol() , PERIOD_MD1  )  ; // копируем весь массив таймсерии
    CountRates6  =   ArrayCopyRates(  dest_array6 , Symbol() , PERIOD_MW1  )  ; // копируем весь массив таймсерии
 
//
    затем вызыват ьсвой API

//
   signal = MyAPI( dest_array1,dest_array2,... );  // тут  вызываем свой волшебный API
   if ( signal == OP_BUY )
   {
   }
   if ( signal == OP_SELL )
   {
   }  

и творить внутри своего API вызова секретные вещи которые - не получается реализовать в MQL4


оставив терминалу лишь


доступ к счету

и работу с ордерами !


и вынести всю боевую логику расчетов в свой любимый Си++ или DELPHI или кто на чем пишет


я не вижу никаких проблем в этом пути

Вот Вам и API, отсутствием которого так любят потакать фирму METAQUOTES

пожалуйста ! реализуйте никаких проблем!

они сделали все - что мы мы могли использовать API


зачем мне возится в API с проблемами открытия ордера - обработкой ошибок - входа на счет ? мне важно сосредоточиться

на логике работы МТС а не ковырятся с проблемами почему и как вылетела ошибка при запросе открыть ордер

путь на эту тему голова болит у METAQUOTES, тем более это у них на высоте

---


очень удобно

и защита от декомпилятора тут великолепная и скорость тестирования повыше

впрочем тестер лучше свой писать под свою тс - быстрее будет - мне к примеру универсальность тестера не нужна

но и тестер у них отличный!

пусть хоть кто то покажет лучше!



---

резюме


кто то может пояснить внятно! - зачем API доступ ?

Yuriy Zaytsev
13903
Yuriy Zaytsev 2008.12.27 05:07  

Как вариант


пример из документации по API одного из брокеров!


попробуйте прочитав это скудное описание, что то реализовать!

сравните этот кусок обрезанной - я бы сказал кастрированной информации

с той массой информации которая есть по MQL


первая же серьезная проблема и желание писать под API конкретно одного брокера пропадет

- написав под одного брокера

для другого придется все переделывать

так как у него будет совсем другой API интерфейс

Файлы:
examples.zip 663 kb
Винсент
644
Винсент 2008.12.27 05:48  
YuraZ >>:

но если уж API

кто мешает делать конструкцию типа


и творить внутри своего API вызова секретные вещи которые - не получается реализовать в MQL4


оставив терминалу лишь


доступ к счету

и работу с ордерами !


и вынести всю боевую логику расчетов в свой любимый Си++ или DELPHI или кто на чем пишет


спасибо за идею Юрий, объясните только ещё немного ламеру: что делать с функцией MyAPI? вернее как её оформить-то, как включаемый файл что-ли?


чо-то никак не въеду как код написанный, скажем, на с++ подключить к эксперту...


ЗЫ: а... врубился, я ж совсем забыл про импорт функций... :)


ЗЗЫ: а протестировать-то в стандартном тестере можно будет такую конструкцию (ну и прооптимизировать)?

Yuriy Zaytsev
13903
Yuriy Zaytsev 2008.12.27 06:20  
Vinsent_Vega >>:

спасибо за идею Юрий, объясните только ещё немного ламеру: что делать с функцией MyAPI? вернее как её оформить-то, как включаемый файл что-ли?


чо-то никак не въеду как код написанный, скажем, на с++ подключить к эксперту...

это я назвал образно функцию

да имеется ввиду создание API на Си++ или чем то еще

все необходимые примеры имеются в стандартной поставке - там найдите пример experts\samples\DLLSample

вот к примеру реализация передачи High Low в свою функцию на Си++


#import "YZAPI.DLL"

int YurazAPIBlackBoxSecurety ( double &m[][6],int ); // оформляем

#


double dest_array[][6];

start()

{


CountRates = ArrayCopyRates( dest_array, Symbol(), PERIOD_D1 ) ; // копируем весь массив таймсерии - конечно на каждом тике не стоит - это как пример

// тут надо обработать 4066 ошибку


int signal = YurazAPIBlackBoxSecurety ( Array_m, CountRates ) ; // вызываем


if ( signal == OP_BUY )

{

// имеем сигнал

}

// ... и т д

}


----------

а это код на Си вашей функции API


#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>


#include <io.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>

//----
#define MT4_EXPFUNC __declspec(dllexport)



#pragma pack(push,1)
struct RateInfo
{
unsigned int ctm;
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)


BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
//----
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
//----
return(TRUE);
}


//

MT4_EXPFUNC double __stdcall YurazAPIBlackBoxSecurety (
const RateInfo* rates
,const int rates_total
)

{


// вот тут и происходит самое тайное и волшебное вычисления филоЗовского камня

// .. cod = 1 ; // допустим бай .. cod = 0 ; // допустим селл .. cod = -1; // нет сигнала

// делаем некие вычисления и получаем сигнал



return ( cod );

}


---

Винсент
644
Винсент 2008.12.27 06:52  

YuraZ писал(а) >>

CountRates = ArrayCopyRates( dest_array, Symbol(), PERIOD_D1 ) ; // копируем весь массив таймсерии - конечно на каждом тике не стоит - это как пример


а как же их (таймсерии) тады передавать если не на каждом тике... эдак и протестировать буит нельзя нормально... хотя можно же вроде и не всю таймсерию передавать, а только нужное кол-во данных... (я уж не помню какую там функцию надо использовать)

Yuriy Zaytsev
13903
Yuriy Zaytsev 2008.12.27 07:20  
Vinsent_Vega >>:

а как же их (таймсерии) тады передавать если не на каждом тике... эдак и протестировать буит нельзя нормально... хотя можно же вроде и не всю таймсерию передавать, а только нужное кол-во данных... (я уж не помню какую там функцию надо использовать)

Верно ну тайм серию достаточно загнать разок!

я просто пример привел!

конечно гнать ее туда на каждом тике не стоит

--

вопрос с какой целью Вы хотите идти в API ?

чего нет в MQL ?

Винсент
644
Винсент 2008.12.27 14:16  
YuraZ >>:

вопрос с какой целью Вы хотите идти в API ?

чего нет в MQL ?

да конкретной цели пока нету... так, на будущее, если вдруг понадобится...

зы: я просто имел в виду, что если, у нас типа индикатор написан на другом языке, то не обязательно загонять в него всю таймсерию на каждом тике, можно скажем только для N последних баров...

Dmitry
811
Dmitry 2008.12.27 14:20  

Интересно. Но вот есть же примеры, реализации мониторинга, например на ониксе или там тоже через терминал?

По идее через терминал сделать можно, но если счетов несколько, то надо как-то будет переконнекчиваться к разным серверам. Блин, можно, но как-то оно через "универсальный интерфейс"..

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий