Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

MetaTrader 4 II.


Sid

Doporučené příspěvky

wollwerine:
O kousek výš jsem již odpovídal. Zkus zapřemýšlet CO TO JE [bold] Open Interest[/bold]. Na Forexu je to blbost! Ale můžeš si nají OI na futures na měny. Ale u forexu forex ne. A jak bylo psáno výše (ne mnou), tak ani volume. Pokud chceš sledovat volume a open interest, tak jedině pomocí futures na měny. Je to pravda omezené časem burzy, ale vypovídající hodnotu by to mělo mít.

U forexu je open interest nesmysl a volume nedostaneš.

Link to comment
Sdílet pomocí služby

  • Odpovědí 967
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

harmonie:

dik moc, volume použivať ani nechcem, škoda toho open interest :( niekde som musel nieco prehliadnut. nenaslo by sa nieco podobne ako OI na MT4, niečo čo by malo podobne vlastnosti ale údaje by získavala iným spôsobom? niečo čo by fungovalo na Forex (ako napr RSI a %R majú podobnú funkciu ale výpočty robia ináč)

Link to comment
Sdílet pomocí služby

Dobrý den,dostanu asi vynadáno,ale já se chci zeptat kde mohu nalézt popsaný postup pro vložení nového systému či indikátoru do MT nebo aspon do VT?Je to tento příkaz:

WealthScript Code (C#):

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;

namespace WealthLab.Strategies
{
/* Class that encapsulates the ATR Trailing Stop, closing basis */
public class ATRTrail
{
private WealthScript ws;
private Bars bars;
private double stopPrice;
private bool longPosition;
private DataSeries atrMod;

public ATRTrail(WealthScript wL, Bars b, bool positionLong, double
initialStop, int period, double factor )
{
ws = wL;
bars = b;
longPosition = positionLong;
stopPrice = initialStop;
atrMod = factor * TASCIndicators.ATRModified.Series(bars, period);
}

// Call this method to update and return the stop price on each bar
after entry
public double Price(int bar)
{
double prevPrice = stopPrice;
double newPrice;
if (longPosition)
{
newPrice = bars.Close[bar] - atrMod[bar];
stopPrice = newPrice > stopPrice ? newPrice : stopPrice;
}
else
{
newPrice = bars.Close[bar] + atrMod[bar];
stopPrice = newPrice }
ws.DrawLine(ws.PricePane, bar-1, prevPrice, bar, stopPrice, Color.Blue,
LineStyle.Solid, 1);
return stopPrice;
}
}

public class SAC_ATRTrailingStops : WealthScript
{
private StrategyParameter _isLong = null;
private StrategyParameter _initStop = null;
private StrategyParameter _period = null;
private StrategyParameter _atrMult = null;
private StrategyParameter _y = null;
private StrategyParameter _m = null;
private StrategyParameter _d = null;

public SAC_ATRTrailingStops()
{
_isLong = CreateParameter("Long = 1", 1, 0, 1, 1);
_initStop = CreateParameter("Initial Stop", 1.0, 0.25, 50.0, 0.25);
_period = CreateParameter("ATR Period", 5, 2, 100, 1);
_atrMult = CreateParameter("ATR Multiplier", 3.5, 1.0, 5.0, 0.1);
_m = CreateParameter("Month", 4, 1, 12, 1);
_d = CreateParameter("Day", 13, 1, 31, 1);
_y = CreateParameter("Year", 2009, 1990, 2012, 1);
}

/* Execute a strategy - trade on a specified date */
protected override void Execute()
{
DateTime dt;
try {
dt = new DateTime(_y.ValueInt, _m.ValueInt, _d.ValueInt);
}
catch {
DrawLabel(PricePane, "Invalid Date", Color.Red);
return;
}

int b = Bars.ConvertDateToBar(dt, false);
if (b DrawLabel(PricePane, "Date does not exist on chart", Color.Red);
return;
}

if( _isLong.ValueInt == 1 )
BuyAtMarket(b, "Discretionary");
else
ShortAtMarket(b, "Discretionary");
Position p = LastPosition;

// After creating a position, initialize a stop object
ATRTrail atrStop = new ATRTrail(this, Bars, p.PositionType ==
PositionType.Long, _initStop.Value, _period.ValueInt, _atrMult.Value);

for(int bar = b + 1; bar {
if (p.Active)
{
if (p.PositionType == PositionType.Long)
{
if( Close[bar] ExitAtMarket(bar + 1, p);
}
else if( Close[bar] > atrStop.Price(bar) )
ExitAtMarket(bar + 1, p);
}
}
}
}
}

Link to comment
Sdílet pomocí služby

:)
Nejdi na to tvrdohlavě a zkus o tom přemýšlet. 3x otázka, 3x odpověď. Nejde to! Zkusím to ještě jednou.

Co to je Open Interest?
1. U akcií je to počet emitovaných akcií, které se MOHOU obchodovat.
2. U futures je to počet kontraktů, které jsou v oběhu. Ale nemusejí se každý den zobchodovat. Mohou "ležet" na účtě. Ale část kontraktů se točí dokola, když intradenní obchodníci jsou aktivní. To je denní volume. Takže denní počet zobchodovaných kontraktů (volume) neodpovídá celkovému počtu kontraktů (OI). Např. pěstitelé kukuřice dopředu (future) prodají svoji úrodu. Takže OI částečně vyjadřuje jejich odhad, kolik se urodí pšenice.
3. U forexu nevíme, kolik peněz bylo vytištěných, kolik je jich v oběhu a kolik jich která země ještě potají vytiskne. U forexu to prostě NEJDE!

Pokud chceš používat OI, tak pomocí futures.

Link to comment
Sdílet pomocí služby

dodatek
RSI, %R, ... se vypočítávají z ceny Open, High, Low, Close. A je jen na nás, jaký timeframe vezmeme. Ale jsou jen tyto 4 cenové údaje.
Volume je už něco jiného a brokeři je nedávají k dispozici. A OI pro forex neexistuje.

PS.: Po čtvrté stejné otázce bude následovat čtvrtá stejná odpověď...... :)

Link to comment
Sdílet pomocí služby

ZAPOMNĚL JSEM ZAŠKRTNOUT ODESÍLÁNÍ ODPOVĚDI NA MŮJ MAIL, TAKŽE JEŠTĚ JEDNOU:

PROSÍM PROSÍM, buďte někdo tak laskav, a do níže uvedeného příkazu mi prosím přidejte TP 31 pips.

Předem děkuji za laskavost.
Slávek


----------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "www.metaquotes.net/"
#property show_confirm

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int ticket;
double point;
//----

//----

while(true)
{
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,0,Ask-11*Point,0,"some comment",123,0,Green);
if(ticket else { Print("ticket = ",ticket); break; }
//---- 10 seconds wait
Sleep(10000);
}
//----
return(0);
}
//+------------------------------------------------------------------+

Link to comment
Sdílet pomocí služby

Slávekx Napsal:
-------------------------------------------------------
> PROSÍM PROSÍM, buďte někdo tak laskav, a do níže uvedeného příkazu mi prosím přidejte TP 31 pips.
> ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,0,Ask-11* Point,0,"some comment",123,0,Green);


