Precisa de ajuda para modificar o script, por favor
Results 1 to 7 of 7

Thread: Precisa de ajuda para modificar o script, por favor

  1. #1
    Olá a todos,

    Eu tenho script que coloca o comércio pendente. Ele coloca o comércio em preços altos e baixos anteriores para compra e venda ... Eu quero esse script para modificar e adicionar alguns pips no comércio pendente ... por exemplo, eu quero colocar comércio pendente 15 pips de alta e baixa preço de vela anterior ...

    Então alguém pode por favor me dizer qual parte eu preciso modificar?

    obrigado

    Código inserido #import stdlib.ex4 string ErrorDescription (int e); #import #include lt; stdlib.mqhgt; #include lt; WinUser32.mqhgt;/- Ordens a serem abertas #define PendingOrders 1/Quantidade de ordens pendentes a serem adicionadas/- Gerenciamento de dinheiro #define MoneyManagement 1/Use Money Management #define LotSize 0.1/Se nao, use este tamanho #define RiskPercent 0.5/Risco de negociação inicial #define RiskDecrease 0.25/Redução de risco para a próxima negociação/- ATR e multiplicadores #define ATRPeriod 30/ATR Período para usar #define ATRStopMultiplier 2/Multiplicador para o stop loss inicial #define ATROrderMultiplier 0.5/Multiplicador para pedidos pendentes adicionais/- Não me mude #define ShortName Buy Parar #define MagicNumber 5001 #define Escorregamento 6 #define Shift 1/- Duplo interno LastOrderLots = EMPTY_VALUE; double LastOrderPrice; double DecimalPip;/ ----------------------------------------------- ------------------- /| Função de início de script personalizado/ ------------------------------------------- ----------------------- int start () {//Confirma se (MessageBox (ShortName - Você realmente quer colocar (PendingOrders 1 ) Ordens BUYSTOP ?, Script, MB_YESNO | MB_ICONQUESTION)! = IDYES) return (1);/Pip valor DecimalPip = GetDecimalPip ();/Barras duplas CLOSE = iClose (Symbol (), 0, Shift); double HIGH = iHigh (símbolo (), 0, deslocamento); double LOW = iLow (Symbol (), 0, Shift);/-/- Coloque a primeira ordem/- if (Bid gt; HIGH) {PlaceOrder (OP_BUY, GetLotSize ()); } else {PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH); }/-/- Coloque pedidos pendentes/- para (int it = 0; it lt; PendingOrders; it ) PlaceOrder (OP_BUYSTOP, GetLotSize (), LastOrderPrice iATR (símbolo (), 0, ATRPeriod, Mudança) * ATROrderMultiplier);/Olá! Comentário (Copyright http://www.pointzero-trading.com);/Bye return (0); }/ ---------------------------------------------- -------------------- /| Minhas funções/ --------------------------------------------- --------------------- ** * Calcula o tamanho do lote de acordo com o risco * @return double *double GetLotSize () {//Lotes double l_lotz = LotSize ;/Lotsize e restrições double l_minlot = MarketInfo (Symbol (), MODE_MINLOT); double l_maxlot = MarketInfo (símbolo (), MODE_MAXLOT); double l_lotstep = MarketInfo (símbolo (), MODE_LOTSTEP); int vp = 0; if (l_lotstep == 0,01) vp = 2; mais vp = 1;/Aplique o gerenciamento de dinheiro if (MoneyManagement == true) l_lotz = MathFloor (AccountBalance () * RiskPercent100.0)1000.0;/Esperar! Verifique se estamos pirateando if (LastOrderLots! = EMPTY_VALUELastOrderLots gt; 0) l_lotz = LastOrderLots * RiskDecrease;/Normalize para lotstep l_lotz = NormalizeDouble (l_lotz, vp);/Marque maxminlot aqui if (l_lotz lt; l_minlot) l_lotz = l_minlot; if (l_lotz gt; l_maxlot) l_lotz = l_maxlot;/Tchau! return (l_lotz); }** * Coloca uma ordem * @param int Tipo * @param double Lotz * @param double PendingPrice *void PlaceOrder (int Tipo, double Lotz, double PendingPrice = 0) {//Local int err; cor l_color; double l_stoploss, l_price, l_sprice = 0; double stoplevel = getStopLevelInPips (); RefreshRates ();/Preço e cor para o tipo de negociação if (Type == OP_BUY) {l_price = Ask; l_cor = azul; } if (Type == OP_SELL) {l_price = Lance; l_cor = vermelho; } if (Digite == OP_BUYSTOP) {l_price = PendingPrice; if (l_price lt; = Perguntar stoplevel * DecimalPip) l_price = Perguntar stoplevel * DecimalPip; l_color = LightBlue; } if (Type == OP_SELLSTOP) {l_price = PendingPrice; if (l_price gt; = Nivel de fim de lance * DecimalPip) l_price = Bid ​​- stoplevel * DecimalPip; l_cor = Salmão; }/Evite colusões enquanto (IsTradeContextBusy ()) Sleep (1000); int l_datetime = TimeCurrent ();/Enviar ordem int l_ticket = OrderSend (Symbol (), Tipo, Lotz, MyNormalizeDouble (l_price), Slippage, 0, 0,, ​​MagicNumber, 0, l_cor);/Rety if falha se (l_ticket == -1) {while (l_ticket == -1 TimeCurrent () - l_datetime lt; 5! IsTesting ()) {err = GetLastError (); if (err == 148) retornar; Sono (1000); while (IsTradeContextBusy ()) Dormir (1000); RefreshRates (); l_ticket = OrderSend (Symbol (), Tipo, Lotz, MyNormalizeDouble (l_price), Slippage, 0, 0,, ​​MagicNumber, 0, l_cor); } if (l_ticket == -1) Imprimir (ShortName (OrderSend Error) ErrorDescription (GetLastError ())); } if (l_ticket! = -1) {LastOrderLots = Lotz; LastOrderPrice = l_price; if (OrderSelect (l_icket, SELECT_BY_TICKET, MODE_TRADES)) {l_stoploss = MyNormalizeDouble (GetStopLoss (Tipo, PendingPrice)); if (! OrderModify (l_ticket, OrderOpenPrice (), l_stoploss, 0, 0, Green)) Imprimir (ShortName (erro OrderModify) ErrorDescription (GetLastError ())); }}}** * Retorna o stoploss inicial * @param int Tipo * @param double ForcedPrice * @return double *double GetStopLoss (int Tipo, double ForcedPrice = 0) {double l_sl = 0; if (Digite == OP_BUY) l_sl = Ask - iATR (Símbolo (), 0, ATRPeriod, Shift) * ATRStopMultiplier - (Ask - Bid); if (Digite == OP_SELL) l_sl = Bid ​​ iATR (símbolo (), 0, ATRPeriod, Shift) * ATRStopMultiplier (Ask - Bid); if (Digite == OP_BUYSTOP) l_sl = ForcedPrice - iATR (Símbolo (), 0, ATRPeriod, Shift) * ATRStopMultiplier - (Ask - Bid); if (Digite == OP_SELLSTOP) l_sl = ForcedPrice iATR (símbolo (), 0, ATRPeriod, Shift) * ATRStopMultiplier (Ask - Bid); return (l_sl); }** * Retorna o valor do pip decimal * @return double*double GetDecimalPip () {switch (Dígitos) {caso 5: retorno (0,0001); caso 4: retorno (0,0001); caso 3: retorno (0,001); padrão: retorno (0,01); }}** * Normaliza preço * @param double price * @return double *double MyNormalizeDouble (preço duplo) {return (NormalizeDouble (preço, Dígitos)); }** * Obter linha de base mais desvio * @return double *double getStopLevelInPips () {double s = MarketInfo (Symbol (), MODE_STOPLEVEL) 1.0; if (Dígitos == 5) s = s10; retorno (s); }

  2. #2

    Olá Pessoal, tenho script que coloca o trade pendente. Ele coloca o comércio em preços altos e baixos anteriores para compra e venda ... Eu quero esse script para modificar e adicionar alguns pips no comércio pendente ... por exemplo, eu quero colocar comércio pendente 15 pips de alta e baixa preço de vela anterior ... assim alguém pode por favor me diga qual parte eu preciso modificar? obrigado #import stdlib.ex4 string ErrorDescription (int e); #import #include lt; stdlib.mqhgt; #include lt; WinUser32.mqhgt;/- Pedidos a serem abertos #define PendingOrders 1/Quantidade de pedidos pendentes ...
    shg- Line 49 você precisa adicionar isto: PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH (15 * DecimalPip));

  3. #3

    {quote} - Linha 49 você precisa adicionar isto: PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH (15 * DecimalPip));
    Obrigado companheiro ... Aprecie sua ajuda e resposta rápida ... Atenciosamente

  4. #4

    {quote} - Linha 49 você precisa adicionar isto: PlaceOrder (OP_BUYSTOP, GetLotSize (), HIGH (15 * DecimalPip));
    Oi companheiro, não está funcionando ... hoje quando eu modifiquei o script como o seu dizer .. não colocar o comércio correto ... em vez de pendente é apenas colocar o comércio a preço atual ... me guiar se puder .. . obrigado

  5. #5
    2 Anexo (s)
    {quote} Oi companheiro, não está funcionando ... hoje quando eu modifiquei o roteiro como você diz .. não colocar o comércio correto ... em vez de pendente apenas colocando o comércio a preço atual ... me guiar se você pode ... obrigado
    Apenas testou. Isso está definido para 100 pips acima
    https://www.tradingintuitivo.com/cry...acci-grid.html
    https://www.tradingintuitivo.com/att...1636677425.mq4

  6. #6

    {quote} - Apenas testei isso. Isso está definido para 100 pips acima {image} {file}
    muito obrigado pela vossa ajuda ... bem em (100 * DecimalPip), achei que o decimalpip é para o meu entendimento e não incluí no script e que deve ser a razão pela qual o script não estava funcionando no meu fim ... os melhores cumprimentos e obrigado mais uma vez pela vossa ajuda ...

  7. #7

    {quote} Oi companheiro, não está funcionando ... hoje quando eu modifiquei o roteiro como você diz .. não colocar o comércio correto ... em vez de pendente apenas colocando o comércio a preço atual ... me guiar se você pode ... obrigado
    gt; gt; em vez de pendente apenas colocando a negociação no preço atual OP_BUY ou OP_SELL em vez de pendente? mas você tem chamada PlaceOrder (OP_BUY, GetLotSize ()); Em vez disso, essa chamada é executada em vez da ordem pendente de posicionamento. Você tem que verificar a lógica. E ur error management while (l_etcket == -1 TimeCurrent () - l_datetime lt; 5! IsTesting ()) {err = GetLastError (); if (err == 148) retornar; Sono (1000); while (IsTradeContextBusy ()) Dormir (1000); RefreshRates (); l_ticket = OrderSend (Symbol (), Tipo, Lotz, MyNormalizeDouble (l_price), Slippage, 0, 0,, ​​MagicNumber, 0, l_cor); } não está claro. O que significa err = GetLastError (); if (err == 148) retornar; no começo do ciclo?

Permissões de Publicação

  • Não pode publicar novos tópicos
  • Não pode publicar respostas
  • Não pode publicar anexos
  • Não pode editar as suas publicações
  •  
  • Código BB está Ativo
  • Smilies estão Ativos
  • Código [IMG] está Ativo
  • Código [VIDEO] está Ativo
  • Código HTML está Desligado
O site da tradingintuitivo utiliza cookies
O site da tradingintuitivo utiliza cookies, alguns já foram definidos. Pode ler sobre a nossa utilização de cookies aqui. Por favor, clique no botão à direita para aceitar os nossos cookies. Se continuar a usar o site da tradingintuitivo, vamos supor que aceita os nossos cookies.