воскресенье, 6 мая 2018 г.

Servidor dde forex


Exportar dados ao vivo para o Excel.
Coloque esses códigos em células individuais do Excel.
Altere o símbolo para cruzes diferentes.
Você também precisará ir em Ferramentas / Opções e marcar a caixa DDE.
Você vê que eu preciso disso para usar esses dados em uma rede neural.
Coloque esses códigos em células individuais do Excel.
Altere o símbolo para cruzes diferentes.
Você também precisará ir em Ferramentas / Opções e marcar a caixa DDE.
Você cria um arquivo para cada par?
O que você nomeia?
Pelas respostas estou chegando parece que pode ser que eu não estou me fazendo muito claro ..
Eu quero começar o dia com uma folha de excel vazia, enquanto os minutos passam, eu quero os valores para o dia, hora, abrir, alta, baixa, fechar e volume para aparecer em cada linha da minha planilha do excel.
Este é um link para uma pasta de trabalho do Excel que eu configurei que usa o mt4 dde ..

Interação entre 4 e Matlab via DDE.
Introdução.
Eu já publiquei um artigo sobre troca de dados entre 4 e Matlab via arquivos CSV (4 & lt; - CSV - & gt; Matlab) aqui. No entanto, a abordagem descrita no artigo é, em muitos casos, impraticável e, muitas vezes, inaceitável.
O mecanismo de DDE (troca de dados dinâmicos) suportado em 4 nos permite transferir dados de um aplicativo para outro diretamente através da RAM do computador. O Matlab tem a funcionalidade completa para realizar tanto o front end quanto o back end do DDE, então gostaríamos de aproveitar ao máximo essa oportunidade.
4 O servidor DDE fornece apenas os últimos dados de escala. No entanto, mesmo considerando tais limitações, o DDE é mais preferível quando, por exemplo, trabalhamos com aspas dentro das barras.
Como no artigo de "4 & lt; - CSV - & gt; Matlab", descreverei a sequência de criação de uma ferramenta de organização de troca.
Não se esqueça de ativar o servidor DDE nas Ferramentas - & gt; Opções - & gt; Guia do servidor no seu 4 Terminal Cliente, e podemos começar.
Assim, na organização da troca de dados usando o DDE, há dois fins (front end e back end) entre os quais a conexão será estabelecida. O front-end é um aplicativo que solicita dados (no nosso caso, o Matlab), o back-end é um aplicativo que possui esses dados à sua disposição (4).
Os dados podem ser transferidos do servidor para o cliente via DDE de três maneiras:
- a pedido do cliente,
- por solicitação do cliente e após o servidor ter notificado que os dados foram preparados para transferência, ou.
- após os dados estarem prontos para serem transferidos.
Assim que os dados chegar, mostraremos apenas em um gráfico.
Criando uma GUI.
No ambiente Matlab, existe a possibilidade de criar uma interface gráfica do usuário (GUI). Uma vez criada uma GUI, combinaremos nela todos os controles, gráficos de preços e informações textuais que consideramos necessárias para exibir.
A criação de uma GUI é descrita com mais detalhes na seção 3 do artigo “4 & lt; - CSV - & gt; Matlab”, portanto, mencionarei aqui apenas o comando do console chamado “guide” que inicia o Assistente de criação da GUI e também darei a lista de objetos gráficos que precisamos.
Assim, precisamos do seguinte:
- caixa de entrada “Edit Text” para inserir o nome do par de moedas;
- “Eixos” para exibir o gráfico;
- dois campos de saída de texto "Texto estático" para exibir o valor exato da última cotação ou para outra coisa.
É mostrado abaixo como eu coloquei os objetos em uma folha GUI:
Você deve definir as propriedades gráficas do objeto da seguinte forma:
Tag = axesChart (exibiremos o gráfico aqui);
Box = on - inclui a área do gráfico em um retângulo completo, fora - inclui a área do gráfico com uma linha esquerda e uma linha inferior;
FontSize = 7 (o tamanho padrão é apenas enorme);
Unidades = pixels (precisaremos disso no gráfico para definir a escala de 1: 1).
Tag = editPair (vamos inserir o nome do par de moedas neste campo).
Tag = textBid (vamos inserir o valor exato da última citação aqui);
HorizontalAlignment = left (isto não é muito importante, você pode deixá-lo como 'center').
Agora podemos pressionar RUN.
Eu nomeei meu projeto "DDEs", então se você quiser que sua versão não tenha nenhuma discrepância com a minha, por favor nomeie o seu projeto da mesma forma.
Se a aparência da sua GUI combina com você e o arquivo m está pronto para edição, vamos começar a criar um cliente DDE.
Conexão Inicializando.
Primeiro de tudo, você deve organizar o canal para se conectar ao servidor ao iniciar a GUI e cuidar das quebras de conexão ao fechar a interface.
No Matlab, a conexão DDE é inicializada pela função: channel = ddeinit ('service', 'topic'),
"Serviço" - nome do servidor DDE ("4")
'topic' - nome de uma seção de dados. No nosso caso, pode receber os valores de "BID", "ASK", "QUOTE" etc.
A função retorna o descritor do canal inicializado. Este descritor será usado para outras conversas com o servidor DDE.
Você também deve especificar o método de troca. No Matlab, o método de troca suportado pelo 4 é chamado de “Advisory link” e inicializado pela função: rc = ddeadv (canal, 'item', 'callback', 'upmtx', format); ,
canal - descritor do canal inicializado,
"Item" - dados nos quais estamos interessados, ou seja, o nome do símbolo de um par de moedas,
'callback' - uma linha a ser executada no momento da chegada dos dados do servidor,
'upmtx' - nome do símbolo da variável para colocar os dados recebidos do servidor,
formato - matriz de dois sinalizadores, que define o formato dos dados enviados.
A função ddeadv retorna “1” se for bem sucedida; caso contrário, retorna "0".
Por favor, não que uma expressão de símbolo seja dada como o parâmetro "callback", não um descritor de função. De fato, executaremos a função “eval” que executa a linha como se tivesse sido digitada em um console. Esse recurso produz a seguinte dificuldade: Na chegada de uma nova cotação, temos que executar uma grande função recebendo a nova cotação. Ao mesmo tempo, gostaríamos de passar para essa função a estrutura de descritores “handles” que será usada para obter acesso aos objetos gráficos da GUI. No entanto, não encontrei nenhum método de passar o descritor de estrutura de handles para a linha executável nem a maneira de chamar a função localizada no arquivo m que descreve a GUI.
Tudo isso resultou em que eu tive que colocar a nova função de recepção de cotação em um arquivo m separado e chamá-la como uma função normal do Matlab. No entanto, o inconveniente acabou por ser uma vantagem depois que eu descobri que poderia editar a função de processamento sem interromper as operações do cliente DDE.
Assim, em primeiro lugar, vamos criar uma função de processamento separada que exibirá apenas os dados recebidos no console.
% novo processamento de ticks.
disp (simbols); % exibe o argumento no console.
song = wavread ('C: \ WINDOWS \ Mídia \ Windows XP - launch. wav'); % leu o som.
wavplay (música, 40000); % toca o som com a taxa de amostragem de 40 kHz.
A função exemplificativa acima também reproduzirá o arquivo 'C: \ WINDOWS \ Mídia \ Windows XP - launch. wav' assim que chegar uma nova cotação. Salve o texto da função como newTick. m no diretório de trabalho do MATLAB.
Agora vamos editar o arquivo m descrevendo o comportamento da nossa GUI. Adicione a inicialização de conexão para a função DDEs_OpeningFcn e deinitialization será adicionado à função figura1_CloseRequestFcn.
(Para adicionar a função CloseRequestFcn ao arquivo m, você deve executar o seguinte no editor de GUI: View - & gt; View Callbacks - & gt; CloseRequestFcn).
% --- Executa logo antes de os DDEs serem visíveis.
função DDEs_OpeningFcn (hObject, eventdata, handles, varargin)
% Esta função não possui argumentos de saída, consulte OutputFcn.
% hObject handle para figura.
% eventdata reserved - a ser definido em uma versão futura do MATLAB.
% lida com estrutura com alças e dados do usuário (veja GUIDATA)
% varargin argumentos da linha de comando para DDEs (consulte VARARGIN)
par = get (handles. editPair, 'UserData'); % leu o nome do símbolo.
rc = ddeadv (canal, par, 'newTick (x)', 'x', [1 1]); % estabelecer conexão.
if (rc == 1)% se a conexão foi estabelecida,
disp ('Conectado'); % informar o console.
handles. chann = canal; % salvar o ID do canal em alças.
% Atualizar estrutura de identificadores.
% UIWAIT faz DDEs aguardar resposta do usuário (consulte UIRESUME)
% --- é executado quando o usuário tenta fechar a figura1.
function figure1_CloseRequestFcn (hObject, eventdata, handles)
% hObject handle para figure1 (consulte GCBO)
% eventdata reserved - a ser definido em uma versão futura do MATLAB.
% lida com estrutura com alças e dados do usuário (veja GUIDATA)
par = get (handles. editPair, 'UserData'); % leu o nome do símbolo.
rc = ddeterm (canal); % de desinicialização.
if (rc == 1)% se tudo estiver OK.
disp ('Desconectado'); % informar o console.
% --- Executa durante a criação do objeto, depois de definir todas as propriedades.
função editPair_CreateFcn (hObject, eventdata, handles)
% hObject handle para editPair (consulte GCBO)
% eventdata reserved - a ser definido em uma versão futura do MATLAB.
% lida com identificadores vazios não criados até que todos os CreateFcns sejam chamados.
set (hObject, 'UserData', 'EURUSD'); % No UserData do campo de entrada - salve.
% Consulte ISPC e COMPUTER.
if ispc & amp; & amp; isequal (get (hObject, 'BackgroundColor'), get (0, 'defaultUicontrolBackgroundColor'))
Eu dei acima os textos completos das funções de modificação junto com o texto preparado para funções de esqueleto vazias pelos desenvolvedores do Matlab.
O último bloco insere o nome do símbolo no campo correspondente antes que a GUI seja iniciada. A entrada será copiada para a propriedade 'UserData'. Sempre usaremos a cópia em 'UserData', enquanto usaremos apenas o nome exibido no campo ('String') se o usuário tentar alterar a segurança. Se o usuário tiver se enganado ao digitar e um nome errado tiver sido escrito em 'String', retornaremos ao nome armazenado em 'UserData'.
O código abaixo realiza a função de alteração do nome do símbolo do usuário:
função editPair_Callback (hObject, eventdata, handles)
% hObject handle para editPair (consulte GCBO)
% eventdata reserved - a ser definido em uma versão futura do MATLAB.
% lida com estrutura com alças e dados do usuário (veja GUIDATA)
newPair = get (hObject, 'String'); % novo nome do símbolo.
canal = handles. chann; % obtém o ID do canal.
if (disconn == 0)% se você não conseguir desconectar.
set (hObject, 'String', oldPair); % restaura o nome antigo do símbolo no campo de entrada.
mais% se diconnected.
conn = ddeadv (canal, newPair, 'newTick (x)', 'x', [1 1]); % estabelecer uma nova conexão.
if (conn == 1)% se a conexão for estabelecida.
set (hObject, 'UserData', newPair); % memoriza qual símbolo é usado.
senão% se você falhar em estabelecer uma nova conexão.
ddeadv (canal, oldPair, 'newTick (x)', 'x', [1 1]); % restaurar o antigo.
set (hObject, 'String', oldPair); % restaura o nome antigo do símbolo no campo de entrada.
% str2double (get (hObject, 'String')) retorna o conteúdo do editPair como um double.
Recebendo carrapatos.
Considere que a conexão é estabelecida e, na chegada de um novo tick, a função "newTick (x)" é chamada de "sela" o argumento recebido de 4 em um console. Primeiro, vamos exibir a última cotação recebida na linha correspondente da nossa GUI.
Para isso, devemos ter uma estrutura de descritores de objetos gráficos da GUI - as alças estão à disposição da função "newTick". Vamos usar a função setappdata (h, name, value) que salva os dados no domínio do aplicativo. Especifique "0" como o ID do aplicativo. É o descritor do objeto 'root' do Matlab, é invariante, então podemos sempre conhecê-lo.
Adicione a linha de "setappdata (0, 'hndls', handles);" imediatamente após o título da função "DDEs_OpeningFcn":
função DDEs_OpeningFcn (hObject, eventdata, handles, varargin)
Agora, na função "newTick", podemos extrair as alças pela função de value = getappdata (h, name), tendo especificado "0" como o argumento de "h". Então, poderemos gerenciar os objetos da GUI a partir da função "newTick".
Em seguida, transformamos o argumento de string passado para a função do servidor DDE e exibimos o valor de Bid na GUI. Além disso, detectamos a hora local de receber a cotação e também a exibimos, mas na barra de status da GUI. A hora local é necessária, pois o servidor DDE passa o tempo com precisão de até minutos, o que é inaceitável para trabalhar com marcações. A função 'now' retorna a hora local com precisão de até frações de um milissegundo, portanto, não ficaremos preocupados com o fato de que os ticks diferentes terão o mesmo tempo corrigido. Também extrairemos o tempo do servidor da linha recebida do servidor DDE e transformaremos no formato de hora do Matlab.
Abaixo está mais um exemplo da função "newTick":
% NOVO PROCESSAMENTO INTIGO.
handles = getappdata (0, 'hndls'); % Receber identificadores da raiz.
song = wavread ('C: \ WINDOWS \ Mídia \ Windows XP - launch. wav'); % leu o som.
wavplay (música, 40000); % toca o som com a taxa de amostragem de 40 kHz.
partes = sscanf (simbols, '% i /% i /% i% i:% i% f% f'); % estudando a linha de acordo.
% para o formato: int / int / int int: int float float.
timeServerVect = partes (1: 5); % extrair o tempo.
timeServerVect = timeServerVect '; % transpose (coluna na linha)
timeServerVect = [timeServerVect 00]; % some segundos.
timeServer = datenum (timeServerVect); % de transformação no formato de hora do Matlab.
Oferta = partes (6); % extrair lance.
Peça = partes (7); % extrair Ask.
% --- fim da transformação ---
Aqui está a continuação da função "newTick" que foi iniciada acima. O código é fornecido com comentários detalhados, então, suponho, não será nenhum problema para você fazer a cabeça ou cauda dele.
Apenas explicarei que a matriz de cotações de lance, como a das alças, é armazenada na área de objeto 'raiz', mas salva como "dados". Os dados armazenados representam uma estrutura que consiste em dois campos:
data. name - nome do símbolo de um par de moedas;
data. array - cita o próprio array.
Na função "newTick", esses dados aparecem sob o nome de "ticks" e os campos da estrutura têm os nomes de ticks. name e ticks. array, respectivamente.
ticks. array representa um array que consiste em três colunas:
- hora local no formato de hora do Matlab (com precisão suportada pelo Matlab [microssegundos]);
- horário do servidor no formato de hora do Matlab (com precisão para minutos);
A função "newTick" esvazia a matriz de cotações, se o nome do símbolo no campo "editPair" foi alterado e as cotações de outro símbolo começaram a chegar. Se isso não mudou, linhas são adicionadas ao array existente.
O bloco de operações com o gráfico define os parâmetros (tamanho e posição) da janela de eixos e extrai a largura da janela em pixels a partir deles. Isso é necessário para o programa definir a escala horizontal da exibição - uma cotação em um pixel.
Se houver menos citações do que pixels na largura da janela, o gráfico será desenhado como um todo. Se houver mais citações do que pixels, somente os dados mais recentes que couberem no gráfico serão exibidos.
% --- trabalhando com array de citações ---
GUIpairName = get (handles. editPair, 'UserData'); % nome do símbolo.
isappdata (0, 'data'))% se não houver dados.
ticks. name = GUIpairName; % forma o campo de nome.
ticks. array = []; % forma um campo - uma matriz vazia.
setappdata (0, 'dados', carrapatos); % escreve os dados na raiz.
ticks = getappdata (0, 'dados'); % extrair dados.
strcmp (ticks. name, GUIpairName)% se o nome foi alterado.
ticks. name = GUIpairName; % forma o campo de nome.
ticks. array = []; % forma um campo - uma matriz vazia.
setappdata (0, 'dados', carrapatos); % escreve os dados na raiz.
ticks. array = [ticks. array; timeLocal timeServer Bid]; % adiciona uma linha.
% contendo os novos dados para o array de dados existente.
setappdata (0, 'dados', carrapatos); % escreve os dados na raiz.
% --- fim de trabalhar com a matriz ---
chartSize = get (handles. axesChart, 'Position');% obtém o tamanho da janela do gráfico.
chartSize = chartSize (3); % extrair a largura da janela do gráfico.
lenArray = size (ticks. array); % obtém o tamanho da matriz de dados.
lenArray = lenArray (1); % extrair a quantidade de linhas na matriz de dados.
% do gráfico antigo com um novo.
escadas (handles. axesChart, ticks. array (:, 3)); % desenha o gráfico inteiro.
% exibe o último ajuste de dados no gráfico.
set (handles. axesChart, 'XLim', [1 chartSize]); % set the scale - uma contagem.
% em um pixel de largura.
set (handles. axesChart, 'NextPlot', 'add'); % modo de desenho - adicionando.
plot (handles. axesChart, [1 chartSize], [Bid Bid], 'm');% desenhar o lance horizontal.
A última função a ser descrita é salvar dados de ticks em um arquivo por solicitação do usuário.
Vamos salvar os dados pressionando um botão, então adicione o objeto "Push Button" ao formulário GUI usando o editor.
Defina as seguintes propriedades de objeto: Tag = pushSave, String = Save.
Ao pressionar o botão "M-file Editor", o modelo da função pushSave_Callback será adicionado ao final do "DDEs. m" automaticamente.
Abaixo está o texto completo da função que salva os dados:
% --- Executa com o botão pressionado no pushSave.
função pushSave_Callback (hObject, eventdata, handles)
% hObject handle to pushSave (consulte GCBO)
% eventdata reserved - a ser definido em uma versão futura do MATLAB.
% lida com estrutura com alças e dados do usuário (veja GUIDATA)
date = datestr (agora, 'aaaa-mm-dd'); % conhecer a data (string)
time = datestr (agora, 'HH-MM-SS')% conhece o tempo (string)
name = get (handles. editPair, 'UserData');% conhece o nome do símbolo (string)
template = [nome '@' data '@' hora]; % forma o nome do arquivo.
[userName, userPath] = uiputfile ([modelo '.txt']); % obtém o nome e o caminho do usuário.
= 0% se "Cancelar" não for pressionado.
ticks = getappdata (0, 'dados'); % obtém os dados da raiz.
% de hora e data.
bidStr = num2str (ticks. array (:, 3)); % form string array chamado BID.
delimStr (1: length (bidStr)) = ''; % forma um separador "coluna".
Mais exatamente, forma uma linha que será transposta para uma coluna.
matrix = [timesStr delimStr 'bidStr]; % gather escreve todos os Str em uma matriz.
dlmwrite ([userPath userName], matriz, '');% salva a matriz em um arquivo.
A função prepara o nome do arquivo que consiste na data, hora e nome do símbolo da segurança.
Na gravação, as matrizes de símbolos são preliminarmente preparadas:
- timesStr - hora local e data correspondente com as aspas;
- bidStr - coluna BID.
Então todos eles estão unidos em uma matriz.
delimStr representa uma linha que consiste em espaços; o comprimento da linha é igual ao comprimento da coluna BID. Na fusão, a linha delimStr é transposta para uma coluna e separa a coluna de cotações da hora.
Conclusão.
Espero que o método descrito acima permita que você use toda a abundância de funções matemáticas no Matlab para desenvolver e testar suas estratégias de negociação automatizadas.
Traduzido do russo por MetaQuotes Software Corp.

Exportação de Cotações.
Os dados de origem que servem de base para todo o trabalho analítico do usuário do terminal são aqueles relacionados às alterações nos preços de segurança. Esta informação é fornecida pela corretora. Os dados de preços permitem desenhar gráficos de símbolos, pesquisar nos mercados financeiros, usar várias táticas comerciais e tomar decisões comerciais. As cotações representam arquivos com registros no formato de & quot; SYMBOL, BID, ASK, DATE & quot; (símbolo de segurança, preço de compra, preço de venda, data e hora) e renda no terminal automaticamente assim que a conexão com o servidor tiver sido estabelecida.
O terminal permite exportar as cotas atuais para outros programas no modo de tempo real através de & quot; DDE & quot; Protocolo (Dynamic Data Exchange). Este é um protocolo de sistemas operacionais do MS Windows usado para troca de dados dinâmicos entre várias aplicações. As cotações são dadas através do DDE apenas na entrada de novos ticks (modo ADVISE), mas não imediatamente a pedido (modo REQUEST) onde o último preço é mostrado. N / A é mostrado no primeiro PEDIDO, e após o novo preço ter sido obtido, as cotações aparecerão.
Para ativar a exportação de cotações do terminal pelo DDE, é necessário ativar o & quot; Ativar servidor DDE & quot; opção nas configurações do terminal.
Atenção: Dados históricos não podem ser exportados através do protocolo DDE. As cotações atuais são exportadas somente quando o terminal do cliente está online.
Formatos de solicitação DDE e seus possíveis resultados pelo exemplo de & quot; DDE-sample. xls & quot; Arquivo:
Pedido BID: = 4 | BID! Resultado USDCHF: 1.5773.
Pedido ASK: = 4 | PERGUNTAR! Resultado USDCHF: 1.5778.
Pedido ALTO: = 4 | ALTO! Resultado USDCHF: 1.5801.
Pedido LOW: = 4 | LOW! USDCHF result: 1.5741.
Pedido TIME: = 4 | TIME! Resultado USDCHF: 21.05.02 9:52.
Pedido TIMESEC: = 4 | TIME! Resultado USDCHF: 21.05.02 9:52:43.
Pedido de cotação: = 4 | Cota! Resultado USDCHF: 21.05.02 9:52:43 1.5773 1.5778 1.5776.
Atenção: Para que os dados sejam exibidos corretamente no MS Excel, é necessário ativar & quot; Ferramentas & # 150; Opções & # 150; Tradução & # 150; Entrada de fórmula de tradução & quot; opção de menu do MS Excel.

Servidor dde Forex
Nota: a versão mais recente deste documento pode ser encontrada em: amibroker / dde. html. Por favor, verifique esta página para atualizações.
O QUE É DDE.
DDE (Dynamic Data Exchange) é um protocolo do Windows usado para permitir que aplicativos troquem dados. Por exemplo, quando você altera um formulário em seu programa de banco de dados ou um item de dados em um programa de planilha, eles podem ser configurados para também alterar esses formulários ou itens em qualquer lugar em que ocorram em outros programas que você possa usar. O DDE usa um modelo cliente / servidor no qual o aplicativo que solicita dados é considerado o cliente e o aplicativo que fornece dados é considerado o servidor.
Milhares de aplicativos usam DDE, incluindo o Microsoft Excel, Word, Lotus 1-2-3 e Visual Basic.
Para mais informações sobre o DDE como mecanismo de comunicação no Windows, siga este link:
DDE PARA TRADERS.
O que o DDE oferece para os comerciantes? Basicamente cotações de streaming em tempo real. NÃO há BACKFILL via DDE. Muitos provedores e corretoras de dados em tempo real fornecem recursos para obter dados em tempo real por meio do DDE. Você deve perguntar ao seu fornecedor de dados de corretagem / em tempo real se eles oferecem um link DDE. O plugin DDE agora disponível para o AmiBroker permite ligar a (quase) qualquer fonte DDE (servidor) fornecendo cotações em tempo real. Isso torna a opção atraente para todas as fontes de dados que não possuem um plug-in dedicado.
QUANDO NÃO USAR DDE PLUGIN.
Se você estiver usando eSignal, IQFeed, Quote e qualquer outra fonte que tenha um plugin dedicado - você deve usar este plugin dedicado em vez de DDE. Isto é assim porque plugins dedicados são sempre melhor opção (fornecer mais recursos mais eles são mais rápidos) do que o DDE genérico.
DDE PLUGIN RECURSOS SUMÁRIO.
e a carga da CPU é diminuída.
INSTRUÇÕES
Para usar o plugin de dados DDE com o AmiBroker, você precisa:
(opcional *) Faça o download do plugin DDE da última versão do amibroker / bin / DDE. dll e copie-o para a subpasta PLUGINS do diretório AmiBroker.
* A versão 1.2.2 do DDE. DLL (7 de junho de 2007) já está incluída na configuração completa do AmiBroker 5.00.
O indicador de status do Plugin deve mudar de Yellow & quot; WAIT & quot; para Verde & quot; OK & quot; dentro de alguns segundos. Se não ligar para "OK" Estado significa que:
a) nome do servidor e / ou campos não estão configurados corretamente.
b) O servidor DDE (aplicativo de terceiros) não está em execução ou não está ativado.
Se o indicador mostra & quot; OK & quot; - então o tempo em tempo real flui para o AB. Você pode verificá-lo exibindo a janela - & gt; Citação em tempo real. Nota: como não há preenchimento, você precisará aguardar pelo menos 3 barras de dados a serem coletadas antes do gráfico aparecer.
CONFIGURANDO DDE PLUGIN PARA TRABALHAR COM SEU VENDEDOR.
Vários fornecedores de dados vêm usando diferentes strings de conexão DDE, aqui alguns exemplos típicos serão mostrados.
A maioria das documentações de DDE usa a sintaxe DDE do Excel, que é a seguinte: = SERVER | TOPIC! ITEM.
Tópico é o tópico da conversação DDE. Dependendo do tópico da fonte de dados pode ser apenas o símbolo de ticker (como no IQFeed), ou o nome do campo (como no winros).
Item é o item da conversa DDE. Dependendo da fonte de dados, pode ser o nome do campo (como no IQFeed) ou o símbolo do ticker (como no Winros).
Abaixo você pode ver 12 caixas de entrada de texto onde você pode definir o tópico e o item DDE para cada campo de dados que sua fonte de dados fornece. Aqui você deve digitar o par TOPIC! ITEM da string de conexão DDE (= SERVIDOR | TÓPICO! ITEM) com a marca de exlamação entre o tópico DDE e o item DDE.
Como você pode ver na figura acima, o plugin DDE permite que você use algumas strings especiais, a saber:,,,, que são avaliadas em tempo de execução para cada símbolo separadamente, permitindo construir strings DDE dinâmicas (dependendo do ticker selecionado, por exemplo ) exigido pela maioria das fontes de dados:
ele será avaliado como = SERVER | PREFIX_MSFT_SUFFIX! MYTEXT (desde que o símbolo atual seja MSFT)
Ao lado de definições de campos, podemos ver o que determinada definição avaliará (na notação do Excel). Isso facilita verificar se a definição está correta.
A avalia�o da amostra utiliza sempre "MSFT" como um, e 34 como.
Se a sua fonte de dados não fornecer todos os campos, você poderá tornar determinado campo vazio. Note que para uma operação adequada, o & quot; Last & quot; preço (o preço do último comércio) é necessário. Se a sua fonte de dados não fornecer & quot; last & quot; preço (a maioria das fontes forex não tem "last & quot;) você pode forçar o plugin DDE a usar o & quot; Bid & quot; em vez de. Para isso, você deve fazer & quot; Last & quot; campo em branco e forneça o par apropriado do tópico! DDE do artigo no & quot; Bid & quot; campo. Por favor, note também que os pares Topic! Item devem avaliar valores indevidos.
A partir de agora, permite pré-definir os campos usando dois esquemas genéricos:
uma) ! - & quot; último preço & quot; avalia para = SERVER | Last! MSFT.
b)! - & quot; último preço & quot; avalia para = SERVER | MSFT! Last.
No futuro, & quot; Preset & quot; box conterá mais presets para várias fontes DDE que você enviar.
ALGUNS EXEMPLOS
Exemplos de conexão são mostrados na página web: amibroker / dde. html.
PLATAFORMAS DE TESTE.
O plugin DDE foi testado e sabe-se que funciona corretamente no Windows XP (DDE de 32 bits) e no Windows 9x (DDE de 16 bits). Os seguintes servidores DDE são verificados por nós para funcionar corretamente:
O plug-in DDE do IQLINK (DTN) WINROS (eSignal) (Metaquote) NÃO funciona com os seguintes servidores DDE: VTSPOT (Visual Trader) - devido à codificação incorreta no VisualTrader que faz com que a função DdeConnect da biblioteca DDEML da Microsoft seja interrompida na primeira tentativa de conexão.
Todos os outros servidores DDE não listados acima devem funcionar corretamente. Entre em contato com o suporte no amibroker em caso de problemas.
AJUDE-NOS A AJUDAR OS OUTROS:
Para ajudar os outros a configurar o plugin DDE para seu fornecedor de dados, uma vez que você tenha conseguido vincular-se ao seu fornecedor em particular, por favor descarte como uma nota com uma captura de tela do diálogo CONFIGURE e o nome da fonte. Isso será incluído posteriormente neste documento como referência de como usar várias fontes de dados. Também configurações de trabalho serão adicionadas a & quot; predefinições & quot; combo para fácil configuração de um clique.
NOTAS SOBRE DDE PLUGIN:
1. NÃO há BACKFILL no plugin DDE. No entanto, você pode usar o importador ASCII (isso inclui o AmiQuote) para importar dados históricos diretamente para o banco de dados que você atualizará posteriormente em tempo real usando o plugin DDE.
2. Alterar,% alterar os campos NÃO estão disponíveis (ainda)
3. Os campos Time e Req agora são ignorados (isso pode mudar no futuro)
4. A hora atual do sistema é usada para registrar o tempo de cada tick.
5. Quando sua fonte não oferece & quot; ÚLTIMO & quot; preço (como várias fontes de Forex) você deve fazer & quot; Last & quot; campo EMPTY no diálogo de configuração. Isto irá dizer ao plugin para usar o & quot; BID & quot; campo em vez disso.
6. O status do plug-in (conectado / desconectado) sempre aparece inicialmente com & quot; Aguardar & quot; estado (indicador amarelo). Isso significa que nenhuma conversa DDE foi estabelecida. Se pelo menos uma conversa DDE iniciar com sucesso, ela será ativada para & quot; OK & quot; estado (indicador verde). Se o servidor DDE não estiver sendo executado na primeira tentativa de conexão, o plug-in NÃO tentará se reconectar automaticamente. Em vez disso, você deve forçar a reconexão manualmente (consulte o ponto 7). O indicador pode virar para & quot; Desconectado & quot; (indicador vermelho) apenas em dois casos:
a) você estava conectado corretamente, mas o servidor DDE (aplicativo de terceiros) foi fechado.
b) você selecionou & quot; desligamento & quot; do menu de status do plugin.
7. Você pode reconectar a qualquer momento selecionando & quot; reconectar & quot; do menu de status do plugin.

