Advertisement
Guest User

Programma

a guest
Mar 28th, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using cAlgo.API;
  4. using cAlgo.API.Indicators;
  5. using cAlgo.API.Internals;
  6. using cAlgo.Indicators;
  7.  
  8. namespace cAlgo.Robots
  9. {
  10. [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
  11. public class riprova : Robot
  12. {
  13. private StochasticOscillator _stochastic;
  14. private const string label = "Sample Trend cBot";
  15. private ParabolicSAR parabolicSAR;
  16.  
  17. [Parameter("Volume", Group = "Volume", DefaultValue = 10000, MinValue = 0, Step = 10000)]
  18. public double Volume { get; set; }
  19.  
  20. [Parameter("Stop Loss", DefaultValue = 15)]
  21. public int StopLoss { get; set; }
  22.  
  23. [Parameter("Take Profit", DefaultValue = 1)]
  24. public int TakeProfit { get; set; }
  25.  
  26. [Parameter("Max Spread", DefaultValue = 1, MinValue = -5.0)]
  27. public double MaxSpread { get; set; }
  28.  
  29. [Parameter("K_Period", DefaultValue = 5, MinValue = 0)]
  30. public int K_Period { get; set; }
  31.  
  32. [Parameter("Slow_K", DefaultValue = 3, MinValue = 0)]
  33. public int Slow_K { get; set; }
  34.  
  35. [Parameter("D Period", DefaultValue = 3, MinValue = 0)]
  36. public int D_Period { get; set; }
  37.  
  38. [Parameter("Tot", DefaultValue = 5.0, MinValue = 0.0)]
  39. public double Tot { get; set; }
  40.  
  41. [Parameter("maType", DefaultValue = MovingAverageType.Simple)]
  42. public MovingAverageType maType { get; set; }
  43.  
  44. [Parameter("Min AF", DefaultValue = 0.02, MinValue = 0)]
  45. public double minaf { get; set; }
  46.  
  47. [Parameter("Max AF", DefaultValue = 0.2, MinValue = 0)]
  48. public double maxaf { get; set; }
  49.  
  50.  
  51. protected override void OnStart()
  52. {
  53.  
  54. _stochastic = Indicators.StochasticOscillator(K_Period, Slow_K, D_Period, maType);
  55. parabolicSAR = Indicators.ParabolicSAR(minaf, maxaf);
  56.  
  57.  
  58. var spread = Symbol.Ask - Symbol.Bid;
  59.  
  60. Time.AddSeconds(600);
  61.  
  62. if (spread > MaxSpread)
  63. {
  64. //riparti
  65. }
  66.  
  67. else
  68. {
  69. Print("Spread Ok");
  70. }
  71.  
  72.  
  73. var Percent_K = _stochastic.PercentK.LastValue;
  74. var Percent_D = _stochastic.PercentD.LastValue;
  75. var Distanza_a_rialzo = Percent_K - Percent_D;
  76. var Distanza_a_ribasso = Percent_D - Percent_K;
  77. var trendrialzo = parabolicSAR.Result.LastValue < Symbol.Bid ? TradeType.Buy : TradeType.Sell;
  78. var trendribasso = parabolicSAR.Result.LastValue > Symbol.Bid ? TradeType.Buy : TradeType.Sell;
  79.  
  80.  
  81. if (_stochastic.PercentD.LastValue > _stochastic.PercentK.LastValue)
  82. {
  83. Print("Stocastico in ribasso");
  84.  
  85.  
  86. if (Distanza_a_ribasso > Tot && Positions.Count < 1)
  87. {
  88.  
  89. if (parabolicSAR.Result.LastValue > Symbol.Bid)
  90. {
  91. Print("Sar in ribasso");
  92. ExecuteMarketOrder(TradeType.Sell, Symbol, Volume, "myLabel", StopLoss, TakeProfit);
  93. //riparti
  94. }
  95.  
  96. else
  97. {
  98. Print("Sar non corrisponde con stocastico");
  99. //riparti
  100. }
  101. }
  102. else
  103. {
  104. Print("distanza linee stocastico troppo vicine");
  105. //riparti
  106. }
  107.  
  108. }
  109.  
  110.  
  111. else
  112. {
  113. Print("Stocastico in rialzo");
  114.  
  115.  
  116. if (Distanza_a_ribasso < Tot && Positions.Count < 1)
  117. {
  118.  
  119. if (parabolicSAR.Result.LastValue < Symbol.Bid)
  120. {
  121. Print("Sar in rialzo");
  122. ExecuteMarketOrder(TradeType.Buy, Symbol, Volume, "myLabel", StopLoss, TakeProfit);
  123. //riparti
  124. }
  125.  
  126. else
  127. {
  128. Print("Sar non corrisponde con stocastico");
  129. //riparti
  130.  
  131. }
  132. }
  133. else
  134. {
  135. Print("distanza linee stocastico troppo vicine");
  136. //riparti
  137. }
  138.  
  139. }
  140. }
  141. }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement