Bom dia a todos Tenho a seguinte pergunta, gostaria de lhe pedir alguma ajuda para esclarecer a situação.
O fabricante de redes robotizadas coloca uma grelha de ordens limite ORDER_TYPE_BUY_LIMIT(também ORDER_TYPE_BUY_STOP para cima) no arranque. O passo da grelha é 1, o take 0,5, e o volume é 1 lote. O problema é que estou a começar a abrir uma posição longa uma vez (comprei a 10 e defini o TP a 10,5) sem tomar a posição, e depois estou a começar a segunda vez (comprei a 9 e defini o TP a 9,5) e tenho 2 lotes. Então o preço começa a entrar e todo o volume é levado para 9,5!
As encomendas são colocadas pela estrutura.
MqlTradeRequest request_={0};
request_.action=TRADE_ACTION_PENDING; // установка отложенного ордера
request_.magic=order_magic; // ORDER_MAGIC
request_.symbol=pair; // инструмент
request_.volume=v_b; // объем в 0.1 лот
request_.tp=pr_ent_tp; // Take Profit //--- сформируем тип ордера
request_.type=ORDER_TYPE_BUY_LIMIT; // тип ордера //---сформируем цену для отложенного ордера
request_.price=pr_ent; // цена для открытия //--- отправим торговый приказ MqlTradeResult result_={0};
m_Trade.OrderSend(request_,result_);
Preciso que cada encomenda esteja num dos meus próprios tees. Eu entrei às 10 e esperei por um preço de 10,5. E não o volume completo no primeiro tee.
Bom dia a todos Tenho esta pergunta e preciso da vossa ajuda para esclarecer a situação.
O fabricante de redes robotizadas coloca uma grelha de ordens limite ORDER_TYPE_BUY_LIMIT(também ORDER_TYPE_BUY_STOP para cima) no arranque. O passo da grelha é 1, o take 0,5, e o volume é 1 lote. O problema é que estou a começar a abrir uma posição longa (comprei a 10, tomo a 10,5) sem os tomar; estou a começar a segunda vez (comprei a 9, tomo a 9,5) e mudo o volume para 2 lotes. Então o preço começa a entrar e todo o volume é tomado a 9,5!!!
As encomendas são colocadas pela estrutura.
Quero que cada um saia com os seus próprios "tees". Entrei às 10 e esperei pelo preço de 10,5. E não o volume completo no primeiro tee.
Mais uma vez com a mesma pergunta, alguém implementou um tal sistema de take-out para uma contaNetting? Talvez haja alguém no fórum que tenha feito isto?
Na Netting uma posição tem sempre apenas um TP. Assim, em particular os TS de rede em que cada encomenda na rede tem um TP diferente não funcionará como pretendido.
Abaixo está um exemplo de como funciona.
// Пример Netting с поддержкой множества однонаправленных позиций (у каждой могут быть свои Magic, SL/TP, Comment, OpenTime и т.д.).// Запустите этот пример на Netting-счете в Тестере с влюченной Визуализацией.#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006#define VIRTUAL_LIMITS_TP_SLIPPAGE // Лимитники и TP исполняются по первой цене акцепта - положительные проскальзывания#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577#include <fxsaber\Virtual\Sync.mqh> // Синхронизатор#define AskSymbolInfoDouble(_Symbol, SYMBOL_ASK)
inputint iAmount = 5; // Количество ордеров в сеткеinputint iOffset = 120; // На каком расстоянии (в пипсах) ставить ордера сеткиinputint iTP = 120; // TakeProfit каждого ордера сетки// Выставляем один раз сетку из Amount ордеров на Offset-расстоянии друг от друга с заданным TP.void System( constint Amount, constint Offset, constint TP )
{
staticbool FirstRun = true;
if (FirstRun)
{
for (int i = 1; i <= Amount; i++)
{
constdouble PriceOpen = Ask - i * Offset * _Point;
constdouble PriceTP = PriceOpen + TP * _Point;
OrderSend(_Symbol, OP_BUYLIMIT, 1, PriceOpen, 0, 0, PriceTP, (string)i); // Выставляем каждый ордер сетки
}
FirstRun = false;
}
}
voidOnTick()
{
staticconstbool Init = VIRTUAL::Select(VIRTUAL::Create()); // Система будет работать в этом виртуальном окруженииstaticconstbool IsVisual = MQLInfoInteger(MQL_VISUAL_MODE);
staticbool FirstRun = true;
VIRTUAL::NewTick(); // Добавили тик в виртуальное торговое окружение
System(iAmount, iOffset, iTP); // Запустили ТС на выбранном торговом окружении (виртуальное)
SYNC::Positions<ISTIME>(); // Синхронизировли реальное торговое окружение с виртуальнымif (IsVisual)
Comment(VIRTUAL::ToString(true)); // Вывели на чарт состояние виртуального торгового окружения (true - вместе с историей торгов)
}
Esta é uma ideia muito simples. Lançamos o TS num virtual e simplesmente sincronizamo-lo no real. Não é necessário alterar a fonte TP (Função do sistema no exemplo).
Tarde. Queria fazer um ficheiro mqh onde as matrizes calculadas ficariam até eu fechar o terminal e voltar a descarregá-las apenas quando houvesse um grande intervalo de tempo (3600 no meu caso). Mas se eu compilar o indicador, o ficheiro mqh também reinicia todas as arrays. Como o posso fazer, para poder fazer tudo com indicador e compilá-lo, mas o ficheiro mqh não é reinicializado até que o terminal seja fechado?
Olá, poderia aconselhar-me, por favor, se eu definir a minha EA para, por exemplo, 10 pares de moedas?
Pode definir o número máximo de pares sobre os quais se pode abrir?
Por outras palavras, se o conselheiro estiver definido em 10 gráficos de pares diferentes e nas definições é dito que o número máximo de pares - 5.
E a EA trabalhará apenas nos primeiros 5 pares e os outros 5 pares serão ignorados?
Em geral, é possível?
Se o código estiver em formato .mq, então é possível. Não confundir com .ex
Bom dia a todos
Tenho a seguinte pergunta, gostaria de lhe pedir alguma ajuda para esclarecer a situação.
O fabricante de redes robotizadas coloca uma grelha de ordens limite ORDER_TYPE_BUY_LIMIT(também ORDER_TYPE_BUY_STOP para cima) no arranque. O passo da grelha é 1, o take 0,5, e o volume é 1 lote. O problema é que estou a começar a abrir uma posição longa uma vez (comprei a 10 e defini o TP a 10,5) sem tomar a posição, e depois estou a começar a segunda vez (comprei a 9 e defini o TP a 9,5) e tenho 2 lotes. Então o preço começa a entrar e todo o volume é levado para 9,5!
As encomendas são colocadas pela estrutura.
Preciso que cada encomenda esteja num dos meus próprios tees. Eu entrei às 10 e esperei por um preço de 10,5.
E não o volume completo no primeiro tee.
Devo ajustar algo com a estrutura?
Bom dia a todos
Tenho esta pergunta e preciso da vossa ajuda para esclarecer a situação.
O fabricante de redes robotizadas coloca uma grelha de ordens limite ORDER_TYPE_BUY_LIMIT(também ORDER_TYPE_BUY_STOP para cima) no arranque. O passo da grelha é 1, o take 0,5, e o volume é 1 lote. O problema é que estou a começar a abrir uma posição longa (comprei a 10, tomo a 10,5) sem os tomar; estou a começar a segunda vez (comprei a 9, tomo a 9,5) e mudo o volume para 2 lotes. Então o preço começa a entrar e todo o volume é tomado a 9,5!!!
As encomendas são colocadas pela estrutura.
Quero que cada um saia com os seus próprios "tees". Entrei às 10 e esperei pelo preço de 10,5.
E não o volume completo no primeiro tee.
Precisa de consertar algo com a estrutura?
Utilizar contas do tipo "Hedge", e não "Netting".
Para o alterar, é necessário voltar a fazer um novo T e assinalar a caixa, Use hedge. Ou posso alterar o existente?
Refazer e assinalar a caixa ...
Faço novamente a mesma pergunta, alguém implementou um sistema de TPs para contasNetting? Talvez haja alguém no fórum que o tenha feito?
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Bibliotecas: Virtual
fxsaber, 2018.11.15 17:16
Na Netting uma posição tem sempre apenas um TP. Assim, em particular os TS de rede em que cada encomenda na rede tem um TP diferente não funcionará como pretendido.
Abaixo está um exemplo de como funciona.
Esta é uma ideia muito simples. Lançamos o TS num virtual e simplesmente sincronizamo-lo no real. Não é necessário alterar a fonte TP (Função do sistema no exemplo).
Tarde. Queria fazer um ficheiro mqh onde as matrizes calculadas ficariam até eu fechar o terminal e voltar a descarregá-las apenas quando houvesse um grande intervalo de tempo (3600 no meu caso). Mas se eu compilar o indicador, o ficheiro mqh também reinicia todas as arrays. Como o posso fazer, para poder fazer tudo com indicador e compilá-lo, mas o ficheiro mqh não é reinicializado até que o terminal seja fechado?