Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 219

 
artmedia70:
Todos compram e todos vendem são dois roteiros diferentes. Isso ficou claro desde o início. A questão é - deve fechar absolutamente todas as posições? Ou deve fechar somente as posições que estão no gráfico onde o roteiro está sendo executado? Deve fechar posições abertas manualmente ou posições abertas por um Expert Advisor, ou ambas?

Caso contrário, eles podem escrever qualquer mensagem de erro, cheques, etc. Acho que este roteiro não precisa de nada parecido. Eu não uso EAs, eu só experimento agora, não tenho planos de aulas em minha vida no próximo mês, eu decidi verificar forex.
 
bambastik:
É tudo absolutamente, mas de acordo com o tipo de gráfico em que o roteiro se baseia, de modo que o roteiro deve ser o mais simples possível. Eu não uso Expert Advisors, estou apenas experimentando agora, não planejo nenhuma atividade em minha vida no próximo mês, por isso decidi dar uma olhada no forex.

Portanto, é o processamento de erros comerciais que faz a diferença entre um bom roteiro e um tutorial, neste caso. Você quer aprender com isso ou quer que funcione 100%?

Se você só quer o princípio, aqui está ele:

//-----------------------------------------------------------------------------+
void start() {
   string sy=Symbol();
   int    i, k=OrdersTotal()-1;

   for (i=k; i>=0; i--) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)  continue;
         if (OrderType()>1)      continue;
         if (OrderType()==OP_BUY)   OrderClose(OrderTicket(),OrderLots(),Bid,5,Blue);
         if (OrderType()==OP_SELL)  OrderClose(OrderTicket(),OrderLots(),Ask,5,Red);
         }
      }
   return;
}
//-----------------------------------------------------------------------------+

Encerra tanto a Compra como a Venda.

Não há absolutamente nenhum erro de manipulação. Você pode fechar apenas Comprar ou apenas Vender para si mesmo - remova uma linha.

Bem... apenas Comprar:

//-----------------------------------------------------------------------------+
void start() {
   string sy=Symbol();
   int    i, k=OrdersTotal()-1;

   for (i=k; i>=0; i--) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)  continue;
         if (OrderType()==OP_BUY)   OrderClose(OrderTicket(),OrderLots(),Bid,5,Blue);
         }
      }
   return;
}
//-----------------------------------------------------------------------------+

Para Venda:

//-----------------------------------------------------------------------------+
void start() {
   string sy=Symbol();
   int    i, k=OrdersTotal()-1;

   for (i=k; i>=0; i--) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)  continue;
         if (OrderType()==OP_SELL)  OrderClose(OrderTicket(),OrderLots(),Ask,5,Red);
         }
      }
   return;
}
//-----------------------------------------------------------------------------+
 

Muito obrigado. Isso é exatamente o que eu preciso. Mas o que é vermelho e azul e para que serve, provavelmente mostra o ponto de reset de cada pedido, certo? Quando eu o experimentar, vou adicioná-lo imediatamente à base de código pela artmedia70. E a propósito, por que precisamos processar um roteiro normal se o roteiro é preciso e o desenvolvedor está confiante nele?

E talvez eu não precise adicioná-los, e o próprio desenvolvedor que é o artmedia70 irá adicioná-los à base de código, eles serão necessários lá, e eu não tenho conta lá, e aos comentários não poderei responder uma palavra, eh?

 
bambastik:

Muito obrigado. Mas isso é exatamente o que eu preciso. Mas o que é vermelho e azul e para que serve, provavelmente mostra o ponto de reset de cada pedido, certo? Quando eu o experimentar, vou adicioná-lo imediatamente à base de código pela artmedia70.

Não, não para a base de código, de forma alguma. Estou acostumado a fazer coisas confiáveis, não tutoriais :)

Se eu lhe tivesse mostrado um roteiro normal, você me teria dito que eu, como todo mundo, escrevi todo tipo de 'erros' novamente... Mas... não se pode passar sem eles. Isto é trabalho com nosso dinheiro.

O azul e o vermelho são a cor da marca de fechamento.

 
artmedia70:

Não, não há necessidade de uma base de gatos. Estou acostumado a fazer coisas confiáveis, não tutoriais :)

Se eu lhe mostrasse um roteiro normal, você me diria que eu, como todos os outros, voltei a escrever todo tipo de rip-offs... Mas... não se pode passar sem eles. Este é um trabalho com nosso dinheiro.

O azul e o vermelho são a cor do ícone de fechamento.


Eu entendo tudo sobre a cattobase e sobre o vermelho e azul também, em geral mais uma vez muito obrigado por sua ajuda, mas eu não vou começar a tagarelar a menos que seja muito raro, a internet deve estar além de todas essas reverências e panfletos e carregar apenas o pensamento e pela maneira como você sozinho pode ser cem vezes mais respeitoso do que milhares de vocês, mas é lírico) em geral a artmedia70 agradece muito, muito script ajudou e na cattobase com ela eu não irei. Tenho muitos deles na história que pensavam assim e onde estão agora. imho, o dinheiro será cancelado em breve, deixará um virtual e o calará, para que todos possam ter uma conta com estritamente identificável não mais que uma certa quantia, o resto no orçamento, etc. por isso estou bem com eles, mas o processo de suas atividades é sim, interessante. p.s. pedir desculpas pela verbosidade.
 
