Tâche terminée
Temps d'exécution 47 jours
Commentaires de l'employé
Thank You Sir
Spécifications
Hi there,
I'm using two indicators:
1. Hull
2. ATR2
Hull:
//------------------------------------------------------------------ #property copyright "© mladen, 2019" #property link "mladenfx@gmail.com" //------------------------------------------------------------------ #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 1 #property indicator_label1 "Hull" #property indicator_type1 DRAW_COLOR_LINE #property indicator_color1 clrGray,clrMediumSeaGreen,clrOrangeRed #property indicator_width1 2 // // // // // input int inpPeriod = 105; // Period input double inpDivisor = 2.0; // Divisor ("speed") input ENUM_APPLIED_PRICE inpPrice = PRICE_CLOSE; // Price double val[],valc[]; //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // int OnInit() { SetIndexBuffer(0,val,INDICATOR_DATA); SetIndexBuffer(1,valc,INDICATOR_COLOR_INDEX); iHull.init(inpPeriod,inpDivisor); IndicatorSetString(INDICATOR_SHORTNAME,"Hull ("+(string)inpPeriod+")"); return (INIT_SUCCEEDED); } void OnDeinit(const int reason) { } //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // // 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[]) { int i= prev_calculated-1; if (i<0) i=0; for (; i<rates_total && !_StopFlag; i++) { val[i] = iHull.calculate(getPrice(inpPrice,open,high,low,close,i),i,rates_total); valc[i] = (i>0) ? (val[i]>val[i-1]) ? 1 : (val[i]<val[i-1]) ? 2 : valc[i-1] : 0; } return(i); } //------------------------------------------------------------------ // Custom function(s) //------------------------------------------------------------------ // //--- // class CHull { private : int m_fullPeriod; int m_halfPeriod; int m_sqrtPeriod; int m_arraySize; double m_weight1; double m_weight2; double m_weight3; struct sHullArrayStruct { double value; double value3; double wsum1; double wsum2; double wsum3; double lsum1; double lsum2; double lsum3; }; sHullArrayStruct m_array[]; public : CHull() : m_fullPeriod(1), m_halfPeriod(1), m_sqrtPeriod(1), m_arraySize(-1) { } ~CHull() { ArrayFree(m_array); } /// /// /// bool init(int period, double divisor) { m_fullPeriod = (int)(period>1 ? period : 1); m_halfPeriod = (int)(m_fullPeriod>1 ? m_fullPeriod/(divisor>1 ? divisor : 1) : 1); m_sqrtPeriod = (int) MathSqrt(m_fullPeriod); m_arraySize = -1; m_weight1 = m_weight2 = m_weight3 = 1; return(true); } // // // double calculate( double value, int i, int bars) { if (m_arraySize<bars) { m_arraySize = ArrayResize(m_array,bars+500); if (m_arraySize<bars) return(0); } // // // m_array[i].value=value; if (i>m_fullPeriod) { m_array[i].wsum1 = m_array[i-1].wsum1+value*m_halfPeriod-m_array[i-1].lsum1; m_array[i].lsum1 = m_array[i-1].lsum1+value-m_array[i-m_halfPeriod].value; m_array[i].wsum2 = m_array[i-1].wsum2+value*m_fullPeriod-m_array[i-1].lsum2; m_array[i].lsum2 = m_array[i-1].lsum2+value-m_array[i-m_fullPeriod].value; } else { m_array[i].wsum1 = m_array[i].wsum2 = m_array[i].lsum1 = m_array[i].lsum2 = m_weight1 = m_weight2 = 0; for(int k=0, w1=m_halfPeriod, w2=m_fullPeriod; w2>0 && i>=k; k++, w1--, w2--) { if (w1>0) { m_array[i].wsum1 += m_array[i-k].value*w1; m_array[i].lsum1 += m_array[i-k].value; m_weight1 += w1; } m_array[i].wsum2 += m_array[i-k].value*w2; m_array[i].lsum2 += m_array[i-k].value; m_weight2 += w2; } } m_array[i].value3=2.0*m_array[i].wsum1/m_weight1-m_array[i].wsum2/m_weight2; // //--- // if (i>m_sqrtPeriod) { m_array[i].wsum3 = m_array[i-1].wsum3+m_array[i].value3*m_sqrtPeriod-m_array[i-1].lsum3; m_array[i].lsum3 = m_array[i-1].lsum3+m_array[i].value3-m_array[i-m_sqrtPeriod].value3; } else { m_array[i].wsum3 = m_array[i].lsum3 = m_weight3 = 0; for(int k=0, w3=m_sqrtPeriod; w3>0 && i>=k; k++, w3--) { m_array[i].wsum3 += m_array[i-k].value3*w3; m_array[i].lsum3 += m_array[i-k].value3; m_weight3 += w3; } } return(m_array[i].wsum3/m_weight3); } }; CHull iHull; // //--- // template <typename T> double getPrice(ENUM_APPLIED_PRICE tprice, T& open[], T& high[], T& low[], T& close[], int i) { switch(tprice) { case PRICE_CLOSE: return(close[i]); case PRICE_OPEN: return(open[i]); case PRICE_HIGH: return(high[i]); case PRICE_LOW: return(low[i]); case PRICE_MEDIAN: return((high[i]+low[i])/2.0); case PRICE_TYPICAL: return((high[i]+low[i]+close[i])/3.0); case PRICE_WEIGHTED: return((high[i]+low[i]+close[i]+close[i])/4.0); } return(0); } //------------------------------------------------------------------
In this indicator the value for "inpPeriod" of each candle should be set to
inpPeriod = (1 / ATR2[0]) * 15000). In case of the "dow jones" 15000 is a good number.
That means: inpPeriod should be calculated new for each candle by this formula. As a consequence inpPeriod will be different for each candle.
The value of ATR2[0] should be generated like in the following code:
// ATR2 double ATR2[]; // array for the indicator ATR2 int ATR2_handle; // handle of the indicator ATR2 // ATR2 ATR2_handle=iATR(_Symbol,_Period,2); if(ATR2_handle < 0) { Print("The creation of ATR2_handle has failed: Runtime error =",GetLastError()); return(-1); } //ATR2 if(CopyBuffer(ATR2_handle,0,0,2,ATR2) <= 0){ Print("CopyBuffer(ATR2_handle,0,0,2,ATR2) <= 0)"); Message[1] = "CopyBuffer(ATR2_handle,0,0,2,ATR2) <= 0)"; return(0); } ArraySetAsSeries(ATR2,true); //Set Value TTAtr_2[TradeType] = ATR2[0];
Répondu
1
Évaluation
Projets
624
38%
Arbitrage
40
23%
/
65%
En retard
93
15%
Gratuit
Publié : 4 articles, 19 codes
2
Évaluation
Projets
124
44%
Arbitrage
14
29%
/
50%
En retard
17
14%
Gratuit
3
Évaluation
Projets
144
46%
Arbitrage
20
40%
/
20%
En retard
32
22%
Gratuit
Commandes similaires
A good trend predicting indicator is the one which can identify the trend change as soon as it happens on the chart. when a new candle is formed it should tell whether its going to go up or down. I have already seen a lot of repainting trend predictors so if your indicator is repainting then please don't bother contacting. I would like to see the demo version and then if satisfied , I would want the source code too
I'm looking for an experienced NinjaTrader 8 (C#) developer to build a fully automated futures trading strategy. Please apply only if you have proven experience developing and testing NinjaTrader strategies. Project Overview Develop a fully automated NinjaTrader 8 strategy. Designed for Apex funded and evaluation accounts. Primary instruments: NQ/MNQ Futures (with flexibility to support other futures later). Trading
Looking for an experienced MQL5 developer to refactor and upgrade an existing Expert Advisor (EA) trading system. Current State: I have the fully working Phase 1 .mq5 source code. However, the execution rules are overly rigid, resulting in missed setups. Scope of Work (Phase 2): Refactor entry logic to support multi-timeframe EMA trend alignment (H4 structural trend + M5/M15 execution EMAs). Upgrade pullback state
Code An Loss Rate 90-100% MT5 EA , that can blow a 100 USD account a day ,with fixed TP of 3000 points and SL of 3000 For better Rate Calculations get an strategy that can lead to so
Shooter razor
30+ USD
Makes it takes trades by it self buy and sell, it must use the higher signals, also when I press stop it must not pick any trades I want it to take trades automatically when I press start also close by it self
Hello looking for someone to convert an indicator from tradingview to Thinkorswim I have attached the codes from trading view Also, I like make it trigger (alert) a one-time alert when the trend changes, and can also create a custom watchlist column that flags symbols currently in a new trend so you can scan multiple stocks easily. And like the watchlist to show only fresh trend changes or the current trend direction
Version document : 1.0 Plateforme : TradingView Langage : Pine Script v6 Type : Indicateur d'analyse et d'aide à la décision (non-exécutant) 1. Présentation du projet Nom du produit ONYX SR V2 — Intelligent Support & Resistance Scalping System Objectif Créer un indicateur TradingView capable d'identifier automatiquement des opportunités de scalping basées sur : supports et résistances dynamiques ; action du prix ;
TumiiFX
30 - 20000 USD
1. Use two EMAs: 20 and 50. If EMA 20 is above EMA 50 → uptrend (look for buys) If EMA 20 is below EMA 50 → downtrend (look for sells) 2. Wait for a pullback into the area between the two EMAs. - For buys: price must touch or move between EMA 20 and EMA 50 during the last few candles. - For stils: same idea, but in a downtrend. 3. Entry signal: Buy: a bullish engulfing candle in an uptrend after the pullback
I Need HFT bot working on MT4
30 - 100 USD
I am looking for an experienced MQL4 developer to build a professional High-Frequency Trading (HFT) / Low-Latency Expert Advisor for MetaTrader 4 (MT4) . The EA will be deployed on an IC Markets Live account and should be optimized for the fastest possible execution using a low-latency VPS located in LD4 or NY4 . The primary instruments will be US30 and XAUUSD (Gold) . The goal is to create an EA capable of
A robot
50+ USD
HIGH-FREQUENCY M5/M15 CONCURRENT ENTRY SNIPER import time class HighFrequencySniper: def __init__(self): self.target_profit = 25.00 # Targeted Delta Move self.max_execution_time = 3600 # 1 Hour Sandbox (Seconds) self.lot_allocation = "CALIBRATED_TO_RISK" def execute_hft_scan(self, current_price, m5_rsi, m15_order_block): print(f"[SCANNING] Current Kernel Metric: ${current_price:.2f
Informations sur le projet
Budget
40+ USD
Délais
à 3 jour(s)