I am facing issue in exporting data from ninja trader using text files.
I have then decided to implement a direct link ninja to Mysql
I am using a script I have found in bigmike's forum but i am facing issue probably related to system.data or MySql.Data.MySqlClient. class installation.
I am adding them as references (right clic on the script to open the Reference form)
System.data, i found it on my computer in Windows/NT framework/ version ...
MysqlClient, i downloaded it from oracle and place it in Ninja/bin/custom
I have the following error message
Error on calling 'OnTermination' method for strategy 'LNMysql/97c3d2ee041e42f9aea17ed6d9046c19': Les gestionnaires AssemblyResolveEvent ne peuvent pas retourner des assemblys chargés pour la réflexion seulement.
I must admit it is not totally clear for me !!!
If someone can help, I would appreciate.
Lionel
XXXXXXXXXXX Script
#region Using declarations
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Indicator;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Strategy;
// Ajout Lionel
using System.Collections;
using System.Linq;
using MySql.Data.MySqlClient;
using System.Data;
// Add this to the declarations. It allows for the use of ArrayLists.
using System.Collections.Generic;
using System.Reflection;
#endregion
// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
/// <summary>
/// mise à jours base my SQL
/// </summary>
[Description("mise à jours base my SQL")]
public class LNMysql : Strategy
{
#region Variables
public ArrayList PositionVector = new ArrayList();
private int fast = 10;
private int slow = 25;
#endregion
/// <summary>
/// This method is used to configure the strategy and is called once before any strategy method is called.
/// </summary>
protected override void Initialize()
{
SMA(Fast).Plots[0].Pen.Color = Color.Orange;
SMA(Slow).Plots[0].Pen.Color = Color.Green;
Add(SMA(Fast));
Add(SMA(Slow));
CalculateOnBarClose = true;
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
if (CrossAbove(SMA(Fast), SMA(Slow), 1))
EnterLong();
else if (CrossBelow(SMA(Fast), SMA(Slow), 1))
EnterShort();
PositionVector.Add(Close[0].ToString());
}
protected override void OnTermination()
{
string[] Array2 = (string[])PositionVector.ToArray(typeof(string));
string delimited = string.Join(",", Array2);
//Debug
//Print(delimited.ToString());
MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;
cmd = new MySql.Data.MySqlClient.MySqlCommand();
string myConnectionString;
myConnectionString = "server=localhost;uid=root;" +
"pwd=xxxx;database=bourse";
string SQL;
conn = new MySql.Data.MySqlClient.MySqlConnection();
conn.ConnectionString = myConnectionString;
conn.Open();
SQL = "INSERT INTO closes (close) VALUES (@delimited)";
cmd.Connection = conn;
cmd.CommandText = SQL;
cmd.Parameters.AddWithValue("@delimited", delimited);
cmd.ExecuteNonQuery();
conn.Close();
Comment