Description
Hi,
Here's a Sentiment Widget Pane that updates once every minute.
A few things to note. The widget comes with built in links.
- The symbol link e.g. USDCAD opens a new detached pane with all the currency sentiment from myfxbook. Very nice!
- Avoid the top row links (They can't be removed). The top banner links open inside the pane, requiring you to either change the currency to force a reset or wait a minute for auto-refresh.
Enjoy!
Cheers,
Clark
// -------------------------------------------------------------------------------------------------
// Code by Naseem Regragui
// https://www.linkedin.com/in/naseemregragui/
// https://github.com/clarkregragui/
//
// Use at your own risk.
// -------------------------------------------------------------------------------------------------
using System.ComponentModel.DataAnnotations;
using cAlgo.API;
using cAlgo.API.Internals;
using System.Text.RegularExpressions;
using System.Linq;
using System;
namespace cAlgo.Plugins
{
public enum CurrencyPairs
{
EURUSD = 1,
GBPUSD = 2,
USDJPY = 3,
GBPJPY = 4,
USDCAD = 5,
EURAUD = 6,
EURJPY = 7,
AUDCAD = 8,
AUDJPY = 9,
AUDNZD = 10,
AUDUSD = 11,
CADJPY = 12,
EURCAD = 13,
EURCHF = 14,
EURCZK = 15,
EURGBP = 17,
EURHUF = 18,
EURNOK = 19,
EURNZD = 20,
EURPLN = 21,
EURSEK = 22,
EURTRY = 23,
GBPCAD = 24,
GBPCHF = 25,
NZDCAD = 26,
NZDJPY = 27,
NZDUSD = 28,
USDCHF = 29,
USDCZK = 31,
USDHUF = 34,
USDMXN = 36,
USDNOK = 37,
USDPLN = 38,
USDSEK = 40,
USDSGD = 41,
USDTHB = 42,
USDTRY = 43,
USDZAR = 45,
CHFJPY = 46,
AUDCHF = 47,
GBPNZD = 48,
NZDCHF = 49,
XAGUSD = 50,
XAUUSD = 51,
CADCHF = 103,
GBPAUD = 107,
SGDJPY = 131,
GBPNOK = 137,
EURZAR = 1233,
AUDSGD = 1234,
GBPSEK = 1236,
CHFSGD = 1245,
EURSGD = 1246,
GBPSGD = 1247,
XAUGBP = 1815,
NOKJPY = 1863,
ZARJPY = 1893,
GBPTRY = 2012,
USDRUB = 2076,
SEKJPY = 2090,
EURMXN = 2114,
XAUAUD = 2115,
XAUEUR = 2119,
XAUJPY = 2521,
XAUCHF = 2603,
GBPMXN = 2872,
XAGAUD = 3005,
NOKSEK = 3240,
XAGEUR = 3473,
XPTUSD = 5079,
XPDUSD = 5435,
USDCNH = 5779
}
[Plugin(AccessRights = AccessRights.None)]
public class SentimentWebViewPlugin : Plugin
{
private WebView SentimentWebView = new();
protected override void OnStart()
{
var block = Asp.SymbolTab.AddBlock("Community Sentiment");
block.Index = 2;
block.Height = 200;
block.IsExpanded = true;
Asp.SymbolTab.SymbolChanged += OnSymbolChangedEvent;
block.Child = SentimentWebView;
SentimentWebView.NavigateToStringAsync(GetWidget());
Timer.Start(TimeSpan.FromMinutes(1));
}
protected override void OnTimer()
{
SentimentWebView.NavigateToStringAsync(GetWidget());
}
public void OnSymbolChangedEvent(AspSymbolChangedEventArgs args)
{
SentimentWebView.NavigateToStringAsync(GetWidget());
}
private string GetWidget()
{
string symbolname = Enum.GetNames(typeof(CurrencyPairs)).FirstOrDefault(cp => Regex.IsMatch(Asp.SymbolTab.Symbol.Name, $".*{cp}.*"));
if (symbolname != null)
{
var parseResult = Enum.TryParse(symbolname, out CurrencyPairs activeSymbol);
if (parseResult)
{
var htmlWidget = @$"<HTML>
<!-- myfxbook.com outlook widget - Start -->
<div>
<script class=""powered"" type=""text/javascript""
src=""https://widgets.myfxbook.com/scripts/fxOutlook.js?type=0&symbols=,{(int)activeSymbol}""></script>
</div>
<div style=""font-size: 10px"">
<a href=""https://www.myfxbook.com"" title="""" class=""myfxbookLink"" target=""_self"" rel=""noopener"">
Powered by Myfxbook.com</a>
</div>
<script type=""text/javascript"">showOutlookWidget()</script>
<!-- myfxbook.com outlook widget - End -->
</HTML>";
return htmlWidget;
}
else
{
return "";
}
}
else
{
return "";
}
}
}
}
CL
Clark22
Joined on 17.05.2024
- Distribution: Free
- Language: C#
- Trading platform: cTrader Automate
- File name: SentimentWebView_withSourceCode.algo
- Rating: 5
- Installs: 490
- Modified: 16/06/2024 16:24
Note that publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section, please use the Copyright Infringement Notification form to submit a claim.
Comments
Log in to add a comment.
No comments found.