Ao implementar diferentes "grelhas", eu criei esta estrutura:
A estrutura é preenchida a cada novo tick, com base no valor do Número Mágico (armazena todas as informações necessárias para identificar o pedido: número do pedido, a que grade ele pertence, etc.).
Este é o código que eu inventei
class Info
{
private:
struct str
{
string Sym; // Символ ордераstring Com; // Коммент ордераint Tic; // Тиккет ордераint Typ; // Тип ордераint Mag; // Меджик номер ордераdouble Lot; // Лот ордераdouble Pri; // Цена открытия ордераdouble SL_; // Стоп лосс ордераdouble TP_; // Тейк профит ордераdatetime Tim; // Время открытия ордераdouble Pro; // Профит ордера
};
int m_tick_upper; // Тиккет максимального по цене ордераint m_tick_upper_; // Тиккет предпоследнего максимального по цене ордераint m_tick_lower; // Тиккет минимального по цене ордераint m_tick_lower_; // Тиккет предпоследнего минимального по цене оредраint m_tick_start; // Тиккет первого по времени ордераint m_tick_start_; // Тиккет вторго по времени ордераint m_tick_end; // Тиккет последнего по времени ордераint m_tick_end_; // Тиккет предпоследнего по времени ордераint m_magic; // Меджик номерstring m_symbol; // Символ ордераvoid SearchTicketPriceType(constint type); // Поиск по ценеvoid SearchTicketTimeType(constint type); // Поиск по времениpublic:
str Price_Max; // Структура запроса максимальных ценн
str Price_Min; // Структура запроса минимальных ценн
str Time_End; // Структура последних ордеров
str Time_Start; // Структура начальных ордеров
str Price_Max2; // Структура запроса максимальных ценн
str Price_Min2; // Структура запроса минимальных ценн
str Time_End2; // Структура последних ордеров
str Time_Start2; // Структура начальных ордеровvoid SetMagic (constint mag) { m_magic = mag; } // Принудительное указание меджик номераvoid SetSymbol(conststring sym) { m_symbol = sym; } // Принудительное указание символаvoid SearchTimeOrder(constint type); // Заполнение структуры по времени void SearchPriceOrder(constint type); // Заполнение структуры по ценам
Info(conststring sym,constint mag); // Параметрический конструктор
Info(){};
~Info(){};
};
"A propósito - se o Windows estiver desligado, a EA também não pode apagar ordens - apenas manual aqui, portanto, este exemplo não pode se aplicar totalmente à auto-comercialização".
POSSÍVEL, você provavelmente não sabe como. Se eu estiver interessado, posso postar o código.
Não, você não precisa do código. Algoritmo em resumo, se você puder... Eu realmente não sei como executar um EA em um terminal funcionando em um sistema operacional que caiu
Artyom Trishkin: Não, você não precisa de um código. Algoritmo em poucas palavras, se você puder... Eu realmente não sei como executar um EA em um terminal funcionando em um sistema operacional que caiu
É mais fácil para mim explicar o código do que explicá-lo:
//+------------------------------------------------------------------+//| Expert Remove orders function |//+------------------------------------------------------------------+void RemoveOrders()
{
int orders_total = OrdersTotal();
//--- if ( orders_total > 0 )
{
for ( int i = 0; i < orders_total; i++ )
{
ulong temp_order_ticket = OrderGetTicket( i );
if ( OrderSelect( temp_order_ticket ) )
{
string temp_symbol = OrderGetString( ORDER_SYMBOL );
if ( temp_symbol == _Symbol )
{
RemoveOldOrder( temp_symbol, temp_order_ticket );
}
}
}
}
}
//+------------------------------------------------------------------+//| Expert remove old order function |//+------------------------------------------------------------------+void RemoveOldOrder( conststring symbol, constulong ord_ticket )
{
MqlTradeRequest request = {0};
MqlTradeResult result = {0};
request.action = TRADE_ACTION_REMOVE;
request.order = ord_ticket;
if ( OrderSend( request, result ) )
{
if ( result.retcode == TRADE_RETCODE_PLACED )
{
// SetTransCount( true );
}
}
else
{
Print( "Удаление старого ордера не выполнено! Билет = ", ord_ticket);
}
}
Merda, cara, *** não diga besteiras. Você mesmo definiu a direção correta: o estado deve ser recuperado do ambiente atual, o que a MT lhe dá é a opção mais confiável. Em vez disso, você escreve uma informação de classe longa e inútil, na qual você tem que, de alguma forma, encher os valores encontrados por funções externas. Sim, eventualmente conterá as variáveis que você precisa: bilhete máximo e mínimo em termos de preço para o pedido, bem como outras coisas importantes para você. Mas na realidade o problema é resolvido por um recipiente especializado de pedidos: imagine que você tenha uma lista de pedidos, onde cada pedido representa uma linha de tabela com muitas colunas (id do pedido, tempo aberto, preço aberto, lucro, etc., etc.). Você faz a ordenação por uma das colunas e obtém exatamente a seqüência que precisa. Portanto, tudo isso pode ser feito com a ajuda das aulas, que você gosta de usar (embora sem a menor idéia, desculpe). Escreverei como fazer isso amanhã, se você estiver interessado.
Vasiliy Sokolov: Merda, cara, *** não diga besteiras. Você mesmo definiu a direção correta: o estado deve ser recuperado do ambiente atual, o que a MT lhe dá é a opção mais confiável. Em vez disso, você escreve uma informação de classe longa e inútil, na qual você tem que, de alguma forma, encher os valores encontrados por funções externas. Sim, eventualmente conterá as variáveis que você precisa: bilhete máximo e mínimo em termos de preço para o pedido, bem como outras coisas importantes para você. Mas na realidade o problema é resolvido por um recipiente especializado de pedidos: imagine que você tenha uma lista de pedidos, onde cada pedido representa uma linha de tabela com muitas colunas (id do pedido, tempo aberto, preço aberto, lucro, etc., etc.). Você faz a ordenação por uma das colunas e obtém exatamente a seqüência que precisa. Portanto, tudo isso pode ser feito com a ajuda das aulas, que você gosta de usar (embora sem a menor idéia, desculpe). Como fazer - Escreverei amanhã, se você estiver interessado.
Muito ansioso para ver....
Preciso de informações não para fins informativos, mas para processamento e cálculo posterior ...
É mais fácil para mim afixar o código do que explicá-lo:
Como funcionará em um computador quebrado? (não é nenhuma surpresa com as funções).
É por isso que eu disse - não preciso de código. Eu preciso de um algoritmo que funcione em um computador que não funciona (o eixo está quebrado, se você se lembrar de uma citação: "Eu realmente não sei como executar o Expert Advisor no terminal, que está rodando no SO travado", e não preciso de VPS e outras coisas - pense, que o SO no computador, servidor, etc., onde o terminal com o Expert Advisor está rodando, está travado - seu código é uma cataplasma para ele lá e ... ).
Como funcionará em um computador quebrado??? (não é nenhuma surpresa com as funções).
É por isso que eu disse - não preciso de código. Preciso de um algoritmo que funcione em um computador que não esteja funcionando (porque o sistema operacional está desligado, se você se lembra - e eu cito: "Eu realmente não sei como executar o Expert Advisor no terminal, que está rodando no SO travado", e não preciso de VPS e outras coisas - pense, que o SO no computador, servidor, etc., onde o terminal com o Expert Advisor está rodando, está travado - seu código é uma cataplasma para o terminal e ... Com nossas mãos, com nossas mãos ... ).
Artyom Trishkin: Não há problema. Estou farto de tentar fazer entender meu ponto de vista...
O resultado final é que mesmo que o sistema operacional no servidor esteja desligado, você pode executar um PC doméstico que restaurará o controle da conta no momento em que for necessário para reiniciar o servo.
Em minha prática de trabalhar com os servidores VDS / VPS, o sistema operacional nunca mudou, mas os reinícios são imprevistos e programados.
A essência da minha pergunta é escrever com competência um código que colete informações sobre a situação atual...
O objetivo da minha pergunta é escrever corretamente o código que coleta informações sobre a situação atual...
Você escreveu aqui que já escreveu em estilo processual. Portanto, tudo o que você tem que fazer é coletar tudo em uma classe. Você também pode remover alguns parâmetros da chamada de função, fazer métodos para predefinir parâmetros (magik, símbolo), mas é melhor não fazer.
É claro que se você não tem nada a fazer, pode seguir outro caminho. Classe. Possui método Refresh() para obter lista de pedidos (o único que pode retornar falsos). Os outros métodos utilizam esta lista.
Ao implementar diferentes "grelhas", eu criei esta estrutura:
A estrutura é preenchida a cada novo tick, com base no valor do Número Mágico (armazena todas as informações necessárias para identificar o pedido: número do pedido, a que grade ele pertence, etc.).
Este é o código que eu inventei
...
"A propósito - se o Windows estiver desligado, a EA também não pode apagar ordens - apenas manual aqui, portanto, este exemplo não pode se aplicar totalmente à auto-comercialização".
POSSÍVEL, você provavelmente não sabe como. Se eu estiver interessado, posso postar o código.
Não, você não precisa de um código. Algoritmo em poucas palavras, se você puder... Eu realmente não sei como executar um EA em um terminal funcionando em um sistema operacional que caiu
É mais fácil para mim explicar o código do que explicá-lo:
Este é o código que eu inventei
Merda, cara, *** não diga besteiras. Você mesmo definiu a direção correta: o estado deve ser recuperado do ambiente atual, o que a MT lhe dá é a opção mais confiável. Em vez disso, você escreve uma informação de classe longa e inútil, na qual você tem que, de alguma forma, encher os valores encontrados por funções externas. Sim, eventualmente conterá as variáveis que você precisa: bilhete máximo e mínimo em termos de preço para o pedido, bem como outras coisas importantes para você. Mas na realidade o problema é resolvido por um recipiente especializado de pedidos: imagine que você tenha uma lista de pedidos, onde cada pedido representa uma linha de tabela com muitas colunas (id do pedido, tempo aberto, preço aberto, lucro, etc., etc.). Você faz a ordenação por uma das colunas e obtém exatamente a seqüência que precisa. Portanto, tudo isso pode ser feito com a ajuda das aulas, que você gosta de usar (embora sem a menor idéia, desculpe). Como fazer - Escreverei amanhã, se você estiver interessado.
Muito ansioso para ver....
Preciso de informações não para fins informativos, mas para processamento e cálculo posterior ...
É mais fácil para mim afixar o código do que explicá-lo:
Como funcionará em um computador quebrado? (não é nenhuma surpresa com as funções).
É por isso que eu disse - não preciso de código. Eu preciso de um algoritmo que funcione em um computador que não funciona (o eixo está quebrado, se você se lembrar de uma citação: "Eu realmente não sei como executar o Expert Advisor no terminal, que está rodando no SO travado", e não preciso de VPS e outras coisas - pense, que o SO no computador, servidor, etc., onde o terminal com o Expert Advisor está rodando, está travado - seu código é uma cataplasma para ele lá e ...
).
Como funcionará em um computador quebrado??? (não é nenhuma surpresa com as funções).
É por isso que eu disse - não preciso de código. Preciso de um algoritmo que funcione em um computador que não esteja funcionando (porque o sistema operacional está desligado, se você se lembra - e eu cito: "Eu realmente não sei como executar o Expert Advisor no terminal, que está rodando no SO travado", e não preciso de VPS e outras coisas - pense, que o SO no computador, servidor, etc., onde o terminal com o Expert Advisor está rodando, está travado - seu código é uma cataplasma para o terminal e ... Com nossas mãos, com nossas mãos ... ).
Aqui vamos nós, falsificador na floresta...
Vamos terminar nossa discussão aqui!
Aqui vamos nós, para o bem e para o mal...
Vamos terminar aqui a nossa discussão!
Não há problema. Estou farto de tentar fazer entender meu ponto de vista...
O resultado final é que mesmo que o sistema operacional no servidor esteja desligado, você pode executar um PC doméstico que restaurará o controle da conta no momento em que for necessário para reiniciar o servo.
Em minha prática de trabalhar com os servidores VDS / VPS, o sistema operacional nunca mudou, mas os reinícios são imprevistos e programados.
A essência da minha pergunta é escrever com competência um código que colete informações sobre a situação atual...
...
O objetivo da minha pergunta é escrever corretamente o código que coleta informações sobre a situação atual...
Você escreveu aqui que já escreveu em estilo processual. Portanto, tudo o que você tem que fazer é coletar tudo em uma classe. Você também pode remover alguns parâmetros da chamada de função, fazer métodos para predefinir parâmetros (magik, símbolo), mas é melhor não fazer.
É claro que se você não tem nada a fazer, pode seguir outro caminho. Classe. Possui método Refresh() para obter lista de pedidos (o único que pode retornar falsos). Os outros métodos utilizam esta lista.