Servidor dde Forex
O AmiBroker agora suporta citações de streaming em tempo real a partir de fontes de dados compatíveis com DDE.
DDE (Dynamic Data Exchange) é um protocolo do Windows usado para permitir que aplicativos troquem dados. Por exemplo, quando você altera um formulário em seu programa de banco de dados ou um item de dados em um programa de planilha, eles podem ser configurados para também alterar esses formulários ou itens em qualquer lugar em que ocorram em outros programas que você possa usar. O DDE usa um modelo cliente / servidor no qual o aplicativo que solicita dados é considerado o cliente e o aplicativo que fornece dados é considerado o servidor.
Milhares de aplicativos usam DDE, incluindo o Microsoft Excel, Word, Lotus 1-2-3 e Visual Basic.
Para mais informações sobre o DDE como mecanismo de comunicação no Windows, siga este link:
O que o DDE oferece para os comerciantes? Basicamente cotações de streaming em tempo real. NÃO há BACKFILL via DDE. Muitos provedores e corretoras de dados em tempo real fornecem recursos para obter dados em tempo real por meio do DDE. Você deve perguntar ao seu fornecedor de dados de corretagem / em tempo real se eles oferecem um link DDE. O plugin DDE agora disponível para o AmiBroker permite ligar a (quase) qualquer fonte DDE (servidor) fornecendo cotações em tempo real. Isso torna a opção atraente para todas as fontes de dados que não possuem um plug-in dedicado.
Se você estiver usando eSignal, IQFeed, Quote, MarketCast e qualquer outra fonte que tenha um plugin dedicado - você deve usar este plugin dedicado em vez de DDE. Isto é assim porque plugins dedicados são sempre melhor opção (fornecer mais recursos mais eles são mais rápidos) do que o DDE genérico.
DDE PLUGIN RECURSOS SUMÁRIO.
servidor / tópico / item DDE definível pelo usuário para cada campo (aberto, alto, baixo, fechamento, volume, tamanho da negociação, volume total, lance, tamanho do lance, perguntar, tamanho da pergunta, hora) suporta até 500 símbolos de transmissão em tempo real ( versão 1.1.0) suporta todos os intervalos de tempo base: diário, horário, 15, 5, 1 minuto, 15, 5 segundos, assinalar NO BACKFILL (devido ao fato de que a maioria das fontes DDE não fornecem backfill)
1.2.2 - inclui "Deslocamento de tempo" campo na caixa de diálogo de contexto, armazena a configuração por banco de dados no arquivo dde. config em vez de no registro, além de outras pequenas melhorias 1.2.1 - problema corrigido com 'type mismatch' 1.2.0 - por padrão, o plugin usa o formato numérico de configurações regionais agora.
e a carga da CPU é diminuída 1.1.0 - limite de símbolo aumentado de 40 para 500 1.0.0 - liberação inicial (BETA)
Escolha Arquivo - & gt; Novo banco de dados.
Digite um novo nome de pasta (por exemplo: C: \ Arquivos de Programas \ AmiBroker \ DDE) e clique em Criar como mostrado na figura abaixo:
Escolha o plug-in de dados universais DDE em Combinação da fonte de dados e "Ativar" em Armazenamento de dados local.
Digite 10000 ou mais em & quot; Número de barras para carregar & quot; campo.
Agora escolha Intervalo de tempo base. Os intervalos suportados são: EOD, por hora, 15 minutos, 5 minutos, 1 minuto. A edição profissional do AmiBroker também permite selecionar intervalos Tick, de 5 segundos e 15 segundos.
Clique no botão CONFIGURAR - IMPORTANTE: no campo & quot; CONFIGURAR & quot; diálogo você tem que configurar todos os campos seguindo a descrição do seu fornecedor de dados. Por favor, verifique também o parágrafo abaixo (& "CONFIGURAR DDE PLUGIN PARA TRABALHAR COM O SEU VENDEDOR") para uma descrição detalhada. ATENÇÃO: você não pode pular esta parte - sem configurar campos especificamente para o seu fornecedor de dados, o DDE NÃO FUNCIONARÁ.
O indicador de status do Plugin deve mudar de Yellow & quot; WAIT & quot; para Verde & quot; OK & quot; dentro de alguns segundos.
Se não ligar para "OK" Estado significa que eiter:
a) nome do servidor e / ou campos não estão configurados corretamente.
b) O servidor DDE (aplicativo de terceiros) não está em execução ou não está ativado.
Se o indicador mostra & quot; OK & quot; - então o tempo em tempo real flui para o AB. Você pode verificá-lo exibindo View - & gt; Quote em tempo real. Nota: como não há preenchimento, você precisará aguardar pelo menos 3 barras de dados a serem coletadas antes do gráfico aparecer.
CONFIGURANDO DDE PLUGIN PARA TRABALHAR COM SEU VENDEDOR.
Vários fornecedores de dados vêm usando diferentes strings de conexão DDE, aqui alguns exemplos típicos serão mostrados.
A maioria das documentações do DDE usa a sintaxe DDE do Excel, que é a seguinte:
Tópico é o tópico da conversação DDE. Dependendo da fonte de dados.
tópico pode ser apenas o símbolo de ticker (como no IQFeed), ou o nome do campo (como no winros).
Item é o item da conversa DDE. Dependendo da fonte de dados, pode ser o nome do campo (como no IQFeed) ou o símbolo do ticker (como no Winros).
Abaixo você pode ver 12 caixas de entrada de texto onde você pode definir o tópico e o item DDE para cada campo de dados que sua fonte de dados fornece. Aqui você deve digitar o par TOPIC! ITEM da string de conexão DDE (= SERVIDOR | TÓPICO! ITEM) com a marca de exlamação entre o tópico DDE e o item DDE.
Como você pode ver na figura acima, o plugin DDE permite que você use algumas strings especiais, a saber:,,,, que são avaliadas em tempo de execução para cada símbolo separadamente, permitindo construir strings DDE dinâmicas (dependendo do ticker selecionado, por exemplo ) exigido pela maioria das fontes de dados:
- avalia para ticker símbolo de segurança dada.
- avalia o nome do campo correspondente (sem espaços), ou seja, Open, High, Low, Last, LastSize, Volume, Perguntar, AskSize, Bid, BidSize, Tempo, Req.
- semelhante a, mas os nomes de campo de duas palavras têm espaços, a saber: & quot; Último tamanho & quot ;, & quot; Tamanho da solicitação & quot ;, & quot; Tamanho do lance & quot;
- avalia para o nome do servidor.
- avalia unue ID (contador de execução incrementado em 1 com cada símbolo)
Todos os outros textos são copiados em carbono, por isso, se escrever, por exemplo:
ele será avaliado como = SERVER | PREFIX_MSFT_SUFFIX! MYTEXT (desde que o símbolo atual seja MSFT)
Ao lado de definições de campos, podemos ver o que determinada definição avaliará (na notação do Excel). Isso facilita verificar se a definição está correta. A avalia�o da amostra utiliza sempre? MSFT? como um, e 34 como.
Se a sua fonte de dados não fornecer todos os campos, você poderá tornar determinado campo vazio. Note que para uma operação adequada, o & quot; Last & quot; preço (o preço do último comércio) é necessário. Se a sua fonte de dados não fornecer & quot; last & quot; preço (a maioria das fontes forex não tem "last & quot;) você pode forçar o plugin DDE a usar o & quot; Bid & quot; em vez de. Para isso, você deve fazer & quot; Last & quot; campo em branco e forneça o par apropriado do tópico! DDE do artigo no & quot; Bid & quot; campo. Por favor, note também que os pares Topic! Item devem avaliar valores indevidos.
uma) ! - & quot; último preço & quot; avalia para = SERVER | Last! MSFT.
b)! - & quot; último preço & quot; avalia para = SERVER | MSFT! Last.
No futuro, & quot; Preset & quot; box conterá mais presets para várias fontes DDE que você enviar.
Seguindo os documentos do fornecedor, o formato das solicitações DDE é | ! , onde é um dos Bid, Ask, High, Low, Time.
Note que esta é uma fonte de Forex que vem sem o último preço.
Neste caso, a instalação apropriada do plugin AmiBroker DDE é a seguinte:

