Teraz jest Cz, 21-06-2018, 14:30

Godziny sesji | Strefa czasowa: UTC + 1 [ DST ]




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: Pt, 27-09-2013, 02:21 
Offline
Moderator
Avatar użytkownika

Dołączył(a): So, 15-09-2012, 23:49
Posty: 1451
Pochwały: 22
Pierwsza moja produkcja. Nie jest jeszcze idealna, ale powinna w miarę działać. Zaznajamiam się z C#.


Wskaźnik ADR - Average Daily Range.


Kod:
// -------------------------------------------------------------------------------
//
//    This is a Template used as a guideline to build your own Indicator.
//
// -------------------------------------------------------------------------------

using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;

namespace cAlgo.Indicators
{
    [Indicator(IsOverlay = true, TimeZone = TimeZones.GMTStandardTime)]
    public class AverageDailyRange : Indicator
    {

    // czesc dotyczaca parametrow zewnetrznych
        [Parameter(DefaultValue = 4)]
        public double LineSize { get; set; }

        [Parameter(DefaultValue = 20)]
        public int numberOfDays { get; set; }
   //koniec

        protected override void Initialize()
        {
            MarketSeries d1 = MarketData.GetSeries(TimeFrame.Daily);
            var dailyRange = Indicators.AverageTrueRange(d1, 5, MovingAverageType.Simple).Result.LastValue;
            var anotherSeries = MarketData.GetSeries(TimeFrame.Daily);


            for (int c = numberOfDays; c > 0; c--)
            {

                DateTime dt1 = anotherSeries.OpenTime[anotherSeries.OpenTime.Count - c];
                DateTime dt2 = anotherSeries.OpenTime[anotherSeries.OpenTime.Count - c].AddDays(1);
                var y11 = anotherSeries.High[anotherSeries.Close.Count - c];
                var y22 = anotherSeries.Low[anotherSeries.Close.Count - c];

                double high = y11;
                double low = y22;
                double bid = Symbol.Bid;

                if (high - bid > bid - low)
                {
                    ChartObjects.DrawLine("High" + c, dt1, y11, dt2, y11, Colors.Red, LineSize, LineStyle.Solid);
                    ChartObjects.DrawLine("Low" + c, dt1, y11 - dailyRange, dt2, y11 - dailyRange, Colors.Red, LineSize, LineStyle.Solid);
                }
                else
                {
                    ChartObjects.DrawLine("High" + c, dt1, y22 + dailyRange, dt2, y22 + dailyRange, Colors.Red, LineSize, LineStyle.Solid);
                    ChartObjects.DrawLine("Low" + c, dt1, y22, dt2, y22, Colors.Red, LineSize, LineStyle.Solid);
                }

            }
        }

        public override void Calculate(int index)
        {
            // Calculate value at specified index
            // Result[index] = ...
        }
    }
}


Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu. Musisz się zalogować.

_________________
“Our deepest fear is not that we are inadequate. Our deepest fear is that we are powerful beyond measure.”


Góra
 Zobacz profil  
 
PostNapisane: N, 10-04-2016, 16:46 
Offline
Stały bywalec

Dołączył(a): Cz, 1-01-2015, 12:50
Posty: 22
Hej. Coś więcej uskrobales w cAlgo? Jakieś wrażenia? Bo ja powoli obczajam samego testera.


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Godziny sesji | Strefa czasowa: UTC + 1 [ DST ]


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości




Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron

Regulamin forum | Polityka prywatności

Powered by phpBB® Forum Software © phpBB Group