Podle stejného pravidla, jak jsi tvořil StopLoss. Nebo to není z tvé hlavy?

ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,0,Ask-11* Point,[bold]Ask+31*Point[/bold],"some comment",123,0,Green);



Link to comment
Sdílet pomocí služby

Začni tím, že se podívej do záložky "Deník", co ti to EA píše. Asi se tam budou objevovat chyby. pak si vypiš číselník chyb, je v ...\experts\libraries\stdlib.mq4. A já pak vkládám do programu na "strategická místa" pomocné tisky - např: Print("Krok 1 Ask="+Ask); případně Print("Type="+OrderType()+" StopLoss="+OrderStopLoss());

Ladění EA je v MT4 problém. Snad má být vyřešen v MT5.

PS: před každým novým spuštěním EA si vymaž Deník (pravou myší).

Link to comment
Sdílet pomocí služby

ahojte,
moze mi niekto poradit? mam nasledovny skript na zadavanie obchodov, normalne obchod otvori bez problemov v niektorych pripadoch nie. Error ktory dostanem je 3 ERR_INVALID_TRADE_PARAMETERS. Neviem preco niekedy ide a niekedy nie. Tu je skript ak by mi niekto vedel poradit, budem vdacny.

extern double TakeProfit=30;
extern double StopLoss=15;
extern double BuyStop=5;

double bid =MarketInfo(Symbol(),MODE_BID);
double ask =MarketInfo(Symbol(),MODE_ASK);

ticket = OrderSend(Symbol(), OP_BUYSTOP, Lots, ask+BuyStop*Point, 0,ask-((StopLoss+BuyStop)*Point),ask+((BuyStop+TakeProfit)*Point),"Simple BUYSTOP", 11111,TimeCurrent()+600,Green);

dakujem,
aston

Link to comment
Sdílet pomocí služby


×
×
  • Vytvořit...