2017-02-05 6 views
0

日中取引で日中損失限度額を見つけるためにaflコードを実装したいと考えています。私は約200日間のバックテストのためにコードを使用します。 私は次のコードを持っていますが、間違いがあります。Amibroker:Daily Loss Limit

// identify new day 
dn = DateNum(); 
newDay = dn != Ref(dn,-1); 

// Daily Loss Limit 
dll = Optimize("dll", 0, 5, 10000, 5); 

EquityCount = 10000; 

for(i = 0; i < BarCount; i++) 
{ 
// signals 
Buy = ....; 
Sell = ....; 

diff = (Equity(1) - Ref(Equity(1), -1)); 
EquityCount = EquityCount + diff; 

// allow only dll 
Buy = Buy AND EquityCount > dll; 
} 

助けてください。おかげさまで

答えて

-1

まず、あなたのコードは完全に間違っています。 第2に、Equity()関数は単一のセキュリティ関数です。それは時代遅れです。

代わりにAmiBrokerのカスタムバックテストインターフェイスを使用してください。 AmiBrokerヘルプを参照してください。

+0

"まずあなたのコードは完全に間違っています"。このような徹底的な発言をするつもりなら、それを詳しく説明することは役に立ちます。 – ADyson

+0

AmiBrokerのマニュアルで詳しく説明しています!たとえば、「AFLの仕組みの理解」および「AFLの一般的なコーディングミス 」などです。 変数は、配列であり、EquityとRefは配列関数です。したがって配列の要素にアクセスするには、添字を適用する必要があります。 – fxshrat

+0

マニュアルでは説明していますが、a)リファレンスソースとして言及していない、b)SOの目的は、知識リポジトリを構築することです。ソースへのリンクと、将来の読者が理解できるようにここに保存された要約を提供する - リンクはしばしば古くなっていくことがあります。 http://stackoverflow.com/help/referencingおよびhttp://stackoverflow.com/help/how-to-answerを参照してください。 – ADyson