Est-il possible de superposer les cotations d'un autre courtier dans MT4 ? - page 4

 
getch >>:

Спреды в теории арбитража не при чем.


Tout le monde écrit de façon si mystérieuse, comme s'ils savaient quelque chose, mais sont silencieux))))) et ils écrivent qu'il n'y a pas de poisson)))) donc peut-être que vous devriez en parler aux utilisateurs, pour qu'ils ne perdent pas leur temps).
 
Tout le monde le fait. N'est-ce pas ?
 
zhuki >>:
Но открыться всё равно сложнее.Да и завершить хотелось бы положительно.

Tout est formalisé.

 
getch >>:

Это все формализовано.

Je connais votre travail et j'ai beaucoup de respect pour vos recherches. Merci.

 

Avez-vous essayé de lire non pas les cotations avec l'Expert Advisor mais de lire les paquets arrivant sur le port. Pour ainsi dire au moment de leur réception par MT4.

Vous voyez, afin d'augmenter la vitesse.

 

Ce sujet a été abordé dans ce forum et j'ai promis d'essayer d'écrire quelque chose d'utile à ce sujet. Il s'est avéré être le noyau universel d'un conseiller expert en arbitrage. Je n'ai rien fait d'autre sur le sujet.

Je pense que le délai entre la réception d'un tick par le terminal et son envoi au trader est proche de zéro.

Des améliorations possibles ont été suggérées. En fait, je considère que le sujet est intéressant, mais pas lorsqu'on le résout de front.

 
getch >>:

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

Думаю, что задержка между получением тика терминалом и отправкой его трейдеру близка к нулю.

Возможные доработки высказывал. Тему на самом деле вижу интересной, но не при решении в лоб.

Merci. Je l'ai eu.

 
Fduch >>:

Саму программу не смотрел, я писал собственную реализацию (приложение на c#, которое принимает через сокеты котировки и рассылает приказы терминалам).

Да и вопрос не в реализации, а в применении на практике. Пар ДЦ, подходящих для арбитража, я так до сих пор и не встретил.

Si vous le voulez bien, postez un exemple de code. (Exemple de code qui obtient des citations via des sockets).

 
fevrall >>:

Если не сложно выложите пример кода. (Пример кода, котрый получает котировки через сокеты).

Malheureusement, il est inutile sans le reste du code =)

Le langage utilisé est le c#.

        /// <summary>
        /// Метод обработки входящих соединений
        /// </summary>
        public override void ProceedSocket( object objSocket)
        {
            string dealingCenterName = "";
            Socket socket = ( Socket) objSocket;
            #region ProcessingSocket
            {
                #region GetMessage
                string incomingMessage = "";
                byte[] buffer = new byte[10000];
                Console. WriteLine("Recieving data from socket..");
                int recieved = 0;
                while (( recieved = socket. Receive( buffer)) != 0)
                {
                    Console. WriteLine("Recieved "+ Convert. ToString( recieved));
                    string str = "";
                    for (int k = 0; k < buffer. Length; k++)
                        str = str + Convert. ToChar( buffer[ k]);
                    incomingMessage = incomingMessage + str;
                    if ( str. Contains("\r\n\r\n") == true)
                        break;
                }
                #endregion

                lock ( DealingCentersDictionary)
                {
                    #region UpdateMarketsInfo
                    // Обновляем инфу в ServerMarketInstruments
                    string[] instruments = incomingMessage. Split("\r\n". ToCharArray());
                    // Выбирам дилинговый центр
                    dealingCenterName = instruments[0];
                    Console. WriteLine("Proceeding " + dealingCenterName + " socket");
                    if ( DealingCentersDictionary. ContainsKey( dealingCenterName) == false)
                        DealingCentersDictionary. Add( dealingCenterName, new Market());
                    Market CurrentDCInstruments = DealingCentersDictionary[ dealingCenterName];
                    // Обновляем котировки
                    for (int k = 1; k < instruments. Length; k++)
                    {
                        string s = instruments[ k];
                        string[] data = s. Split(';');
                        if ( data. Length == 3 && data[0] != "" && data[1] != "" && data[2] != "")
                        {
                            string ticket = data[0];
                            double ask = Convert. ToDouble( data[1]. Replace(".", ","));
                            double bid = Convert. ToDouble( data[2]. Replace(".", ","));
                            if ( CurrentDCInstruments. Instruments. ContainsKey( ticket) == false)
                            {
                                CurrentDCInstruments. Instruments. Add( ticket, new Instrument());
                            }
                            CurrentDCInstruments. Instruments[ ticket]. CurrentState.Ask = ask;
                            CurrentDCInstruments. Instruments[ ticket]. CurrentState.Bid = bid;
                        }
                    }
                    #endregion
                }

                #region Answer
                byte[] byteAnswer = new byte[300];
                socket. Send( byteAnswer);
                #endregion
            }
            #endregion
            socket.Close();
            Console. WriteLine("Closed " + dealingCenterName + " socket");
        }

Juste pour avoir une idée de ce que signifie exactement "le reste du code" :


Et tout cela est vraiment inutile car il n'y a pas de situations d'arbitrage.

Getch, merci. Je vais ajouter une méthode pour vérifier les synthétiques. Je n'y avais pas pensé...

 
Fduch >>:


И все это действительно бесполезно, т.к. арбитражных ситуаций нет.


Je suis intéressé par l'idée même d'obtenir des devis via une prise de courant. Merci, je jetterai un coup d'oeil plus tard.

Raison: