mirror of
https://github.com/RomySaputraSihananda/ares.git
synced 2026-08-09 17:01:00 +00:00
feat(web): ARES logo SVG + full SEO (metadata, sitemap, robots, favicon, per-page titles)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import type { Metadata } from "next";
|
||||
import Link from "next/link";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Backtest Results",
|
||||
description: "ARES backtest results: M5 Momentum FVG scalper on XAUUSDm. Best run: PF 1.42, +43.2% net return, −11.5% max drawdown.",
|
||||
};
|
||||
|
||||
const results = [
|
||||
{ period: "1 Month", tf: "M5", risk: "1%", trades: 159, wr: 55.3, pf: 1.42, ret: 43.2, dd: -11.5, highlight: true },
|
||||
{ period: "1 Month", tf: "M5", risk: "5%", trades: 159, wr: 55.3, pf: 1.26, ret: 390, dd: -156, highlight: false },
|
||||
|
||||
+49
-11
@@ -2,13 +2,44 @@ import type { Metadata } from "next";
|
||||
import "./globals.css";
|
||||
import Nav from "@/components/Nav";
|
||||
|
||||
const SITE_URL = "https://ares-six-peach.vercel.app";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "ARES — Automated Trading Bot",
|
||||
description: "Live forward-test results for ARES, an M5 Momentum FVG scalper built in Rust.",
|
||||
metadataBase: new URL(SITE_URL),
|
||||
title: {
|
||||
default: "ARES — Automated Gold Trading Bot",
|
||||
template: "%s · ARES",
|
||||
},
|
||||
description:
|
||||
"Live forward-test results for ARES, an M5 Momentum FVG scalper built in Rust. Trades XAUUSDm with EMA-20 trend filter and automated risk management.",
|
||||
keywords: [
|
||||
"algorithmic trading", "gold trading bot", "XAUUSD EA",
|
||||
"MT5 expert advisor", "Rust trading bot", "FVG scalper",
|
||||
"forex robot", "automated trading", "ICT strategy",
|
||||
],
|
||||
authors: [{ name: "Romy Saputra Sihananda" }],
|
||||
creator: "Romy Saputra Sihananda",
|
||||
robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
googleBot: { index: true, follow: true, "max-snippet": -1, "max-image-preview": "large" },
|
||||
},
|
||||
openGraph: {
|
||||
title: "ARES Trading Bot",
|
||||
description: "Live forward-test · M5 Momentum FVG · XAUUSDm",
|
||||
type: "website",
|
||||
url: SITE_URL,
|
||||
siteName: "ARES Trading Bot",
|
||||
title: "ARES — Automated Gold Trading Bot",
|
||||
description: "Live forward-test · M5 Momentum FVG scalper · XAUUSDm · Built in Rust",
|
||||
locale: "en_US",
|
||||
},
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: "ARES — Automated Gold Trading Bot",
|
||||
description: "Live forward-test · M5 Momentum FVG scalper · XAUUSDm · Built in Rust",
|
||||
},
|
||||
icons: {
|
||||
icon: "/favicon.svg",
|
||||
shortcut: "/favicon.svg",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -20,25 +51,32 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
||||
<main className="max-w-5xl mx-auto px-4 sm:px-6 py-12">
|
||||
{children}
|
||||
</main>
|
||||
<footer className="border-t border-hl mt-section">
|
||||
<footer style={{ borderTop: "1px solid var(--c-hl)" }} className="mt-24">
|
||||
<div className="max-w-5xl mx-auto px-6 py-16 grid grid-cols-1 sm:grid-cols-3 gap-10">
|
||||
<div>
|
||||
<span className="font-mono text-xs tracking-widest text-ink-sub uppercase">ARES</span>
|
||||
<p className="text-sm text-ink-sub mt-3 leading-relaxed">
|
||||
<div className="flex items-center gap-2 mb-3">
|
||||
<svg width="22" height="22" viewBox="0 0 26 26" fill="none" aria-hidden="true">
|
||||
<rect width="26" height="26" rx="6" fill="#5e6ad2"/>
|
||||
<path d="M8 19 L13 8 L18 19" stroke="white" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M10.2 15.5 H15.8" stroke="white" strokeWidth="1.8" strokeLinecap="round"/>
|
||||
</svg>
|
||||
<span className="font-mono text-sm font-semibold" style={{ letterSpacing: "0.18em", color: "var(--c-ink)" }}>ARES</span>
|
||||
</div>
|
||||
<p className="text-sm leading-relaxed" style={{ color: "var(--c-ink-sub)" }}>
|
||||
M5 Momentum FVG Scalper<br />Built in Rust · XAUUSDm
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-xs font-medium text-ink-sub uppercase tracking-eyebrow mb-4">Navigation</p>
|
||||
<ul className="space-y-2 text-sm text-ink-sub">
|
||||
<p className="eyebrow mb-4">Navigation</p>
|
||||
<ul className="space-y-2 text-sm" style={{ color: "var(--c-ink-sub)" }}>
|
||||
<li><a href="/" className="hover:text-ink transition-colors">Dashboard</a></li>
|
||||
<li><a href="/trades" className="hover:text-ink transition-colors">Trades</a></li>
|
||||
<li><a href="/backtest" className="hover:text-ink transition-colors">Backtest</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-xs font-medium text-ink-sub uppercase tracking-eyebrow mb-4">Disclaimer</p>
|
||||
<p className="text-xs text-ink-ter leading-relaxed">
|
||||
<p className="eyebrow mb-4">Disclaimer</p>
|
||||
<p className="text-xs leading-relaxed" style={{ color: "var(--c-ink-ter)" }}>
|
||||
Past performance does not guarantee future results. Demo account forward test. Not financial advice.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import type { MetadataRoute } from "next";
|
||||
|
||||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: { userAgent: "*", allow: "/" },
|
||||
sitemap: "https://ares-six-peach.vercel.app/sitemap.xml",
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { MetadataRoute } from "next";
|
||||
|
||||
const BASE = "https://ares-six-peach.vercel.app";
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
return [
|
||||
{ url: BASE, lastModified: new Date(), changeFrequency: "hourly", priority: 1.0 },
|
||||
{ url: `${BASE}/trades`, lastModified: new Date(), changeFrequency: "hourly", priority: 0.9 },
|
||||
{ url: `${BASE}/backtest`,lastModified: new Date(), changeFrequency: "monthly", priority: 0.7 },
|
||||
];
|
||||
}
|
||||
@@ -1,8 +1,14 @@
|
||||
import type { Metadata } from "next";
|
||||
import { getAccount, getAllDeals, type Deal } from "@/lib/mt5";
|
||||
import { formatCurrency, formatDate } from "@/lib/format";
|
||||
import EquityChart from "@/components/EquityChart";
|
||||
import TradesRefresher from "@/components/TradesRefresher";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Trade History",
|
||||
description: "Live closed trades and equity curve for ARES — M5 Momentum FVG scalper on XAUUSDm.",
|
||||
};
|
||||
|
||||
export const dynamic = "force-dynamic";
|
||||
const MAGIC = 19730;
|
||||
|
||||
|
||||
+10
-3
@@ -14,9 +14,16 @@ export default function Nav() {
|
||||
return (
|
||||
<nav className="sticky top-0 z-50" style={{ backgroundColor: 'var(--c-canvas)', borderBottom: '1px solid var(--c-hl)' }}>
|
||||
<div className="max-w-5xl mx-auto px-4 sm:px-6 h-14 flex items-center gap-6">
|
||||
{/* wordmark */}
|
||||
<Link href="/" className="font-mono text-xs tracking-widest text-ink-sub uppercase hover:text-ink transition-colors">
|
||||
ARES
|
||||
{/* logo + wordmark */}
|
||||
<Link href="/" className="flex items-center gap-2 group">
|
||||
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" aria-hidden="true">
|
||||
<rect width="26" height="26" rx="6" fill="#5e6ad2"/>
|
||||
<path d="M8 19 L13 8 L18 19" stroke="white" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
|
||||
<path d="M10.2 15.5 H15.8" stroke="white" strokeWidth="1.8" strokeLinecap="round"/>
|
||||
</svg>
|
||||
<span className="font-mono text-sm font-semibold tracking-widest text-ink group-hover:text-accent transition-colors" style={{ letterSpacing: '0.18em' }}>
|
||||
ARES
|
||||
</span>
|
||||
</Link>
|
||||
|
||||
{/* nav links */}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
|
||||
<rect width="32" height="32" rx="8" fill="#5e6ad2"/>
|
||||
<path d="M9 23 L16 9 L23 23" stroke="white" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M11.8 18.5 H20.2" stroke="white" stroke-width="2.2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 360 B |
Reference in New Issue
Block a user