CALCULEI O PREÇO PARA DEFINIR O OFFSET DESTA FORMA (MAKAR, VOCÊ NÃO É PELO MENOS MEU TIPO A SER TOCADO;-))
COMO POSSO VERIFICAR SE O VALOR OBTIDO ESTÁ DENTRO DOS LIMITES PERMITIDOS? NÃO ENTENDO O QUE DEVO FAZER, E COMO POSSO GARANTIR QUE SE O VALOR CALCULADO FOR INFERIOR AO PERMITIDO, O PEDIDO SERÁ ABERTO A UMA DISTÂNCIA MÍNIMA POSSÍVEL DE QUALQUER FORMA?
Tente isto,
Acho que você vai descobrir.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 02.07.2013 |//| Описание : Выполняет корректирование ценовых уровней под STOPLEVEL. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование торгового инструмента |//| op - торговая операция |//| pp - цена открытия/установки |//| sl - ценовой уровень StopLoss |//| tp - ценовой уровень TakeProfit |//+----------------------------------------------------------------------------+void CorrectingPrice(string sy, int op, double& pp, double& sl, double& tp) {
if (sy=="" || sy=="0") sy=Symbol();
RefreshRates();
int di=MarketInfo(sy, MODE_DIGITS);
int msl=MarketInfo(sy, MODE_STOPLEVEL);
int sp=MarketInfo(sy, MODE_SPREAD);
double mp=MarketInfo(sy, MODE_POINT);
double pa=MarketInfo(sy, MODE_ASK);
double pb=MarketInfo(sy, MODE_BID);
double ds=NormalizeDouble(pp-sl, di);
double dp=NormalizeDouble(pp-tp, di);
if (msl==0) msl=2*sp;
switch (op) {
case OP_BUY:
pp=pa;
sl=pp-ds;
tp=NormalizeDouble(pp-dp, di);
if (sl>pp-msl*mp) sl=pp-msl*mp;
if (tp>0 && tp<pp+msl*mp) tp=pp+msl*mp;
break;
case OP_SELL:
pp=pb;
sl=NormalizeDouble(pp-ds, di);
tp=pp-dp;
if (sl>0 && sl<pp+msl*mp) sl=pp+msl*mp;
if (tp>pp-msl*mp) tp=pp-msl*mp;
break;
case OP_BUYLIMIT:
if (pp>pa-msl*mp) {
pp=pa-msl*mp;
sl=pp-ds;
tp=NormalizeDouble(pp-dp, di);
}
if (sl>pp-msl*mp) sl=pp-msl*mp;
if (tp>0 && tp<pp+msl*mp) tp=pp+msl*mp;
break;
case OP_BUYSTOP:
if (pp<pa+msl*mp) {
pp=pa+msl*mp;
if (sl>0) sl=pp-ds;
if (tp>0) tp=NormalizeDouble(pp-dp, di);
}
if (sl>pp-msl*mp) sl=pp-msl*mp;
if (tp>0 && tp<pp+msl*mp) tp=pp+msl*mp;
break;
case OP_SELLLIMIT:
if (pp<pb+msl*mp) {
pp=pb+msl*mp;
sl=NormalizeDouble(pp-ds, di);
tp=pp-dp;
}
if (sl>0 && sl<pp+msl*mp) sl=pp+msl*mp;
if (tp>pp-msl*mp) tp=pp-msl*mp;
break;
case OP_SELLSTOP:
if (pp>pb-msl*mp) {
pp=pb-msl*mp;
sl=NormalizeDouble(pp-ds, di);
tp=pp-dp;
}
if (sl>0 && sl<pp+msl*mp) sl=pp+msl*mp;
if (tp>pp-msl*mp) tp=pp-msl*mp;
break;
default:
Message("CorrectingPrice(): Неизвестная торговая операция!");
break;
}
}
Alexey, muito obrigado por este pedaço de código. Mas infelizmente não consigo ler o código das outras pessoas devido às conseqüências de um derrame. Posso pedir-lhe uma instrução sobre como usar este código e uma recomendação sobre o que deve ser anexado e como fazê-lo?
Eis o que me vem à mente. Eu estava procurando um preço mínimo para x-bars como este
int min_bars= iLowest(NULL, // ТЕКУЩИЙ СИМВОЛdouble min_Price=iHigh(Symbol(),// СИМВОЛ ТЕКУЩЕГО ИНСТРУМЕНТА(НА КОТОРОМ РАБОТАЕТ ГРААЛЬ;-)
PeriodForWork_pending_orders, // ТФ НА КОТОРОМ АСЧИТЫВАЕМ ЦЕНУ МИНИМУМА
min_bars// НА КАКОМ БАРЕ БЫЛ МАКС ТОТ И ПОДСТАВИМ;)
mas isto não é correto, porque atribuo preço mínimo aihai, não baixo. corrigido por baixo e o erro é menor, mas ainda assim ocorre(((
Portanto, se não for difícil, envie instruções sobre como usar um código com desconto...
Olá a todos novamenteJ tentou aplicar o conselho que você escreveu para meu último post, mas isso não ajudou. Ainda estou recebendo 130L de erro, mas provavelmente não é o fim da perda em si, mas o preço aberto. O preço aberto para uma parada de compra e uma parada de venda é obtido determinando o preço máximo/mínimo para um x número de velas, desta forma.
int max_bars= iHighest(NULL, // ТЕКУЩИЙ СИМВОЛ
PeriodForWork_pending_orders,// ТФ ДЛЯ ПОИСКА МАКСИМУМА УСТАНОВКИ ОТЛОЖЕННОГО ОРДЕРАMODE_HIGH,// ИЩЕМ МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ ХАЙ
range_max // ДИАПОЗОН ПОИСКА ИЗ ЭН СВЕЧЕЙ
); // ПОЛУЧАЕМ НОМЕР СВЕЧИ НА КОТОРОЙ ИМЕЕТСЯ МАКСИМАЛЬНОЕ ЗНАЧЕНИЕdouble max_Price=iHigh(Symbol(),// СИМВОЛ ТЕКУЩЕГО ИНСТРУМЕНТА(НА КОТОРОМ РАБОТАЕТ ГРААЛЬ;-)
PeriodForWork_pending_orders, // ТФ НА КОТОРОМ АСЧИТЫВАЕМ ЦЕНУ МАКСИМУМА
max_bars// НА КАКОМ БАРЕ БЫЛ МАКС ТОТ И ПОДСТАВИМ;)
); //КОНЕЦ ПОЛУЧЕНИЯ ДАННЫХ ДЛЯ ПОКУПАК*********** //----ПОЛУЧЕНИЕ ДАННЫХ ДЛЯ ОТЛОЖЕННЫХ ПРОДАЖint min_bars= iLowest(NULL, // ТЕКУЩИЙ СИМВОЛ
PeriodForWork_pending_orders,// ТФ ДЛЯ ПОИСКА МАКСИМУМА УСТАНОВКИ ОТЛОЖЕННОГО ОРДЕРАMODE_HIGH,// ИЩЕМ МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ ХАЙ
range_max // ДИАПОЗОН ПОИСКА ИЗ ЭН СВЕЧЕЙ
); // ПОЛУЧАЕМ НОМЕР СВЕЧИ НА КОТОРОЙ ИМЕЕТСЯ МАКСИМАЛЬНОЕ ЗНАЧЕНИЕdouble min_Price=iLow(Symbol(),// СИМВОЛ ТЕКУЩЕГО ИНСТРУМЕНТА(НА КОТОРОМ РАБОТАЕТ ГРААЛЬ;-)
PeriodForWork_pending_orders, // ТФ НА КОТОРОМ АСЧИТЫВАЕМ ЦЕНУ МАКСИМУМА
min_bars// НА КАКОМ БАРЕ БЫЛ МАКС ТОТ И ПОДСТАВИМ;)
); // КОНЕЦ АЙЛОУ
O problema não é com a parada porque eu uso a mesma parada exata e atp e fixo, ordens de mercado abertas sem erros. Isso significa que o problema está no cálculo do preço para estabelecer uma ordem pendente. Eu mesmo abro ordens como esta
P/S e eu esquecemos de dizer que quero usar ordens pendentes para simular algum tipo de filtro de preço para abrir uma posição, ou seja, se o preço for na direção certa, uma ordem pendente será acionada, mas se não for, ela será cancelada e eu estarei fora do mercado. O que estou fazendo de errado ao determinar o preço de abertura? E talvez haja uma solução mais fácil para o filtro de preço para o negócio?
p/s muito gentilmente, se você escrever um código que possa ser aplicado, escreva uma instrução detalhada para ele, pois estou tendo sérios problemas para ler o código. Uma instrução detalhada, quero dizer, para que serve este código e como pode ser aplicado (para anexá-lo a uma variável e fazer algo com ele ou outra coisa, e por favor escreva seus comentários ao código de uma maneira mais compreensível). Obrigado antecipadamente ;-) P / S que tem conhecimento e experiência não passa, ajuda um irmão - não brincar ;-) tem que terminar a OP Graal ;-).
Quem trabalhava com objetos. Por favor, envie-me um exemplo de um pedaço de código, onde um triângulo desenhado manualmente, elipse ou quadrado (acho que tem um nome no gráfico) executaria alguma ação - por exemplo, um alerta (em caso de preço atingindo o objeto). Imploro-lhe muito. Não sei muito sobre isso e não consigo entender a teoria no livro de referência, mas suspeito que o princípio é elementar.
Olá a todos novamenteJ tentou aplicar o conselho que você escreveu para meu último post, mas isso não ajudou. Ainda estou recebendo 130L de erro, mas provavelmente não é o fim da perda em si, mas o preço aberto. O preço aberto para uma parada de compra e uma parada de venda é obtido determinando o preço máximo/mínimo para um x número de velas, desta forma.
O problema não é com a parada porque eu uso a mesma parada exata e atp e fixa, as ordens de mercado abrem sem erros. Isso significa que o problema está no cálculo do preço para estabelecer uma ordem pendente. Eu mesmo abro ordens como esta
P/S e eu esquecemos de dizer que quero usar ordens pendentes para simular algum tipo de filtro de preço para abrir uma posição, ou seja, se o preço for na direção certa, uma ordem pendente será acionada, mas se não for, ela será cancelada e eu estarei fora do mercado. Por favor, o que estou fazendo de errado ao determinar o preço de abertura? E talvez haja uma solução mais fácil para o filtro de preço para o negócio?
p/s muito gentilmente, se você escrever um código que possa ser aplicado, escreva uma instrução detalhada para ele, pois estou tendo sérios problemas para ler o código. Uma instrução detalhada, quero dizer, para que serve este código e como pode ser aplicado (para anexá-lo a uma variável e fazer algo com ele ou outra coisa, e por favor escreva seus comentários ao código de uma maneira mais compreensível). Obrigado antecipadamente ;-) P / S que tem conhecimento e experiência não passa, ajude um irmão - não brinque ;-) Eu tenho que terminar o Graal O_o ;-)
Na função iLowest, em vez de MODE_HIGH, insira MODE_LOW.
Você pode me dar uma dica? Eu desenhei um segmento de linha em um gráfico. Preciso conhecer os preços inicial e final do segmento. Isso pode ser feito?
Você pode me dar uma dica? Eu desenhei um segmento de linha em um gráfico. Preciso conhecer os preços inicial e final do segmento. Isso pode ser feito?
Você pode me dar uma dica? Eu desenhei um segmento de linha em um gráfico. Preciso conhecer os preços inicial e final do segmento. Isso pode ser feito?
É desejável que este segmento tenha um nome original
Na função iLowest, em vez de MODE_HIGH, insira MODE_LOW.
Muito obrigado por perceberem e me alertarem - corrigi este caso e durante o teste de 2 anos houve 130 26 erros. Ao mesmo tempo, 115 negócios foram abertos normalmente
Quem trabalhava com objetos. Por favor, envie-me um exemplo de um pedaço de código, onde um triângulo desenhado manualmente, elipse ou quadrado (acho que tem um nome no gráfico) executaria alguma ação - por exemplo, um alerta (em caso de preço atingindo o objeto). Imploro-lhe muito. Não sei muito sobre este assunto e não entendo a teoria no livro de referência, mas suspeito que o princípio é elementar.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
CALCULEI O PREÇO PARA DEFINIR O OFFSET DESTA FORMA (MAKAR, VOCÊ NÃO É PELO MENOS MEU TIPO A SER TOCADO;-))
COMO POSSO VERIFICAR SE O VALOR OBTIDO ESTÁ DENTRO DOS LIMITES PERMITIDOS? NÃO ENTENDO O QUE DEVO FAZER, E COMO POSSO GARANTIR QUE SE O VALOR CALCULADO FOR INFERIOR AO PERMITIDO, O PEDIDO SERÁ ABERTO A UMA DISTÂNCIA MÍNIMA POSSÍVEL DE QUALQUER FORMA?
Tente isto,
Acho que você vai descobrir.
Tente isto,
Acho que você vai pegar o jeito.
Alexey, muito obrigado por este pedaço de código. Mas infelizmente não consigo ler o código das outras pessoas devido às conseqüências de um derrame. Posso pedir-lhe uma instrução sobre como usar este código e uma recomendação sobre o que deve ser anexado e como fazê-lo?
Eis o que me vem à mente. Eu estava procurando um preço mínimo para x-bars como este
mas isto não é correto, porque atribuo preço mínimo aihai, não baixo. corrigido por baixo e o erro é menor, mas ainda assim ocorre(((
Portanto, se não for difícil, envie instruções sobre como usar um código com desconto...
Olá a todos novamenteJ tentou aplicar o conselho que você escreveu para meu último post, mas isso não ajudou. Ainda estou recebendo 130L de erro, mas provavelmente não é o fim da perda em si, mas o preço aberto. O preço aberto para uma parada de compra e uma parada de venda é obtido determinando o preço máximo/mínimo para um x número de velas, desta forma.
O problema não é com a parada porque eu uso a mesma parada exata e atp e fixo, ordens de mercado abertas sem erros. Isso significa que o problema está no cálculo do preço para estabelecer uma ordem pendente. Eu mesmo abro ordens como esta
P/S e eu esquecemos de dizer que quero usar ordens pendentes para simular algum tipo de filtro de preço para abrir uma posição, ou seja, se o preço for na direção certa, uma ordem pendente será acionada, mas se não for, ela será cancelada e eu estarei fora do mercado. O que estou fazendo de errado ao determinar o preço de abertura? E talvez haja uma solução mais fácil para o filtro de preço para o negócio?
p/s muito gentilmente, se você escrever um código que possa ser aplicado, escreva uma instrução detalhada para ele, pois estou tendo sérios problemas para ler o código. Uma instrução detalhada, quero dizer, para que serve este código e como pode ser aplicado (para anexá-lo a uma variável e fazer algo com ele ou outra coisa, e por favor escreva seus comentários ao código de uma maneira mais compreensível). Obrigado antecipadamente ;-) P / S que tem conhecimento e experiência não passa, ajuda um irmão - não brincar ;-) tem que terminar a OP Graal ;-).
Olá a todos novamenteJ tentou aplicar o conselho que você escreveu para meu último post, mas isso não ajudou. Ainda estou recebendo 130L de erro, mas provavelmente não é o fim da perda em si, mas o preço aberto. O preço aberto para uma parada de compra e uma parada de venda é obtido determinando o preço máximo/mínimo para um x número de velas, desta forma.
O problema não é com a parada porque eu uso a mesma parada exata e atp e fixa, as ordens de mercado abrem sem erros. Isso significa que o problema está no cálculo do preço para estabelecer uma ordem pendente. Eu mesmo abro ordens como esta
P/S e eu esquecemos de dizer que quero usar ordens pendentes para simular algum tipo de filtro de preço para abrir uma posição, ou seja, se o preço for na direção certa, uma ordem pendente será acionada, mas se não for, ela será cancelada e eu estarei fora do mercado. Por favor, o que estou fazendo de errado ao determinar o preço de abertura? E talvez haja uma solução mais fácil para o filtro de preço para o negócio?
p/s muito gentilmente, se você escrever um código que possa ser aplicado, escreva uma instrução detalhada para ele, pois estou tendo sérios problemas para ler o código. Uma instrução detalhada, quero dizer, para que serve este código e como pode ser aplicado (para anexá-lo a uma variável e fazer algo com ele ou outra coisa, e por favor escreva seus comentários ao código de uma maneira mais compreensível). Obrigado antecipadamente ;-) P / S que tem conhecimento e experiência não passa, ajude um irmão - não brinque ;-) Eu tenho que terminar o Graal O_o ;-)
Na função iLowest, em vez de MODE_HIGH, insira MODE_LOW.
Você pode me dar uma dica? Eu desenhei um segmento de linha em um gráfico. Preciso conhecer os preços inicial e final do segmento. Isso pode ser feito?
Você pode me dar uma dica? Eu desenhei um segmento de linha em um gráfico. Preciso conhecer os preços inicial e final do segmento. Isso pode ser feito?
Você pode me dar uma dica? Eu desenhei um segmento de linha em um gráfico. Preciso conhecer os preços inicial e final do segmento. Isso pode ser feito?
É desejável que este segmento tenha um nome original
Na função iLowest, em vez de MODE_HIGH, insira MODE_LOW.
Colegas!
Alguém me ajuda?