Servidor Forex dedicado.
Quer o seu software exija muitos recursos de computação ou você tenha muitas plataformas, um Servidor Dedicado Forex mantém as coisas funcionando de forma suave e eficiente.
Tanto o hardware de servidor de nível corporativo quanto os padrões de segurança corporativa ajudam a garantir a segurança completa de seus dados e aplicativos hospedados.
Recursos completos de hardware.
Todos os recursos de hardware no seu Servidor Dedicado Forex são alocados para você. Você literalmente tem um servidor inteiro dentro de um rack em um dos nossos centros de dados alocados apenas para suas necessidades e suas necessidades.
Largura de banda de nível 1.
Nossas redes em Chicago, Nova York, Londres, Zurique foram desenvolvidas especificamente para acomodar aplicativos financeiros e apresentam uplinks redundantes de baixa latência para nossos provedores de largura de banda.
Velocidades de Relâmpago.
Desfrute de controle final, velocidade e desempenho inigualável. Não há absolutamente nenhum recurso compartilhado de computação ou armazenamento em nossos servidores dedicados.
Servidor Forex FXVM Dedicado.
Melhor para executar com segurança muitos terminais de negociação e EAs que usam mais recursos de computação.
16 GB de RAM Intel Xeon E3-1230 v3 + (3,30 GHz) 120 GB de armazenamento (SSD) Backups automáticos opcionais Inicialização automática para 4 Latência baixa para os principais FX Brokers Recursos de hardware completos do Windows Server 2008 R2 / 2012.
Construa seu próprio Servidor Dedicado Forex.
Totalmente personalizado servidor FX dedicado. Obtenha mais espaço de RAM e SSD!
16/32 GB de RAM Intel Xeon E3-1230 v3 + (3,30 GHz) 128 GB a 1 TB de armazenamento (SSD) Backups automáticos opcionais Opção de RAID de hardware Latência baixa para os principais intermediários de FX Windows Server 2008 R2 / 2012 Recursos completos de hardware.
Telefone de suporte: +61 2 8387 4187.
Direitos autorais e cópia; 2013-2018 Todos os Direitos Reservados por ThinkHuge Ltd dba FXVM.
Microsoft, Equinix e outras marcas registradas são propriedades de seus respectivos proprietários.
Cuidado: Negociação envolve a possibilidade de perda financeira. Apenas negocie com dinheiro que você está preparado para perder, você deve reconhecer que, para fatores fora de seu controle, você pode perder todo o dinheiro em sua conta de negociação. Muitos corretores de forex também responsabilizam você por perdas que excedam seu capital de negociação. Então você pode perder mais dinheiro do que em sua conta. O FXVM não garante a rentabilidade dos negócios realizados em seus sistemas. Não temos conhecimento do nível de dinheiro com o qual você está negociando ou do nível de risco que você está assumindo com cada negociação. Você deve tomar suas próprias decisões financeiras, não nos responsabilizamos pelo dinheiro ganho ou perdido como resultado do uso de nossos servidores ou conselhos sobre produtos relacionados a forex neste site.

