ilk dört satıra değerler girmen yeterli.
canlı barda sadece 1 işlem yapmasını istiyorsan
var DefaLimiti = 1;
yapman gerekir.
hatırlatma;
repaint yapmama konusunda kodlarınızdan emin olun.
hacim indikatoru kullananlar Yüzeysel+ lisansı kullanmalı.
Kod:
var LotSize = 1.0;
var Periyot = "5";
var KullanilanSistem = "SistemAdi";
var DefaLimiti = 3;
// VIOP - Canlı Barda Emir Gönderim Kalıbı
var MySistem = Sistem.SistemGetir(KullanilanSistem, "VIP'VIP-X030", Periyot);
if (MySistem != null)
{
var V = MySistem.GrafikVerileri;
var Saat = V[V.Count - 1].Date;
if (Sistem.SaatAraligi("09:10", "17:44") && V[V.Count - 1].Date.Day == DateTime.Now.Day)
{
var DefaAnahtar = Sistem.Name + " , " + "Defa" + " , " + Saat.ToString("yyyyMMddHHmm");
var DefaSayisi = Sistem.SayiTablosunuOku(DefaAnahtar);
if (DefaSayisi < DefaLimiti)
{
var EmirSembol = Sistem.AktifViopKontrat;
var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol);
var SonYon = "";
for (int i = 0; i < MySistem.Yon.Count; i++)
{
if (MySistem.Yon[i] != "")
SonYon = MySistem.Yon[i];
}
// Emir Miktarını Hesapla
var Miktar = 0.0;
if (SonYon == "F" && Pozisyon != 0) // Flata Geç
Miktar = -Pozisyon;
else if (SonYon == "A" && Pozisyon != LotSize) // Al
Miktar = LotSize - Pozisyon;
else if (SonYon == "S" && Pozisyon != -LotSize) // Sat
Miktar = -LotSize - Pozisyon;
// Emir Gönder
if (Miktar != 0)
{
Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon);
Sistem.EmirSembol = Sistem.AktifViopKontrat;
Sistem.EmirIslem = Miktar > 0 ? "ALIS" : "SATIS";
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "KPY";
Sistem.EmirFiyatTipi = "PYS";
Sistem.EmirGonder();
DefaSayisi++;
Sistem.SayiTablosunuGuncelle(DefaAnahtar, DefaSayisi);
}
}
}
}