[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 765

 

preciso de preços para pedidos pendentes de paradas e eu costumava usar pedidos pendentes como este

PRAskL=Ask-Point*TakeProfit+Spread;  // цена OpenBuyLimitOrder
PRAskS=Ask+Point*TakeProfit+Spread;  // цена OpenBuyStopOrder
PRBidL=Bid+Point*TakeProfit-Spread;  // цена OpenSellLimitOrder
PRBidS=Bid-Point*TakeProfit-Spread;  // цена OpenSellStopOrder

где 
TakeProfit - глобальная переменая и грубо говоря ее значение постояно
Spread - временая переменая,



но мне не удобно брать цену через рынок и решил напрямую вот так
for(int h=1; h<=OrdersTotal(); h++)         
{if (OrderSelect(h-1,SELECT_BY_POS)==true)   
int Tip=OrderType();                   
if(HaveBuyOrder == true)continue; 
double PRAskS=OrderStopLoss();                   
double PRAskL=OrderTakeProfit();                    
int Tip1=OrderType();                           
if(HaveSellOrder == true)continue; 
double PRBidS=OrderStopLoss();                   
double PRBidL=OrderTakeProfit();   

но оно выдает ошибки 
Ошибка № 4107 при открытиии SELL ордера 
invalid takeprofit for OrderSend function

Ошибка № 4107 при открытиии BUY ордера              
invalid takeprofit for OrderSend function

eu preciso de uma parada e um preço em ienes e preciso levar em conta os spreads

 
FoxUA:

preciso de preços para pedidos pendentes de paradas e eu costumava usar pedidos pendentes como este

como resolver este problema, devo ser capaz de levar o iene nas paradas e lucros e, ao mesmo tempo, devo levar em conta também os spreads

Andrei, aqui vamos nós novamente, código muito pequeno, você tem um erro na função OrderSend, enquanto nós não podemos vê-lo ou seus parâmetros nesta seção de código. Você quer colocar ordens pendentes baseadas em stop-losses e take-profits de ordens já existentes no mercado?

 
ToLik_SRGV:

Andrew, aqui vamos nós novamente, código muito pequeno, você tem um erro na função OrderSend, e não podemos vê-lo e seus parâmetros nesta parte do código. Você quer colocar ordens pendentes com base nos dados de stop-losses e take-profits das ordens de mercado já existentes?

Sim, isso mesmo, colocar ordens pendentes com base nos dados de stop-losses e take-profits das ordens de mercado existentes

o código inteiro é muito grande, é um exemplo de como funcionou para mim e do que tentei fazer, mas não está certo, o que seria certo para mim?

 

tenho um exemplo baseado em regras que agora abre, mas apenas um pedido, uma ordem de venda

ou seja, para todos os 4 pedidos pendentes, ou seja, o preço de abertura com perda de compra e venda, bem como a compra e venda de stop são os mesmos,

Quero que um limite de compra seja aberto imediatamente no fechamento, por exemplo, comprar na parada,

GBPJPY,H1: Pedido de venda aberto : 137,16
GBPJPY,H1: aberto #3897394 limite de venda 0,30 GBPJPY a 137,16 sl: 138,36 tp: 135,96 ok
GBPJPY,H1: Pedido de venda aberto : 134,76
GBPJPY,H1: aberto #3897393 stop de venda 0,10 GBPJPY a 134,76 sl: 135,96 tp: 133,56 ok
GBPJPY,H1: Ordem de compra aberta : 134,76
GBPJPY,H1: aberto #3897392 limite de compra 0,30 GBPJPY a 134,76 sl: 133,56 tp: 135,96 ok
GBPJPY,H1: Ordem de compra aberta : 137,16
GBPJPY,H1: abrir #3897391 comprar parada 0,10 GBPJPY a 137,16 sl: 135,96 tp: 138,36 ok
GBPJPY,H1: ordem de venda aberta : 135,96
GBPJPY,H1: abrir #3897390 vender 0,10 GBPJPY a 135,96 sl: 137,16 tp: 134,76 ok
GBPJPY,H1: Ordem de compra aberta : 136,04
GBPJPY,H1: abrir #3897389 comprar 0,10 GBPJPY a 136,04 sl: 134,84 tp: 137,24 ok
GBPJPY,H1: inicializado
GBPJPY,H1 entradas: StopLoss=120; TakeProfit=120; Lote=0,1; Magic=777; Slippage=5;
GBPJPY,H1: carregado com sucesso

for(int o=1; o<=OrdersTotal(); o++)                                   
{if (OrderSelect(o-1,SELECT_BY_POS)==true)                               
{ if (OrderSymbol()!= Curr_symb) continue;                          
  if (OrderType()>1) continue;      
{if(HaveBuyOrder == true) 
double PRAskL=OrderStopLoss();                   
double PRAskS=OrderTakeProfit();      
{                   
int Tip1=OrderType();                         
if(HaveSellOrder == true)
double PRBidL=OrderStopLoss();                   
double PRBidS=OrderTakeProfit(); } }                  
} }              
 
hedger:

Ajude-me a descobrir isso.

No gráfico que pode ser aberto no testador após a conclusão dos testes, os indicadores nos quais a EA se baseia nem sempre são desenhados. Isto pode ser consertado e, em caso afirmativo, como? Responda-me, por favor.

Talvez haja uma resposta para a minha pergunta?
 
hedger:

Talvez haja uma resposta para a minha pergunta?

indicadores do HideTestIndicators( couro de boi)
A função estabelece uma bandeira para ocultar indicadores chamados pelo Conselheiro Especialista. Quando o gráfico é aberto após o teste, os indicadores marcados com a bandeira de couro não serão exibidos no gráfico de teste. Os indicadores serão sinalizados com a bandeira oculta atual antes de cada chamada.
Deve-se observar que somente os indicadores que são chamados diretamente do especialista em teste podem ser mostrados no gráfico de teste.
 
zhuki:

indicadores do HideTestIndicators( couro de boi)
A função estabelece uma bandeira para ocultar indicadores chamados pelo Conselheiro Especialista. Quando o gráfico é aberto após o teste, os indicadores marcados com a bandeira de couro não serão exibidos no gráfico de teste. Os indicadores serão sinalizados com a bandeira oculta atual antes de cada chamada.
Deve-se observar que somente os indicadores que são chamados diretamente do Consultor Especialista em teste podem ser mostrados no gráfico de teste.

Obrigado, Igor! Tive que aprender o básico cegamente.
 

Assim, alguém sabe como corrigir o código acima para definir o valor de variáveis como esta

PRAskL=StopLoss de pedido Comprar + Espalhar
PRAskS=TakeProfit do pedido Comprar + Espalhar
PRBidL=StopLoss Sell-Spread orders
PRBidS=TakeProfit Sell-Spread orders

 
FoxUA:

Assim, alguém sabe como corrigir o código acima para definir os valores de variáveis como este

PRAskL=StopLoss encomendas Comprar + Espalhar
PRAskS=TakeProfit encomendas Comprar + Espalhar
PRBidL=StopLoss encomendas Vender-Spread
PRBidS=TakeProfit encomendas Vender-Spread

Se você tiver erros relacionados a paradas erradas, então verifique o tamanho dos níveis de parada; use-os para verificar também as ordens pendentes - você não pode colocar menos do que isso...

Por exemplo:

double Level_stop=MarketInfo(Symbol(),MODE_STOPLEVEL ); //Minimum stop setting distance

 
artmedia70:

Se você tiver erros relacionados a paradas erradas, então verifique o tamanho dos níveis de parada; use-os para verificar também as ordens pendentes - não menos que isso é permitido...

Por exemplo:

double Level_stop=MarketInfo(Symbol(),MODE_STOPLEVEL ); //minimal stop setting distance


o último abre sem erros, mas só abre com dados de Venda. é um recorte do registro e essa não é a distribuição de preço correta que descrevi.

Aqui estão eles.

PRAskL=StopLoss Buy + Spread orders
PRAskS=TakeProfit of Buy + Spread orders
PRBidL=StopLoss Sell-Spread orders
PRBidS=TakeProfit Sell-Spread orders

é assim que se parece agora

PRAskL=StopLoss Sell ordem de venda

PRAskS=TakeProfit Sell encomendas

PRBidL=StopLoss Sell ordem de venda

PRBidS=TakeProfit Sell Order