Auftrag beendet
Ausführungszeit 2 Tage
Bewertung des Kunden
Just Fine, good Work and fast to answer.
Spezifikation
P.S This is the first time that I use this forum, I have the Money in my forum account, but I cant pay and accept. Why?
I would like to use Ozymandias https://www.mql5.com/pt/code/12542 indicator on the TradingView charts that uses the PineScript language.
This indicator is not found on the platform and it is useful to me in the form I have applied since 2010.
I believe that there would be no great difficulties in coding this MQL5 to PineView Script code.
I dont know if there is any Copyright inssue about this too.
Portuguese
Eu gostaria de converter o código do Indicador Ozymandias para o formato Pinescript do Site TradingView para meu uso.
//+------------------------------------------------------------------+ //| Ozymandias.mq5 | //| Copyright © 2014, GoldnMoney | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2014, GoldnMoney" #property link "http://www.mql5.com" //--- номер версии индикатора #property version "1.01" //--- отрисовка индикатора в главном окне #property indicator_chart_window //--- количество индикаторных буферов 4 #property indicator_buffers 4 //--- использовано всего три графических построения #property indicator_plots 3 //+-----------------------------------------+ //| Параметры отрисовки индикатора | //+-----------------------------------------+ //--- отрисовка индикатора в виде многоцветной линии #property indicator_type1 DRAW_COLOR_LINE //--- в качестве цветов двухцветной линии использованы #property indicator_color1 clrDeepPink,clrDodgerBlue //--- линия индикатора - непрерывная кривая #property indicator_style1 STYLE_SOLID //--- толщина линии индикатора равна 3 #property indicator_width1 3 //--- отображение метки индикатора #property indicator_label1 "Ozymandias" //+-----------------------------------------+ //| Параметры отрисовки индикатора уровней | //+-----------------------------------------+ //--- отрисовка уровней в виде линий #property indicator_type2 DRAW_LINE #property indicator_type3 DRAW_LINE //--- выбор цветов уровней #property indicator_color2 clrRosyBrown #property indicator_color3 clrRosyBrown //--- уровни - штрихпунктирные кривые #property indicator_style2 STYLE_SOLID #property indicator_style3 STYLE_SOLID //--- толщина уровней равна 2 #property indicator_width2 2 #property indicator_width3 2 //--- отображение метки уровней #property indicator_label2 "Upper Ozymandias" #property indicator_label3 "Lower Ozymandias" //+-----------------------------------------+ //| объявление констант | //+-----------------------------------------+ #define RESET 0 // Константа для возврата терминалу команды на пересчёт индикатора //+-----------------------------------------+ //| Входные параметры индикатора | //+-----------------------------------------+ input uint Length=2; input ENUM_MA_METHOD MAType=MODE_SMA; input int Shift=0; // Сдвиг индикатора по горизонтали в барах //+-----------------------------------------+ //--- объявление динамических массивов, которые в дальнейшем //--- будут использованы в качестве индикаторных буферов double IndBuffer[],ColorIndBuffer[]; double UpBuffer[],DnBuffer[]; //--- объявление целочисденных переменных начала отсчета данных int min_rates_total; int ATR_Handle,HMA_Handle,LMA_Handle; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- инициализация переменных начала отсчета данных min_rates_total=int(Length); //--- инициализация глобальных переменных int ATR_Period=100; //--- получение хендла индикатора ATR ATR_Handle=iATR(NULL,0,ATR_Period); if(ATR_Handle==INVALID_HANDLE) { Print(" Не удалось получить хендл индикатора ATR"); return(INIT_FAILED); } //--- получение хендла индикатора iMA HMA_Handle=iMA(NULL,0,Length,0,MAType,PRICE_HIGH); if(HMA_Handle==INVALID_HANDLE) { Print(" Не удалось получить хендл индикатора iMA"); return(INIT_FAILED); } //--- получение хендла индикатора iMA LMA_Handle=iMA(NULL,0,Length,0,MAType,PRICE_LOW); if(LMA_Handle==INVALID_HANDLE) { Print(" Не удалось получить хендл индикатора iMA"); return(INIT_FAILED); } //--- превращение динамического массива в индикаторный буфер SetIndexBuffer(0,IndBuffer,INDICATOR_DATA); //--- индексация элементов в буфере как в таймсерии ArraySetAsSeries(IndBuffer,true); //--- превращение динамического массива в цветовой, индексный буфер SetIndexBuffer(1,ColorIndBuffer,INDICATOR_COLOR_INDEX); //--- индексация элементов в буфере как в таймсерии ArraySetAsSeries(ColorIndBuffer,true); //--- осуществление сдвига индикатора 1 по горизонтали PlotIndexSetInteger(0,PLOT_SHIFT,Shift); //--- осуществление сдвига начала отсчета отрисовки индикатора PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total); //--- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); //--- превращение динамического массива в индикаторный буфер SetIndexBuffer(2,UpBuffer,INDICATOR_DATA); //--- индексация элементов в буфере как в таймсерии ArraySetAsSeries(UpBuffer,true); //--- осуществление сдвига индикатора 1 по горизонтали PlotIndexSetInteger(1,PLOT_SHIFT,Shift); //--- осуществление сдвига начала отсчета отрисовки индикатора PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total); //--- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0); //--- превращение динамического массива в цветовой, индексный буфер SetIndexBuffer(3,DnBuffer,INDICATOR_DATA); //--- индексация элементов в буфере как в таймсерии ArraySetAsSeries(DnBuffer,true); //--- осуществление сдвига индикатора 1 по горизонтали PlotIndexSetInteger(2,PLOT_SHIFT,Shift); //--- осуществление сдвига начала отсчета отрисовки индикатора PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total); //--- установка значений индикатора, которые не будут видимы на графике PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0.0); //--- инициализации переменной для короткого имени индикатора string shortname="Ozymandias"; //--- создание имени для отображения в отдельном подокне и во всплывающей подсказке IndicatorSetString(INDICATOR_SHORTNAME,shortname); //--- определение точности отображения значений индикатора IndicatorSetInteger(INDICATOR_DIGITS,_Digits); //--- завершение инициализации return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, // количество истории в барах на текущем тике const int prev_calculated,// количество истории в барах на предыдущем тике const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- проверка количества баров на достаточность для расчёта if(BarsCalculated(ATR_Handle)<rates_total || BarsCalculated(HMA_Handle)<rates_total || BarsCalculated(LMA_Handle)<rates_total || rates_total<min_rates_total) return(RESET); //--- объявление переменных int to_copy,limit,trend0,nexttrend0; double hh,ll,maxl0,minh0,lma,hma,atr,ATR[],HMA[],LMA[]; static int trend1,nexttrend1; static double maxl1,minh1; //--- расчёт стартового номера limit для цикла пересчёта баров if(prev_calculated>rates_total || prev_calculated<=0)// проверка на первый старт расчёта индикатора { limit=rates_total-min_rates_total-1; // стартовый номер для расчёта всех баров trend1=0; nexttrend1=0; maxl1=0; minh1=9999999; } else limit=rates_total-prev_calculated; // стартовый номер для расчёта только новых баров to_copy=limit+1; //--- копируем вновь появившиеся данные в массивы if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR)<=0) return(RESET); if(CopyBuffer(HMA_Handle,0,0,to_copy,HMA)<=0) return(RESET); if(CopyBuffer(LMA_Handle,0,0,to_copy,LMA)<=0) return(RESET); //--- индексация элементов в массивах как в таймсериях ArraySetAsSeries(close,true); ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); ArraySetAsSeries(ATR,true); ArraySetAsSeries(HMA,true); ArraySetAsSeries(LMA,true); //--- nexttrend0=nexttrend1; maxl0=maxl1; minh0=minh1; //--- основной цикл расчёта индикатора for(int bar=limit; bar>=0 && !IsStopped(); bar--) { hh=high[ArrayMaximum(high,bar,Length)]; ll=low[ArrayMinimum(low,bar,Length)]; lma=LMA[bar]; hma=HMA[bar]; atr=ATR[bar]/2; trend0=trend1; //--- if(nexttrend0==1) { maxl0=MathMax(ll,maxl0); if(hma<maxl0 && close[bar]<low[bar+1]) { trend0=1; nexttrend0=0; minh0=hh; } } //--- if(nexttrend0==0) { minh0=MathMin(hh,minh0); if(lma>minh0 && close[bar]>high[bar+1]) { trend0=0; nexttrend0=1; maxl0=ll; } } //--- if(trend0==0) { if(trend1!=0.0) { IndBuffer[bar]=IndBuffer[bar+1]; ColorIndBuffer[bar]=1; } else { IndBuffer[bar]=MathMax(maxl0,IndBuffer[bar+1]); ColorIndBuffer[bar]=1; } UpBuffer[bar]=IndBuffer[bar]+atr; DnBuffer[bar]=IndBuffer[bar]-atr; } else { if(trend1!=1) { IndBuffer[bar]=IndBuffer[bar+1]; ColorIndBuffer[bar]=0; } else { IndBuffer[bar]=MathMin(minh0,IndBuffer[bar+1]); ColorIndBuffer[bar]=0; } UpBuffer[bar]=IndBuffer[bar]+atr; DnBuffer[bar]=IndBuffer[bar]-atr; } //--- if(bar) { nexttrend1=nexttrend0; trend1=trend0; maxl1=maxl0; minh1=minh0; } } //--- return(rates_total); } //+------------------------------------------------------------------+
Bewerbungen
1
Bewertung
Projekte
1464
72%
Schlichtung
122
29%
/
48%
Frist nicht eingehalten
358
24%
Arbeitet
Veröffentlicht: 3 Artikel
Ähnliche Aufträge
Estou em busca de um sistema operacional para mesas proprietárias brasileiras, com foco em operações de mini índice (WIN) e mini dólar (WDO), que possa rodar tanto em conta real quanto em conta de mesa proprietária, linguagem profit de preferência. Procuro uma estratégia com um drawdown aceitável, boa rentabilidade mensal e, principalmente, consistência nos resultados e controle de risco. Não tenho preferência entre
EA para mesas proprietárias
50 - 200 USD
Estou em busca de um sistema operacional para mesas proprietárias que tenha um drawdown máximo de até 3% e busque uma rentabilidade média de aproximadamente 1% a 2% ao mês. Pode ser operado em Forex ou futuros; o mais importante para mim é o resultado e a consistência da estratégia. Valor negociável
Robô para mesas props BRASILEIRAS
150 - 350 USD
DEVERÁ TER ESTRATEGIA PRONTA E VALIDADA Preciso de um desenvolvedor para criar um robô personalizado na plataforma Profit (linguagem NTSL) focado em operar Mini Índice (WIN) e Mini Dólar (WDO) para mesas proprietárias da B3. Objetivo Duplo: O robô deve servir tanto para passar em testes de aprovação (buscando o alvo de ganho com controle rigoroso de risco) quanto para o gerenciamento de conta real (protegendo o
Robô de forex e B3 - PROJETO JÁ EXISTENTE NO MQL5
150 - 300 USD
Eu preciso de um robô que opere arbitragem do mercado de Forex e que fácil para passar numa mesa proprietária. Pode ser até robô tbm de HFT desde que passe numa mesa já está bem e que rode em conta real. tenha suporte para forex e indice/dolar BR. I need a robot that operates arbitration in the Forex market and is easy to use at a proprietary table. It could even be an HFT robot, as long as it passes through a table
Robo B3/ FOREX - EAS COMPROVADOS/VALIDADOS
150 - 300 USD
OBS: NÃO POSSUO ESTRATÉGIA PRONTA, DEVERÁ SER APRESENTADO ALGO JÁ FUNCIONANDO. ESTOU EM BUSCA DE ALGO COMPROVADO/VALIDADO Pedido 1: B3 (Mini Dólar ou Mini Índice) Título: Robô MQL5/PROFIT B3 (WDO/WIN) - Lucrativo com Código-Fonte Descrição: Desenvolvimento de Expert Advisor (EA) para MetaTrader 5 focado no Mini Dólar ou Mini Índice. Requisitos: Entrega do código-fonte ( .mq5 ) aberto e comentado. Estratégia
Criação de Robô para B3 e forex
150 - 400 USD
Pedido 1: B3 (Mini Dólar ou Mini Índice) Título: Robô MQL5/PROFIT B3 (WDO/WIN) - Lucrativo com Código-Fonte Descrição: Desenvolvimento de Expert Advisor (EA) para MetaTrader 5 focado no Mini Dólar ou Mini Índice. Requisitos: Entrega do código-fonte ( .mq5 ) aberto e comentado. Estratégia técnica estritamente fixa e gerenciamento de risco fixo (Stop Loss, Take Profit, lote fixo e horários de zeragem). Validação
Projektdetails
Budget
40+ USD
Ausführungsfristen
von 15 bis 30 Tag(e)