metatrader 4 dde.
O primeiro artigo desta série introduziu um projeto para codificar robôs do sistema de negociação mecânica para a plataforma. NET usando a linguagem C #. O segundo artigo introduziu como codificar um sistema de negociação que irá observar a ação do preço e tomar decisões de compra ou venda. Este artigo mostra como obter cotações forex em tempo real para vários pares de moedas usando o protocolo DDE e o terminal de negociação do Metatrader 4.
É o objetivo deste projeto escrever um programa que não depende de qualquer plataforma subjacente para executar, mas que recebe dados de preço diretamente de um intermediário e faz pedidos através de uma API.
O código fornecido aqui é parte de um projeto maior para criar uma plataforma de backtesting e um robô de negociação FOREX automatizado. O código fonte para este projeto está disponível em 4xlab /
Fundo.
O DDE (Dynamic Data Exchange) é um sistema de comunicação entre processos que permite que dois aplicativos compartilhem os mesmos dados. Esse mecanismo é obsoleto em favor de outras alternativas, como OLE ou COM. Em aplicativos financeiros, é popular e aplicativos habilitados para DDE ainda estão sendo criados. A interação entre um provedor de cotação e um cliente é tipicamente limitada a receber cotações em tempo real. DDE não é usado para obter dados históricos ou entrar em negociações.
Para que um diálogo DDE ocorra, dois aplicativos devem estar em execução, o servidor ou provedor de dados e o cliente ou consumidor. Se o aplicativo do servidor não estiver em execução, as tentativas de conexão do cliente falharão. Neste exemplo, o servidor será o Metatrader Terminal 4.0 e os clientes serão o Microsoft Excel e o 4X DDE Client.
Conectando-se ao Metatrader 4 usando o Excel:
A instalação padrão do Metatrader não habilita o servidor DDE. Deve ser ativado manualmente uma vez. Para fazer isso, clique em Ferramentas - & gt; Opções na guia Servidor (selecionada por padrão), assegure-se de que o & # 8216; Ative o servidor DDE & # 8217; opção está marcada, clique em OK para salvar suas opções.
Quando o Metatrader estiver em execução, conectado a um servidor e seu servidor DDE tiver sido ativado, inicie o Excel. Para testar a conexão, digite uma célula = 4 | ASK! EURUSD, este comando obtém a cotação ASK para o par EUR USD usando o servidor 4 DDE. O conteúdo da célula deve exibir o último preço de venda para o par e atualizar automaticamente esse valor em tempo real, se tudo estiver funcionando corretamente. Se o Metatrader não estiver sendo executado ou o servidor DDE não estiver habilitado, o Excel tentará iniciá-lo usando o nome de arquivo 4.exe não existente, que falhará e #VALUE! ou #REF! será exibido nas células usando dados ao vivo.
O Excel implementa um cliente DDE com uma sintaxe extremamente fácil de usar e ajuda na depuração. Para se comunicar, o cliente precisa saber o nome do Aplicativo DDE, o Tópico DDE e o Item DDE. Para fazer uma solicitação, a sintaxe é a seguinte: = DDEAppName | DDETopic! DDEItem.
Para se comunicar com o Metatrader 4, o DDEAppName é 4, o DDETopic é um dos comandos listados abaixo e o DDEItem é o par de moedas que você está interessado.
4 tópicos DDE.
Item do BID: par de moedas Exemplo: = 4 | BID! USDCHF Saída da amostra: 1.2472.
Retorna o BID ou preço de venda para o par ASK Item: Par de Moedas Exemplo: = 4 | ASK! GBPUSD Sample Output: 1.8656.
Retorna o ASK ou o preço de compra para o par HIGH Item: Par de Moedas Exemplo: = 4 | HIGH! EURUSD Sample Output: 1.2873.
Retorna o preço Alto para o par LOW Item: Par de Moedas Exemplo: = 4 | LOW! USDJPY Sample Output: 115.95.
Retorna o preço Baixo para o par. Item de Cotação: Par de Moedas Exemplo: = 4 | CITAÇÕES! AUDUSD Exemplo de Saída: 2006/09/08 19:58 0.7540 0.7546.
Retorna os preços de Tempo, BID e ASK para o par Item TIME: Não leva um item Exemplo: = 4 | TIME Sample Output: 2006/09/08 19:58.
Retorna a hora do servidor.
Os itens STATUS e DDE do tópico DDE ACCOUNT, BALANCE e CONNECT foram descontinuados e obsoletos na versão 4.0 do cliente. As consultas = | STATUS! ACCOUNT = | STATUS! BALANCE e = | STATUS! CONNECT funcionam somente em versões anteriores do terminal de negociação.
Outros aplicativos financeiros habilitados para DDE.
Outros aplicativos financeiros compartilham alguns dos tópicos anteriores do DDE. Alguns desses aplicativos e seus nomes de aplicativos são: eSignal (WINROS): Cotações de ações, Thinkorswim (TOS): ações e corretor de futuros.
Usando o código.
O código abaixo mostra o número mínimo de passos necessários para configurar a biblioteca NDDE para receber cotações em tempo real do Metatrader 4. O Metatrader responde à solicitação inicial de um valor usando client. Request (Item, 60000); com N \ A e, em vez disso, envia apenas as cotações como atualizações por meio do mecanismo Advise.
Este código se conecta ao servidor 4 DDE e o tópico QUOTE. Em seguida, ele configura notificações de atualização de item usando StartAdvise para os pares de moedas desejados. O manipulador de eventos OnAdvise imprime o tick recebido usando os atributos Item (par) e Texto (quote) do objeto DdeAdviseEventArgs que recebe como parâmetro.
Se uma exceção é lançada durante esse processo, isso significa que o Metatrader não está iniciado ou seu servidor DDE não está habilitado. O usuário é informado para iniciar o Metatrader ou para seguir o procedimento para ativar o servidor DDE.

