Bonjour
Je découvre C# et n ai jamais ecrit une ligne de code de ma vie à l exception pour MT4, une plateforme de trading. J ai changé de plateforme et découvert le C#. Alors s il vous plait soyez indulgent car je n utilise certainement pas la bonne terminologie.
Avant de poster ici j'ai tout de même essayé de comprendre en cherchant sur le net et ne suis pas parvenu à comprendre en lisant https://learn.microsoft.com/fr-fr/do...tructs/methods

Pour préciser j utilise (enfin je tente d utiliser ) une plateforme de trading qui s appelle NinjaTrader. On peut y développer des indicateurs avec C#. Ce que j essaye de faire.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Value[0] = TDUBuySellMomentum.MomentumShort[0](this,BarsPeriodType.Second,15,15,2,TDUBuySellMomentumDisplayType.CandleOutline,10,60,400,4);
Cette ligne de code était censée récupérer la valeur de MomentumShort de l indicateur TDUBuySellMomentum pour la barre [0]. Les parametres entre parenthèse étant necessaires à l indicateur pour le calcul de MomentumShort .

A la compilation j ai l erreur : TDUBuySellMomentum.MomentumShort[0](t.............. est un 'méthode', qui n'est pas valide dans le contexte donné.

Je pense qu il est utile de vous communiquer le code de l indicateur que j appelle. ( j ai retiré tous les using pour plus de clareté)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#region Using declarations
...
#endregion
 
 
 
#region NinjaScript generated code. Neither change nor remove.
 
namespace NinjaTrader.NinjaScript.Indicators
{
	public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
	{
 
		private TDU.TDUBuySellMomentum[] cacheTDUBuySellMomentum;
 
 
		public TDU.TDUBuySellMomentum TDUBuySellMomentum(BarsPeriodType momentumBarPeriodPeriodType, int momentumBarPeriodPeriodValue, int standardDeviationPeriod, double standardDeviationMultiplier, TDUBuySellMomentumDisplayType excessiveDisplayType, int excessivePeriod, double excessivePercentage, double imbalancePercentage, int stackedImbalanceBarCount)
		{
			return TDUBuySellMomentum(Input, momentumBarPeriodPeriodType, momentumBarPeriodPeriodValue, standardDeviationPeriod, standardDeviationMultiplier, excessiveDisplayType, excessivePeriod, excessivePercentage, imbalancePercentage, stackedImbalanceBarCount);
		}
 
 
 
		public TDU.TDUBuySellMomentum TDUBuySellMomentum(ISeries<double> input, BarsPeriodType momentumBarPeriodPeriodType, int momentumBarPeriodPeriodValue, int standardDeviationPeriod, double standardDeviationMultiplier, TDUBuySellMomentumDisplayType excessiveDisplayType, int excessivePeriod, double excessivePercentage, double imbalancePercentage, int stackedImbalanceBarCount)
		{
			if (cacheTDUBuySellMomentum != null)
				for (int idx = 0; idx < cacheTDUBuySellMomentum.Length; idx++)
					if (cacheTDUBuySellMomentum[idx].MomentumBarPeriodPeriodType == momentumBarPeriodPeriodType && cacheTDUBuySellMomentum[idx].MomentumBarPeriodPeriodValue == momentumBarPeriodPeriodValue && cacheTDUBuySellMomentum[idx].StandardDeviationPeriod == standardDeviationPeriod && cacheTDUBuySellMomentum[idx].StandardDeviationMultiplier == standardDeviationMultiplier && cacheTDUBuySellMomentum[idx].ExcessiveDisplayType == excessiveDisplayType && cacheTDUBuySellMomentum[idx].ExcessivePeriod == excessivePeriod && cacheTDUBuySellMomentum[idx].ExcessivePercentage == excessivePercentage && cacheTDUBuySellMomentum[idx].ImbalancePercentage == imbalancePercentage && cacheTDUBuySellMomentum[idx].StackedImbalanceBarCount == stackedImbalanceBarCount && cacheTDUBuySellMomentum[idx].EqualsInput(input))
						return cacheTDUBuySellMomentum[idx];
			return CacheIndicator<TDU.TDUBuySellMomentum>(new TDU.TDUBuySellMomentum(){ MomentumBarPeriodPeriodType = momentumBarPeriodPeriodType, MomentumBarPeriodPeriodValue = momentumBarPeriodPeriodValue, StandardDeviationPeriod = standardDeviationPeriod, StandardDeviationMultiplier = standardDeviationMultiplier, ExcessiveDisplayType = excessiveDisplayType, ExcessivePeriod = excessivePeriod, ExcessivePercentage = excessivePercentage, ImbalancePercentage = imbalancePercentage, StackedImbalanceBarCount = stackedImbalanceBarCount }, input, ref cacheTDUBuySellMomentum);
		}
 
	}
}
 
namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
	public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
	{
 
		public Indicators.TDU.TDUBuySellMomentum TDUBuySellMomentum(BarsPeriodType momentumBarPeriodPeriodType, int momentumBarPeriodPeriodValue, int standardDeviationPeriod, double standardDeviationMultiplier, TDUBuySellMomentumDisplayType excessiveDisplayType, int excessivePeriod, double excessivePercentage, double imbalancePercentage, int stackedImbalanceBarCount)
		{
			return indicator.TDUBuySellMomentum(Input, momentumBarPeriodPeriodType, momentumBarPeriodPeriodValue, standardDeviationPeriod, standardDeviationMultiplier, excessiveDisplayType, excessivePeriod, excessivePercentage, imbalancePercentage, stackedImbalanceBarCount);
		}
 
 
 
		public Indicators.TDU.TDUBuySellMomentum TDUBuySellMomentum(ISeries<double> input , BarsPeriodType momentumBarPeriodPeriodType, int momentumBarPeriodPeriodValue, int standardDeviationPeriod, double standardDeviationMultiplier, TDUBuySellMomentumDisplayType excessiveDisplayType, int excessivePeriod, double excessivePercentage, double imbalancePercentage, int stackedImbalanceBarCount)
		{
			return indicator.TDUBuySellMomentum(input, momentumBarPeriodPeriodType, momentumBarPeriodPeriodValue, standardDeviationPeriod, standardDeviationMultiplier, excessiveDisplayType, excessivePeriod, excessivePercentage, imbalancePercentage, stackedImbalanceBarCount);
		}
 
	}
}
 
