Boa tarde. A questão é a seguinte. Nolivro MQL4 daS.K. , naseção "Operações Comerciais", há um exemplo de um script simples que modifica uma ordem pendente cujo preço declarado é maior do que o de outras ordens pendentes(modifyorderprice.mq4) comosegue:
//--------------------------------------------------------------------// modifyorderprice.mq4 // Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------- 1 --int start() // Спец.функция start
{
int Tral=10; // Дист. приближенияstring Symb=Symbol(); // Финанс. инструментdouble Dist=1000000.0; // Предустановкаdouble Win_Price=WindowPriceOnDropped(); // Здесь брошен скрипт//--------------------------------------------------------------- 2 --for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров://------------------------------------------------------ 3 --if (OrderSymbol()!= Symb) continue; // Не наш фин.инструм.if (OrderType()<2) continue; // Рыночный ордер //------------------------------------------------------ 4 --if(NormalizeDouble(MathAbs(OrderOpenPrice()-Win_Price),Digits)
< NormalizeDouble(Dist,Digits)) // Выбираем ближайший
{
Dist=MathAbs(OrderOpenPrice()-Win_Price);// Новое значениеint Tip =OrderType(); // Тип выбранного орд.int Ticket=OrderTicket(); // Номер выбранн. орд.double Price =OrderOpenPrice(); // Цена выбранн. орд.double SL =OrderStopLoss(); // SL выбранного орд.double TP =OrderTakeProfit(); // TP выбранного орд.
} // Конец if
} // Конец анализа ордера
} // Конец перебора орд.//--------------------------------------------------------------- 5 --if (Tip==0) // Если отложенных нет
{
Alert("По ",Symb," отложенных ордеров нет");
return; // Выход из программы
}
//--------------------------------------------------------------- 6 --while(true) // Цикл закрытия орд.
{
Ou há um erro neste script no bloco 5-6, porque (como eu vejo) a linha
if (Tip==0) // Если отложенных нет
deve ser da forma
if (Tip<2) // Если отложенных нет
uma vez que todos os tipos de ordens não pendentes (de mercado) têm tipo 0 ou 1, ou seja, menos de 2.
Ou eu entendi algo errado.
Pergunta: Você poderia esclarecer: se eu entendi algo errado, o que é isso?
Boa tarde. Tenho a seguinte pergunta. Nolivro MQL4da S.K. , naseção "Operações Comerciais", há um exemplo de um script simples que modifica uma ordem pendente cujo preço declarado está mais próximo do ponto em que o script está anexado do que os preços de outras ordens pendentes(
querida... não escreva em letras tão grandes aqui... você pode quebrar seus olhos :-)
e que... antes de fazer perguntas... você já tentou ler o BACKGROUND no MetaEditor? Tudo isso?...para começar...para não fazer perguntas estúpidas sobre tipos e coisas assim....
===
Tipo de operação para a função OrderSend(). Pode ser qualquer um dos seguintes valores:
Pergunta: como memorizar o critério para que ele tenha um valor de 1 ou 2 (dependendo do passe) até que um novo passe ocorra e não seja reiniciado em carrapatos subseqüentes .
Boa tarde. A questão é a seguinte. Nolivro MQL4 daS.K. , naseção "Operações Comerciais", há um exemplo de um script simples que modifica uma ordem pendente cujo preço declarado é maior do que o de outras ordens pendentes (modifyorderprice.mq4) como segue:
Ou há um erro neste script no bloco 5-6, porque (como eu vejo) a linha deve ser da forma uma vez que todos os tipos de ordens não pendentes (de mercado) têm tipo 0 ou 1, ou seja, menos de 2.Ou eu entendi algo errado.
Pergunta: Você poderia esclarecer: se eu entendi algo errado, o que é isso?
Agradecemos antecipadamente sua resposta.
Boa tarde. Tenho a seguinte pergunta. Nolivro MQL4da S.K. , naseção "Operações Comerciais", há um exemplo de um script simples que modifica uma ordem pendente cujo preço declarado está mais próximo do ponto em que o script está anexado do que os preços de outras ordens pendentes(
Ou há um erro neste script no bloco 5-6, porque (como eu vejo) a linhadeve ser
assim porque todos os tipos de ordens não-pendentes (de mercado) têm tipo 0 ou 1, ou seja, menos de 2.
Ou eu entendi algo errado.
Pergunta: você poderia me deixar claro: se eu entendi algo errado, o que
exatamente?Obrigado antecipadamente pela resposta
querida... não escreva em letras tão grandes aqui... você pode quebrar seus olhos :-)
e que... antes de fazer perguntas... você já tentou ler o BACKGROUND no MetaEditor? Tudo isso?...para começar...para não fazer perguntas estúpidas sobre tipos e coisas assim....
===
Tipo de operação para a função OrderSend(). Pode ser qualquer um dos seguintes valores:
mas quanto ao tipo - não há nada de errado... exatamente ==0 deve ser...
porque no terceiro bloco
ordens de mercado são puladas...
===
e se as ordens pendentes forem encontradas na lista de ordens, a variável TYPE não será igual a 0
---
Boa tarde. Você pode me dar uma dica?
Por exemplo, temos critério para que a MA passe pelo Level_R e Level_S:
int Criterion; double MA_1=iMA(......,0); double MA_2=iMA(......,1); double MA_3=iMA(......,2);Pergunta: como memorizar o critério para que ele tenha um valor de 1 ou 2 (dependendo do passe) até que um novo passe ocorra e não seja reiniciado em carrapatos subseqüentes .
Colocar a definição da variável fora da função Start ou outra função... Dentro de variáveis globais...
por que existem intermediários? e qual é a função do FUN?
E && não estão no lugar certo...