diff --git a/CoinsList.cs b/CoinsList.cs index 70832e7..06522ad 100644 --- a/CoinsList.cs +++ b/CoinsList.cs @@ -2,41 +2,41 @@ using BinanceExchange.API.Enums; public static class CoinsList{ public static Dictionary> symbols = new Dictionary> { - { "BTCUSDT", [KlineInterval.FifteenMinutes] }, - { "ADAUSDT", [KlineInterval.FifteenMinutes] }, - { "AIXBTUSDT", [KlineInterval.FifteenMinutes] }, - { "LTCUSDT", [KlineInterval.FifteenMinutes] }, - { "XRPUSDT", [KlineInterval.FifteenMinutes] }, - { "XLMUSDT", [KlineInterval.FifteenMinutes] }, - { "SOLUSDT", [KlineInterval.FifteenMinutes] }, - { "AVAXUSDT", [KlineInterval.FifteenMinutes] }, - { "ENAUSDT", [KlineInterval.FifteenMinutes] }, - { "HIVEUSDT", [KlineInterval.FifteenMinutes] }, - { "STEEMUSDT", [KlineInterval.FifteenMinutes] }, - { "MOVEUSDT", [KlineInterval.FifteenMinutes] }, - { "DOGEUSDT", [KlineInterval.FifteenMinutes] }, - { "PEPEUSDT", [KlineInterval.FifteenMinutes] }, - { "ACTUSDT", [KlineInterval.FifteenMinutes] }, - { "STGUSDT", [KlineInterval.FifteenMinutes] }, - { "ONEUSDT", [KlineInterval.FifteenMinutes] }, - { "LINKUSDT", [KlineInterval.FifteenMinutes] }, - { "ARUSDT", [KlineInterval.FifteenMinutes] }, - { "RUNEUSDT", [KlineInterval.FifteenMinutes] }, - { "USUALUSDT", [KlineInterval.FifteenMinutes] }, - { "ZKUSDT", [KlineInterval.FifteenMinutes] }, - { "JUPUSDT", [KlineInterval.FifteenMinutes] }, - { "LUNAUSDT", [KlineInterval.FifteenMinutes] }, - { "DUSKUSDT", [KlineInterval.FifteenMinutes] }, - { "SUIUSDT", [KlineInterval.FifteenMinutes] }, - { "INJUSDT", [KlineInterval.FifteenMinutes] }, - { "FILUSDT", [KlineInterval.FifteenMinutes] }, - { "GRTUSDT", [KlineInterval.FifteenMinutes] }, - { "HBARUSDT", [KlineInterval.FifteenMinutes] }, - { "CFXUSDT", [KlineInterval.FifteenMinutes] }, - { "TLMUSDT", [KlineInterval.FifteenMinutes] }, - { "NEARUSDT", [KlineInterval.FifteenMinutes] }, - { "FORTHUSDT", [KlineInterval.FifteenMinutes] }, - { "ETHUSDT", [KlineInterval.FifteenMinutes] }, - { "PNUTUSDT", [KlineInterval.FifteenMinutes] } + { "BTCUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ADAUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "AIXBTUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "LTCUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "XRPUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "XLMUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "SOLUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "AVAXUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ENAUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "HIVEUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "STEEMUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "MOVEUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "DOGEUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "PEPEUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ACTUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "STGUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ONEUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "LINKUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ARUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "RUNEUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "USUALUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ZKUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "JUPUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "LUNAUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "DUSKUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "SUIUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "INJUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "FILUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "GRTUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "HBARUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "CFXUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "TLMUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "NEARUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "FORTHUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "ETHUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] }, + { "PNUTUSDT", [KlineInterval.FifteenMinutes, KlineInterval.ThirtyMinutes] } }; } \ No newline at end of file diff --git a/Patterns.cs b/Patterns.cs index 043e633..bafaffb 100644 --- a/Patterns.cs +++ b/Patterns.cs @@ -249,6 +249,7 @@ public static class Patterns{ bool isRed = curReport.RSI50 <= 50; bool beenAcrossVwap = (highCount / lowCount) > 0; bool mostlyGreen = greenCandlesAmount > length /3f; + bool isCrossingVwap = curReport.candle.High > curReport.VwapWeekly && curReport.candle.Low < curReport.VwapWeekly; //These did not matter bool closeToVwap = curReport.Open < hh && curReport.Open > ll; @@ -256,7 +257,7 @@ public static class Patterns{ bool crossedRecently = candlesSinceLastHigh < (length/3); bool isLarge = curReport.candle.getCandleLength() > avgSize; - bool final = isRed && isSolid && isBelowVwap && beenAcrossVwap && mostlyGreen; + bool final = isRed && isSolid && isBelowVwap && beenAcrossVwap && mostlyGreen && !isCrossingVwap; if(final){ // Console.WriteLine($"Vwap(S) signal on {curReport.pair}({curReport.interval}m) : {highCount} / {lowCount} = {highCount/lowCount} , {candlesSinceLastHigh} last High"); @@ -314,8 +315,9 @@ public static class Patterns{ bool mostlyBelowVwap = (highCount / lowCount) < 0.3f; bool crossedRecently = candlesSinceLastHigh < (length/3); bool isLarge = curReport.candle.getCandleLength() > avgSize; + bool isCrossingVwap = curReport.candle.High > curReport.VwapWeekly && curReport.candle.Low < curReport.VwapWeekly; - bool final = isGreen && isSolid && isAboveVwap && beenAcrossVwap && mostylRed; + bool final = isGreen && isSolid && isAboveVwap && beenAcrossVwap && mostylRed && !isCrossingVwap; if(final){ // Console.WriteLine($"Vwap(L) signal on {curReport.pair}({curReport.interval}m) : {highCount} / {lowCount} = {highCount/lowCount} , {candlesSinceLastHigh} last High");