namespace NinjaTrader.NinjaScript.Strategies
{
	public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
	{
 
		public Indicators.TDU.TDUBuySellMomentum TDUBuySellMomentum(BarsPeriodType momentumBarPeriodPeriodType, int momentumBarPeriodPeriodValue, int standardDeviationPeriod, double standardDeviationMultiplier, TDUBuySellMomentumDisplayType excessiveDisplayType, int excessivePeriod, double excessivePercentage, double imbalancePercentage, int stackedImbalanceBarCount)
		{
			return indicator.TDUBuySellMomentum(Input, momentumBarPeriodPeriodType, momentumBarPeriodPeriodValue, standardDeviationPeriod, standardDeviationMultiplier, excessiveDisplayType, excessivePeriod, excessivePercentage, imbalancePercentage, stackedImbalanceBarCount);
		}
 
 
 
		public Indicators.TDU.TDUBuySellMomentum TDUBuySellMomentum(ISeries<double> input , BarsPeriodType momentumBarPeriodPeriodType, int momentumBarPeriodPeriodValue, int standardDeviationPeriod, double standardDeviationMultiplier, TDUBuySellMomentumDisplayType excessiveDisplayType, int excessivePeriod, double excessivePercentage, double imbalancePercentage, int stackedImbalanceBarCount)
		{
			return indicator.TDUBuySellMomentum(input, momentumBarPeriodPeriodType, momentumBarPeriodPeriodValue, standardDeviationPeriod, standardDeviationMultiplier, excessiveDisplayType, excessivePeriod, excessivePercentage, imbalancePercentage, stackedImbalanceBarCount);
		}
 
	}
}
 
#endregion
J aimerais comprendre cette erreur et surtout pouvoir la corriger car j ai beau y réfléchir, ma ligne de code certes incorrecte ma parait assez logique au regard de ce que j ai compris mais je l avoue encore, je n ai hélas pas compris grand chose...

Merci pour votre aide.