Por favor, me dê uma dica, porque eu nunca pedi ajuda a um programador antes - página 6

 
Serqey Nikitin:

Você entendeu mal... Ninguém vai FIXAR as citações...

Não há nenhuma proibição nas regras contra "atrasos" na execução de ordens... e a expansão...

Entendo seu ponto de vista. Você provavelmente me entendeu mal. O que eu quis dizer é que há limites para tudo. O spread não se alargará 10 vezes para cada ordem em aberto. O atraso não será aumentado em várias vezes.

E para ser honesto, eu não vim aqui para me gabar. Se a idéia não funcionar, eu serei a maioria, essa é a norma.
 
Serqey Nikitin:

Você não entende... Ninguém vai FIXAR as citações...

Não há nenhuma proibição nas regras contra "atrasos" na execução de ordens... e a expansão...

Lamento que você tenha perdido tanto tempo com uma idéia inútil..., e apenas porque você caiu nos anúncios de escalpe...
 
Serqey Nikitin:
Lamento que você tenha perdido tanto tempo com uma idéia inútil..., e apenas porque você caiu em anúncios de escalpes...

Este é o fim de nosso diálogo com você. Não quero me intrometer e investigar as especulações de outras pessoas.

 
Aleksandr2233:

Este é o fim de nosso diálogo com você. Não quero me intrometer e investigar as especulações de outras pessoas.

Use sua cabeça... às vezes ajuda se você não receber o conselho certo...
 

O Expert Advisor define Stop Loss e Take Profit para ordens pendentes, se não houver nenhuma. E elimina as ordens pendentes se a distância da ordem pendente até o preço exceder a distância da ordem pendente até a parada.

#property version   "2.00"
#property strict

input int StopLoss=300;
input int TakeProfit=500;

double loss, profit;
bool result;

string symbol;
double point;
int digits;
 
MqlTick tick;


int OnInit()
   {
   symbol=Symbol();
   point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   
   }

void OnTick()
   {
   SymbolInfoTick(symbol,tick);
   for(int i=OrdersTotal()-1; i>=0; i--)
      {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()!=symbol && OrderClosePrice()!=0) continue;
      if(OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(tick.ask-MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && tick.ask-OrderOpenPrice()>OrderOpenPrice()-OrderStopLoss())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      if(OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(tick.ask-MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && OrderOpenPrice()-tick.bid>OrderStopLoss()-OrderOpenPrice())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      }
   }

não testou

 
Aleksei Stepanenko:

O Expert Advisor define Stop Loss e Take Profit para ordens pendentes, se não houver nenhuma. E elimina as ordens pendentes se a distância da ordem pendente até o preço exceder a distância da ordem pendente até a parada.

não foram testados

Vou verificar mais tarde. Obrigado. É mais provável que respondam a você em uma mensagem particular.

 
Serqey Nikitin:
Vire a cabeça..., às vezes ajuda se você não receber o conselho certo...

Obrigado pelo conselho.

 
Aleksei Stepanenko:

O Expert Advisor define Stop Loss e Take Profit para ordens pendentes, se não houver nenhuma. E elimina as ordens pendentes se a distância da ordem pendente até o preço exceder a distância da ordem pendente até a parada.

não foram testados

Entretanto, não sei o que fazer com o código para obter um arquivo ex4 pronto. Sei que existe um programa MetaEditor, mas só o abri uma vez.

 
colocá-lo na pasta \QL4\Indicadores e reiniciar o terminal
Arquivos anexados:
 
Aleksei Stepanenko:
colocá-lo na pasta \QL4\Indicadores e reiniciar o terminal

e o arquivo que eu entendo é um especialista

Um retrato do ee