DDE universal.
O DDE (Dynamic Data Exchange) é um protocolo amplamente usado para troca de dados entre aplicativos no ambiente MS Windows.
Por favor, consulte o site do desenvolvedor para obter informações mais detalhadas sobre o DDE.
Recursos e limitações.
Servidor DDE Definido pelo Usuário / Tópico / Item para Preço de Negociação, Volume de Negócios, Preço do Bid, Tamanho do Bid, Preço Solicitado, Tamanho Solicitação Criação rápida, edição e aplicação de Modelos DDE Testando a funcionalidade de um servidor DDE ou um modelo recém-criado vários tipos de servidores. Alguns servidores DDE contradizem as especificações da Microsoft.
Para máxima conveniência do usuário, o programa tem um conjunto de opções altamente personalizáveis ​​(não descritas aqui). Reconexão automática caso a conexão com o servidor DDE seja perdida.
Atualmente, os seguintes tipos de campos não são suportados: Tempo, Abertura, Alta, Baixa, Fechamento, Volume Total, Mudança O programa recebe apenas os tiques e atribui a hora atual do sistema a eles. Às vezes, o tempo real do tick pode diferir daquele atribuído devido ao atraso. A barra de status não é exibida no gráfico, pois não há campos suficientes para marcá-lo.
Configurando.
No menu Ferramentas, clique em Fontes de dados. Selecione DDE Universal e clique em Configurações. Indique um nome de modelo no modelo (até 20 caracteres). Indique os links DDE nas seções correspondentes (as seções incluem Negociação, Compra e Venda. O Preço e o Volume / Tamanho devem ser indicados em cada seção; se Volume / Tamanho não puder ser usado (por exemplo, para Forex), indique Preço. a cada preço que o programa consulta por um volume, este campo nunca estará vazio, pois o programa estará esperando por dados de volume para formar um novo tick. Antes de criar links DDE no Universal DDE, verifique se eles estão funcionando no Excel.
Depois disso, copie o link para o campo correspondente no DDE Universal e substitua o nome do símbolo estático pelo símbolo de asterisco *.
Por exemplo, substitua = WINROS | LAST! MSFT por = WINROS | LAST! *. Depois disso, o programa usará automaticamente o nome do símbolo para o qual o modelo fornecido é usado. Faça o mesmo para todos os campos. Para certificar-se de que o modelo criado está funcionando, clique em Testar. Digite o nome do símbolo em Symbol e clique em OK.
Se o servidor DDE estiver em execução, o modelo será criado corretamente e o símbolo consultado estará acessível. Você verá o valor atual de cada campo e o número de atualizações. Se aspas não chegarem, verifique o modelo e o nome do símbolo.
Se corrigi-los não resolver o problema, envie um e-mail para support @ multicharts e indique os nomes de servidor, símbolo e modelo DDE, confirme se um modelo idêntico funciona no Excel e compartilhe qualquer outra informação que julgue importante.
Para criar um símbolo usando o DDE Universal como a Fonte de Dados, consulte Adicionando o (s) Símbolo (s) à seção da Lista de Símbolos para obter informações mais detalhadas.
Para usar vários servidores DDE ao mesmo tempo, você deve clonar o DDE Universal e atribuir novas configurações.
Consulte a seção Fontes de dados de clonagem para obter informações mais detalhadas.

Комментариев нет:

Отправить комментарий