Saturday 12 August 2017

Forex Grid Bot


Forex Grid Bot Review É este Forex sistema de negociação automático um Scam forexgridbot Pode o Forex Grid Bot realmente triplicar uma conta comercial em apenas 3 semanas Este robô tornou-me muito céptico no início até eu finalmente decidi testá-lo na minha conta de demonstração por uma semana . Em suma, o Forex Grid Bot Software pretende fazer muitas pequenas negociações rentáveis ​​e parece entrar no mercado sempre que seus indicadores internos dêem um sinal de compra ou venda. Claro, a quantidade de dinheiro que este robô pode fazer depende em parte do capital inicial que você colocou, então você pode querer testar este software primeiro até estar confiante o suficiente para investir mais dinheiro com ele. O funcionamento do Forex Grid Bot não exige nenhum esforço da sua parte. Tudo o que você precisa fazer é instalar a plataforma MetaTrader 4 e o software para ela. Você também precisará ter uma conta de negociação Forex com um corretor que suporte MT4 se ainda não possui uma conta. Uma vez que é feito, você simplesmente deixa o robô on-line para fazer sua negociação. Se você não pode deixar seu computador para o 24 7, também há outra opção que você pode usar para fazer o upload do software para um Servidor Virtual Privado que você encontrará mais sobre o pacote Forex Grid Bot. Confira o sistema Forex Grid Bot abaixo para descobrir como ele funciona. Copyright Todos os direitos reservados. Este site fornece a revisão como um serviço para a comunidade da Internet. Não endossamos nenhuma das empresas, produtos ou serviços mencionados. Cada produto ou serviço é a marca registrada de sua respectiva empresa. Todas as informações são fornecidas apenas como opiniões. Smart Grid zilva - 21 de agosto de 2015 15:48 Sim, na descrição está escrito um comércio por barra. Para mim, ainda não é necessário abrir apenas um comércio por barra, então não busco o Código para fazer isso. Por favor, é bom ajudá-lo) RelaX - 21 de agosto de 2015 17:02 OK, obrigado pelo seu ponto de vista. Vou duplicar o teste em demo acc. Apenas mais uma pergunta. É possibile alterar o código para verificar as condições por período de tempo definido em vez de verificar por cada marca. Eu quero dizer que quando eu estiver usando um período de tempo de 1m, eu quero que o código seja verificado após cada vela de 1 m. Se as condições de cBot forem encontradas no início da vela de 1 m (distância de pipstep e maxspread), então ele deve abrir a próxima posição, se não, aguarde até a próxima vela de 1 m e verifique novamente. Essa mudança é possível Obrigado mais uma vez, 8051361 - 25 de agosto de 2015 15:09 Uma palavra Impressionante Eu sou novo em cBots e não tenho um cérebro de programadores: (. Se perguntando se você poderia explicar o cálculo do Take Profit, não consigo imaginar A partir da lógica. Se não tiverem muita dificuldade. ColossusFX - 27 de agosto de 2015 15:09 Alguém conseguiu um recurso de perda de trabalho? Eles poderiam compartilhar o código que eu construí com um código Stoploss, mas na verdade não definiu a parada Loss. Zilva - 30 de setembro de 2015 12:31 é possível, basta codificar o que você quer fazer no onBar () em vez de onTick (). Em palavras fáceis. Calcula todas as posições em uma Direção para compensar Lucros e Perdas, então Acabou de adicionar Take Profit. Apenas ad a Stoploss in ExecuteMarketOrder (TradeType, Symbol, Volume, Label, STOPLOSS, TakeProfit, Marketrange, Comment) Beste Gruumlszlige (Greetz) mariam14 - 03 de outubro de 2015 21:58 você possui um para o metatrader Chiripacha - 09 de outubro de 2015 18:11 faria sentido ter quotmax. Tra Desquot na minha demonstração runnung grid inteligente eu tenho agora 17 posições eu poderia copiar uma linha com max trade de outro bot e colocá-lo em smart grid tom348 - 27 de outubro de 2015 14:49 Este algo é incrível, mas o único problema é que é isso com Um menor capital inicial, a quantidade de negociações para um certo tamanho de lote diminuirá drasticamente em comparação com o mesmo tamanho de lote com um maior capital inicial. Você poderia corrigir isso de alguma forma, pois não sei nada sobre a codificação. Ou se você pudesse responder e eu lhe darei meu endereço de e-mail para que possamos conversar. Gizmotn76 - 03 de novembro de 2015 09:22 A partir do melhor que posso dizer, esta base de código é baseada em algum tipo de mt4 ea que foi descompilado, o que tornou difícil a leitura e o seguimento. Eu estava olhando para fazer algumas modificações no código, então, antes de começar, decidi resolver as coisas para que eu pudesse ver o que estava acontecendo. Estou postando os resultados (espero) que a lógica seja igual ao original, mas um pouco mais fácil de ler. Note, backtest este bot como ele gosta da maioria dos robôs baseados em grade pode entrar em um dreno de capital catastrófico se o subjacente começar a se manter duro. Usando o sistema usando cAlgo. API namespace cAlgo Robot (TimeZone TimeZones. UTC, AccessRights AccessRights. None) classe pública SmartGrid. Robot private bool accountIsOutOfMoney private int openTradeResult private readonly string Label quotSmartGrid2quot privado DateTime lastBuyTradeTime private DateTime lastSellTradeTime Parâmetro (quipPap Stepquot, DefaultValue 10, MinValue 1) public int PipStep Parâmetro (quotFirst Volumequot, DefaultValue 1000, MinValue 1000, Step 1000) public int FirstVolume Parameter (QuotVolume Exponentquot, DefaultValue 1.0, MinValue 0.1, MaxValue 5.0) público duplo VolumeExponent Parâmetro (quotMax Spreadquot, DefaultValue 3.0) público duplo MaxSpread Parâmetro (quotAverage TPquot, DefaultValue 3, MinValue 1) public int AverageTakeProfit protected override void OnStart () protected override void OnTick () if (CountOfTradesOfType (TradeType. Buy) gt 0) AdjustBuyPositionTakeProfits (CalculateAveragePositionPrice (TradeType. Buy), AverageTakeProfit) se (CountOfTradesOfType (TradeType. Sell) gt 0) AdjustSellPositionTakeProfits (CalculateAveragePositionPrice (TradeType. Sell), AverageTakeProfit) if (Curre NtSpread lt MaxSpread ampamp accountIsOutOfMoney) ProcessTrades () protected override void OnError (erro de erro) if (error. Code ErrorCode. NoMoney) accountIsOutOfMoney true Imprimir (quotopening parado porque: money money insuficiente) protected anular void OnBar () RefreshData () protected anular votação OnStop () ChartObjects. RemoveAllObjects () private void ProcessTrades () if (Comprar ampamp CountOfTradesOfType (TradeType. Buy) 0 ampamp MarketSeries. Close. Last (1) gt MarketSeries. Close. Last (2)) openTradeResult OrderSend (TradeType. Buy, LimitVolume (FirstVolume)) se (openTradeResult gt 0) lastBuyTradeTime MarketSeries. OpenTime. Last (0) else Print (quotFirst BUY openning error em: quot, Symbol. Ask, quotError Type: quot, LastResult. Error) if (Vender ampamp CountOfTradesOfType ( TradeType. Sell) 0 ampamp MarketSeries. Close. Last (2) gt MarketSeries. Close. Last (1)) openTradeResult OrderSend (TradeType. Sell, LimitVolume (FirstVolume)) se (openTradeResult gt 0) lastSellTradeTime MarketSeries. OpenTime. Last (0 ) Else Print (quotFIRst VELA abertura de erro em: quot, Symbol. Bid, quotError Type: quot, LastResult. Error) if (CountOfTradesOfType (TradeType. Buy) gt 0) if (Math. Round (Symbol. Ask, Symbol. Digits) lt Math. Round (FindLowestPositionPrice (TradeType. Buy) - PipStep Symbol. PipSize, Symbol. Digits) ampamp lastBuyTradeTime MarketSeries. OpenTime. Last (0)) var calculadoVolume CalculateVolume (TradeType. Buy) openTradeResult OrderSend (TradeType. Buy, LimitVolume (calculadoVolume) ) If (openTradeResult gt 0) lastBuyTradeTime MarketSeries. OpenTime. Last (0) else Print (quotNext COMPRA o erro de abertura em: quot, Symbol. Ask, quotError Type: quot, LastResult. Error) if (CountOfTradesOfType (TradeType. Sell) gt 0 ) Se (Math. Round (Symbol. Bid, Symbol. Digits) gt Math. Round (FindHighestPositionPrice (TradeType. Sell) PipStep Symbol. PipSize, Symbol. Digits) ampamp lastSellTradeTime MarketSeries. OpenTime. Last (0)) var calculadoVolume CalculateVolume ( TradeType. Sell) openTradeResult OrderSend (TradeType. Sell, LimitVolume (calcul AtedVolume)) se (openTradeResult gt 0) lastSellTradeTime MarketSeries. OpenTime. Last (0) else Print (quotNext SELL opening error in: quot, Symbol. Bid, quotError Type: quot, LastResult. Error) private int OrderSend (TradeType tradeType, long VolumeToUse) var returnResult 0 se (volumeToUse gt 0) var resultado ExecuteMarketOrder (tradeType, Symbol, volumeToUse, Label, 0, 0, 0, quotsmartgridquot) se (result. IsSeguato) Print (tradeType, quotOpened at: quot, result. Position. EntryPrice) returnResult 1 else Imprimir (tradeType, quotOpenning Error: quot, result. Error) else Imprimir (quotVolume error de cálculo: Volume calculado é: quot, volumeToUse) return returnResult private void AdjustBuyPositionTakeProfits (double averageBuyPositionPrice, int averageTakeProfit) foreach (var buyPosition em Posições) se (buyPosition. Label Label ampamp buyPosition. SymbolCode Symbol. Code) se (buyPosition. TradeType TradeType. Buy) duplo. CalculadoTakeProfit Math. Round (averageBuyPositionPrice averageTakeProfitSymbol. PipSize, Symbol. Digits) se (buyPosition. TakeProfit calculadoTakeProfit) ModifyPosition (buyPosition, buyPosition. StopLoss, calculadoTakeProfit) private void AdjustSellPositionTakeProfits (double averageSellPositionPrice, int averageTakeProfit) foreach (var sellPosition in Positions) if ( SellPosition. Label Label ampamp sellPosition. SymbolCode Symbol. Code) se (sellPosition. TradeType TradeType. Sell) duplicar. CalculadoTakeProfit Math. Round (averageSellPositionPrice - averageTakeProfitSymbol. PipSize, Symbol. Digits) se (sellPosition. TakeProfit calculadoTakeProfit) ModifyPosition (sellPosition, sellPosition. StopLoss, calculadoTakeProfit) private void DisplayStatusOnChart () if (CountOfTradesOfType (TradeType. Buy) gt 1) var y CalculateAveragePositionPrice (TradeType. Buy) ChartObjects. DrawHorizontalLine (quotbpointquot, y, Colors. Yellow, 2, LineStyle. Dots) else ChartObjects. RemoveObject (quotbpointquot) if (CountOfTradesOfType (TradeType. Sell) gt 1) var z CalculateAveragePositionPrice (TradeType. Sell) ChartObjects. DrawHorizontalLine (quotspointquot, z, Colors. HotPink, 2, LineStyle. Dots) else ChartObjects. RemoveObject (quotspointquot) ChartObjects. DrawText (quotpanquot, GenerateStatusText (), StaticPosition. TopLeft, Colors. Tomato) cadeia privada GenerateStatusText () var statusText Quotquot var buyPositions quotquot var sellPositions quotquot var spread quotquot var buyDistance quotquot var SellDistance quotquot spread quotnSpread quot Math. Round (CurrentSpread, 1) buyPositions quotnBuy Positions quot CountOfTradesOfType (TradeType. Buy) sellPositions quotnSell Positions quot CountOfTradesOfType (TradeType. Sell) if (CountOfTradesOfType (TradeType. Buy) gt 0) var averageBuyFromCurrent Math. Round ( (CalculateAveragePositionPrice (TradeType. Buy) - Symbol. Bid) Symbol. PipSize, 1) buyDistance quotnBuy Target Away quot averageBuyFromCurrent if (CountOfTradesOfType (TradeType. Sell) gt 0) var médiaSellFromCurrent Math. Round ((Symbol. Ask - CalculateAveragePositionPrice (TradeType. Vender)) Symbol. PipSize, 1) sellDistance quotnSell Target Away quot averageSellFromCurrent if (CurrentSpread gt MaxSpread) statusText quotMAX SPREAD EXCEEDquot else statusText quotSmart Gridquot buyPositions spread sellPositions buyDistance sellDistance return (statusText) private int CountOfTradesOfType (TradeType tradeType) var tradeCount 0 foreach ( Posição var em Posições) se (posição. Label Label ampamp position. SymbolCode Symbol. Code) if (position. TradeType tradeType) tradeCount private double CalculateAveragePositionPrice (TradeType tradeType) duplo resultado 0 double averagePrice 0 long count 0 foreach (posição var em posições) if (position. Label Label ampamp position. SymbolCode Symbol. Code) se (position. TradeType tradeType) averagePrice position. EntryPriceposition. Volume count position. Volume if (averagePrice gt 0 ampamp count gt 0) resultado Math. Round (averagePrice count, Symbol. Digits) return result private double FindLowestPositionPrice (TradeType tradeType) double lowerPrice 0 foreach (posição var em Posições) se (position. Label Label ampamp position. SymbolCode Symbol. Code) if (position. TradeType tradeType) if (lowerPrice 0) lowerPrice position. EntryPrice continue if (position. EntryPrice O preço mais baixo) mais baixo Posição do preço. TemporadaPreço privado duplo FindHighestPositionPrice (TradeType tradeType) duplo maiorPreço 0 foreach (var Posição em Posições) se (posição. Label Label ampamp position. SymbolCode Symbol. Code) if (position. TradeType tradeType) if (o melhorPreço 0) mais alto Posição do preço. InícioPreço continuar se (posição. EntryPrice gt maiorPreço) mais alta Posição do preço. EntryPrice private double FindPriceOfMostRecentPositionId (TradeType tradeType) preço duplo 0 var mais altoPositionId 0 foreach (posição var em Posições) se (position. Label Label ampamp position. SymbolCode Symbol. Code) if (position. TradeType tradeType) se (posiçãoPropIdicion 1 Posição mais alta Posiciono Posição gt. Id).EntryPrice a posição SuperPositionId. Id privado longo GetMostRecentPositionVolume (TradeType tradeType) long mostRecentVolume 0 var heightPositionId 0 foreach (posição var nas posições) if (position. Label Label ampamp position. SymbolCode Symbol. Code) if (position. TradeType tradeType) if (highestPositionId 0 Posição mais alta Posição gt. Id) MostRecentVolume position. Volume higherPositionId Position. Id private int CountNumberOfPositionsOfType (TradeType tradeType) var mostRecentPrice FindPriceOfMostRecentPositionId (tradeType) var numberOfPositionsOfType 0 foreach (posição var nas Posições) se (position. Label Label ampamp position. SymbolCode Symbol. Code) if (position. TradeType tradeType ampamp tradeType TradeType. Comprar) se (Math. Round (position. EntryPrice, Symbol. Digits) lt Math. Round (mostRecentPrice, Symbol. Digits)) numberOfPositionsOfType if (position. TradeType tradeType ampamp tradeType TradeType. Sell) if (Math. Round (position. EntryPrice , Symbol. Digits) gt Math. Round (MostRecentPrice, Symbol. Digits)) numberOfPositionsOfType private long CalculateVolume (TradeType tradeType) número varOfPositions CountNumberOfPositionsOfType (tradeType) var mostRecentVolume GetMostRecentPositionVolume (tradeType) var calculadoVolume Symbol. NormalizeVolume (mostRecentVolumeMath. Pow (VolumeExponent, numberOfPositions )) Return (calculadoVolume) LimitVolume longo privado (vo longo vo LumeIn) símbolo varVolumeMin Symbol. VolumeMin símbolo varVolumeMax Symbol. VolumeMax var resultado volumeIn se (resultado lt symbolVolumeMin) resultado symbolVolumeMin se (resultado gt symbolVolumeMax) resultado symbolVolumeMax return (resultado) mariam14 - 01 de janeiro de 2016 16:00 Obrigado homem, ótimo trabalho it39s Fácil agora para editar o cbot jan-vdh - 16 de janeiro de 2016 21:00 Ei, esse trabalho está funcionando de forma excelente, mas algumas deduções de ações são muito difíceis, eu tinha uma redução máxima de ações de 110, então eu estaria em uma perda completa. O que podemos fazer contra esse aglctid123 - 27 de janeiro de 2016 19:47 alguém tem bons resultados com este bot. Se sim em que símbolo e com quais valores de parâmetros eu poderia publicar resultados de backtesting ou myfxbook perf seria bom Muito obrigado e com bons negócios) TraderML - 03 de fevereiro de 2016 19:27 eu acho, este é um muito bom cbot , Mas alguém pode me ajudar a adicionar um quotStop Lossquot i39m não um programador, então eu não tenho idéia de fazer isso (eu tentei isso - mas sem resultados) - 25 de fevereiro de 2016 04:37 Eu não posso começar a trabalhar parar a perda de. Eu não sou um codificador, mas tenho pesquisado todas as soluções possíveis sem resultados. Eu adoro este código e gostaria de usá-lo com redução mínima. Se alguém estiver disposto a ajudar, eu o apreciaria muito. ColossusFX - 17 de março de 2016 19:47 Coloque isso no topo Parâmetro (quotStop Lossquot, DefaultValue 10) public int StopLoss Copie a seção abaixo e cole a seção inteira, ou simplesmente adicione o StopLoss após o rótulo. Private int OrderSend (TradeType tradeType, volume longoToUse) var returnResult 0 se (volumeToUse gt 0) var resultado ExecuteMarketOrder (tradeType, Symbol, volumeToUse, Label, StopLoss, 0, 0, quotsmartgridquot) se (result. IsSeguira) Imprimir (tradeType, quotOpened Em: quot, result. Position. EntryPrice, result. Position. StopLoss) returnResult 1 else Imprimir (tradeType, quotOpenning Error: quot, result. Error) else Imprimir (quotVolume error de cálculo: Calculated Volume is: quot, volumeToUse) return returnResult chiripacha - 31 de março de 2016 13:14 Obrigado por suas sugestões a partir de 17 de março. O bot funciona muito bem, mesmo em uma pequena conta de EUR 1000. Chiripacha - 19 de abril de 2016 02:10 bitte schick39 mir eine e-mail um

No comments:

Post a Comment