bambastik:

A propósito, por que você precisa processar um roteiro regular se ele é claro e o desenvolvedor está confiante nele?

O desenvolvedor só estará confiante em seu programa se seu programa lidar com os erros retornados pelo servidor comercial. Se nenhum erro for tratado, o programa pode tropeçar no primeiro erro. O erro NÃO é um erro de programa, mas um erro retornado pelo servidor comercial. Por exemplo - o script acima não recebe dados novos. Portanto, o servidor pode retornar um erro sobre o preço errado. Para isso, deve-se tentar receber o ambiente comercial mais recente antes de fechar - por favor, execute o comando RefreshRates() ou, em vez do preço Ask ou Bid, use o preço obtido usando MarketInfo(Symbol(),MODE_ASK) ou MarketInfo(Symbol(),MODE_BID);

Então o roteiro assumirá esta forma (para Vender):

//-----------------------------------------------------------------------------+
void start() {
   string sy=Symbol();
   int    i, k=OrdersTotal()-1;
   
   for (i=k; i>=0; i--) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)  continue;
         if (OrderType()==OP_SELL)  {
            double pp=MarketInfo(sy,MODE_ASK);
            OrderClose(OrderTicket(),OrderLots(),pp,5,Red);
            }
         }
      }
   return;
}
//-----------------------------------------------------------------------------+

E se você tentar processar outros erros retornados pelo servidor, ele crescerá para esses valores quando você disser - "você fez isso de novo..." :)

 

Agora eu entendo e sim, é importante. A Internet não é boa aqui, é um fato, o hardware também é jovem, então não é realmente sensato confiar neles para os duzentos por cento completos, mas o risco é uma coisa nobre =) mas obrigado novamente pelo acréscimo, vou adicioná-lo tanto para comprar como para vender.

É correto para comprar?

void start() {
string sy=Symbol();
int i, k=OrdersTotal()-1;

for (i=k; i>=0; i--) {
if (OrderSelect(i,SELECT_BY_POS)) {
if (OrderSymbol()!=sy) continue;
if (OrderType()==OP_BUY) {
double pp=MarketInfo(sy,MODE_BID);
OrderClose(OrderTicket(),OrderLots(),pp,5,Blue);
}
}
}
return;
}

E se eu precisar remover apenas 3 das 5 ordens de compra disponíveis, qual é o maior valor, será que o roteiro ficará maior em tamanho? E mais uma pergunta, se eu não me dou ao trabalho de perguntar, porque esses cheques levam o tempo todo, eu me pergunto qual script tem maior probabilidade de escorregar do que aquele com cheques ou aquele sem cheques por erros?

 
bambastik:

Agora eu entendo e sim, é importante. A Internet não é boa aqui, é um fato, o hardware também é jovem, então não é realmente sábio confiar neles para os duzentos por cento completos, mas o risco é uma coisa nobre =) mas obrigado novamente pelo acréscimo, vou adicioná-lo tanto para comprar como para vender.

Isto é correto para comprar?

Sim. Mas isso não é tudo... ;)

Este roteiro, além de erros semelhantes não processados, também tocará em ordens "alienígenas". Ou seja, se você tiver um EA trabalhando neste símbolo, o roteiro fechará suas posições e o EA as abrirá novamente. É assim que eles "lutarão" uns com os outros.

Para evitar isso, é necessário limitar o roteiro em termos de magia. Isto é, adicionar uma linha se (OrderMagicNumber()>0) continuar; então o script só funcionará com ordens abertas manualmente.

Para Venda:

//-----------------------------------------------------------------------------+
void start() {
   string sy=Symbol();
   int    i, k=OrdersTotal()-1;
   
   for (i=k; i>=0; i--) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()>0)  continue;
         if (OrderSymbol()!=sy)     continue;
         if (OrderType()==OP_SELL)  {
            double pp=MarketInfo(Symbol(),MODE_ASK);
            OrderClose(OrderTicket(),OrderLots(),pp,5,Red);
            }
         }
      }
   return;
}
//-----------------------------------------------------------------------------+

E há muito mais para refinar para uma confiabilidade "normal". Chegará a tempo, não duvide. ;)

 
artmedia70:

Sim. Mas isso não é tudo... ;)

Este roteiro, além dos erros similares ainda não processados, também tocará em ordens "alienígenas". Ou seja, se você tiver um EA trabalhando neste símbolo, o roteiro fechará suas posições e o EA as abrirá novamente. É assim que eles "lutarão" uns com os outros.

Para evitar isso, é necessário limitar o roteiro em termos de magia. Isto é, adicionar uma linha se (OrderMagicNumber()>0) continuar; então o script só processará pedidos abertos manualmente.


Não sei como fazê-lo, nunca chegarei a consultores especializados, indicadores, sinais e o resto, então eu me aborreço jogando Dota e começo a picar o gráfico, adoro olhar para o movimento dele, é muito bonito, então eu sou assim, para o desenvolvimento geral e agora entendo o que é uma ordem magik que é aberta por não-automático e não-conselheiro, embora eles sejam provavelmente as mesmas pessoas ;)
 
você pode escrever: um roteiro/conselheiro para fechar dois pedidos opostos em n*pips com lucro?