#property strict#include "Signals.mqh"#include "Distribution.mqh"#include "File.mqh"// Получение цены сигнала
SIMPLE_GETVALUE_MACROS(GetSignalPrice, SIGNAL, Source.Price)
// Получение количества подписчиков сигнала
SIMPLE_GETVALUE_MACROS(GetSignalSubscribers, SIGNAL, Source.Subscribers)
// Получение произведения X * Y элемента распределения
SIMPLE_GETVALUE_MACROS(GetDistributionXY, DISTRIBUTION_UNIT, Source.X * Source.Y);
// Условие сортировки сигналов по прибыльности сигнала
SIMPLE_COMPARE_MACROS(CompareByGain, SIGNAL, Source.Gain)
// Условие сортировки сигналов по фактору восстановления сигнала
SIMPLE_COMPARE_MACROS(CompareByRecoveryFactor, SIGNAL, Source.MaxDD == 0 ? DBL_MAX : Source.Gain / Source.MaxDD)
// Условие сортировки сигналов по доходу с подписчиков
SIMPLE_COMPARE_MACROS(CompareByIncome, SIGNAL, Source.Subscribers * Source.Price)
// Условие сортировки распределения по X
SIMPLE_COMPARE_MACROS(CompareByX, DISTRIBUTION_UNIT, Source.X)
voidOnStart( void )
{
// Получили сигналы
SIGNALS Signals;
// Отсортировали сигналы по прибыльности
Signals.Sort(new CompareByGain(MODE_DESCEND));
FILE::StringToFile("Signals_Gain.txt", Signals.ToString(TRUE));
// Отсортировали сигналы по доходу с подписчиков
Signals.Sort(new CompareByIncome(MODE_DESCEND));
FILE::StringToFile("Signals_Income.txt", Signals.ToString(TRUE));
// Отсортировали сигналы по фактору восстановления
Signals.Sort(new CompareByRecoveryFactor(MODE_DESCEND));
FILE::StringToFile("Signals_RF.txt", Signals.ToString(TRUE));
// Получили распределение зависимости количества подписчиков (Y) от цены на подписку (X)
DISTRIBUTION Distribution(Signals, new GetSignalSubscribers, new GetSignalPrice);
// Отсортировали полученное распределение по цене
Distribution.Sort(new CompareByX);
FILE::StringToFile("Distribution.txt", "Price Subscribers\n" + Distribution.ToString());
string Str = "Всего сигналов: " + (string)Signals.GetAmount() +
"\nВсего подписчиков: " + DoubleToString(Signals.GetSum(new GetSignalSubscribers), 0) +
"\nСуммарно они платят: $" + DoubleToString(Distribution.GetSum(new GetDistributionXY), 2) +
"\n\nПодробнее распределение:\nЦена Подписчики\n" + Distribution.ToString() +
"\nСм. подробнее *.txt файлы.";
MessageBox(Str);
FILE::StringToFile("MessageBox.txt", Str);
return;
}
Ergebnis:
Всего сигналов: 924
Всего подписчиков: 4057
Суммарно они платят: $45706.45
Подробнее распределение:
Цена Подписчики
0.000000003012.0000000020.00000000334.0000000021.0000000043.0000000022.000000003.0000000024.0000000031.0000000025.0000000027.0000000026.000000001.0000000028.000000003.0000000029.00000000386.0000000029.9900000026.0000000030.0000000025.0000000035.0000000079.0000000038.900000004.0000000039.0000000012.0000000049.000000002.0000000050.000000003.0000000059.000000003.0000000060.000000001.0000000077.000000004.0000000079.000000007.0000000099.000000001.00000000100.000000001.00000000110.000000001.00000000111.110000001.00000000150.000000001.00000000400.0000000045.00000000500.000000001.00000000
См. подробнее *.txt файлы.
Aus den Statistiken für den gesamten Dienst geht nichts Interessantes mehr hervor.
Irgendwie ist es mir gelungen, einen Drawdown von Null zu berechnen:
Es stellte sich heraus, dass die API-Signale keine aktuellen Informationen enthalten. Durch einen Neustart des Terminals werden die Informationen über die Signale nicht aktualisiert. Die Informationen im Web sind viel aktueller.
Diese API-Signale sind zur Zeit noch unbearbeitet.
TheXpert: Einige wenige Statistiken. Nicht ernsthaft. Aber es macht überhaupt keinen Sinn, den Preis zu erhöhen.
Ich stimme zu, der optimale Preis liegt bei 30 $ - das ist der Wert dieser Studie, obwohl ich die letzten beiden Punkte mit Preisen von 400 $ und 500 $ nicht in das Diagramm aufgenommen habe, da sie nicht typisch sind. Im Allgemeinen ist das für den Waren- und Dienstleistungsmarkt typische Muster eines sinkenden Einkommens bei steigenden Preisen zu beobachten. Einige Unterschiede scheinen mit der Qualität des Signals und der Persönlichkeit des Signalinhabers zusammenzuhängen (je berühmter er für seine früheren Leistungen ist, desto mehr "Vorleistungen" werden in der Hoffnung auf gute Ergebnisse in der Zukunft erbracht).
Insbesondere ein unauffälliger Broker, der ein (kostenloses) Signal mit einer großen Anzahl von Abonnenten hat, fällt sofort ins Auge. Die Vermutung, dass es hier um Marketing geht, wird voll bestätigt, wenn man nach diesem Signal googelt.
Aber dieses Signal (mit Abonnenten!) ist eindeutig betrügerisch. Aber aus irgendeinem Grund ist es über das reale Terminal und API-Signale verfügbar. Der statistische Ansatz macht es also leicht, "Arschlöcher" zu finden.
Aber dieses Signal (mit Abonnenten!) ist eindeutig betrügerisch. Aber aus irgendeinem Grund ist es über das reale Terminal und API-Signale verfügbar. Der statistische Ansatz macht es also doch leicht, "Arschlöcher" zu finden.
Entwickler (und andere), aufgepasst.
Er wurde vor kurzem gesperrt, das macht einen schon ein bisschen nachdenklich, auch ohne Statistik. Und auch die monströsen Ausrutscher und die obszön hohen Einlagen. Nun, diejenigen, die noch dabei sind, sind ihre eigenen Feinde, also ))))
Drehbuch (bitte Datei anhängen):
Ergebnis:
Aus den Statistiken für den gesamten Dienst geht nichts Interessantes mehr hervor.Irgendwie haben sie es geschafft, eine Nullabsenkung zu berechnen:
Irgendwie ist es mir gelungen, einen Drawdown von Null zu berechnen:
Es stellte sich heraus, dass die API-Signale keine aktuellen Informationen enthalten. Durch einen Neustart des Terminals werden die Informationen über die Signale nicht aktualisiert. Die Informationen im Web sind viel aktueller.
Diese API-Signale sind zur Zeit noch unbearbeitet.
Drehbuch (bitte Datei anhängen):
Ergebnis:
Aus den Statistiken für den gesamten Dienst geht nichts Interessantes mehr hervor.Einige wenige Statistiken. Nicht ernsthaft. Aber es macht überhaupt keinen Sinn, den Preis zu erhöhen.
Gesamtzahl der Signale: 921. Verteilung nach Makler (Makler - Menge):
Abonnenten insgesamt: 4229. Verteilung der Abonnenten nach Signalmaklern (Makler - Menge) :
Alle Mengen < 10 wurden nicht angezeigt. Diese Statistik sagt eine Menge aus...
Diese Statistiken sagen nun viel aus...
Aber dieses Signal (mit Abonnenten!) ist eindeutig betrügerisch. Aber aus irgendeinem Grund ist es über das reale Terminal und API-Signale verfügbar. Der statistische Ansatz macht es also leicht, "Arschlöcher" zu finden.
Entwickler (und andere), aufgepasst.
Aber dieses Signal (mit Abonnenten!) ist eindeutig betrügerisch. Aber aus irgendeinem Grund ist es über das reale Terminal und API-Signale verfügbar. Der statistische Ansatz macht es also doch leicht, "Arschlöcher" zu finden.
Entwickler (und andere), aufgepasst.