トレーリングファンド機能(株式)-既製品に出会った方はいらっしゃいますか? - ページ 9

 
オプションでグローバル変 数を使用する
 

このようにして、あるEAで利益確定を行いました。

extern double ProfitAutoClose = 100.0; // 利益確定のための増額。

ダブルデポ

int init()
{
//----
Depo=AccountEquity();
GlobalVariableSet("Depo",Depo);
//----
return(0);
}.

int start()
{

Depo=GlobalVariableGet("Depo")。

if(AccountEquity()-Depo>ProfitAutoClose)
{

ClosePositions("0",-1, Mn);//すべてのポジションを閉じる

Depo=AccountEquity()です。

GlobalVariableSet("Depo",Depo)。

}

...

 
Rita >> :

まさにこれが難しいところです。前のステップ(複数可)でのエクイティはどのように決定するのですか?

ある程度の過去の資産価値に頼らざるを得ない。どこで手に入れるのか、以前の値?

変数を取得します。

 

皆さん、ありがとうございました。そうですね、確かに。

私は( khoroshから)利益確定を行いましたが、このオプションは非常に効果的です。そして、ProfitAutoCloseのパラメータを最適化したところ、ドローダウンがかなり減少しました。


しかし、正確には株式のトリミングではありません。

ここでトレーリング・エクイティを追加するにはどうすればよいのでしょうか? 別の変数を導入するか?

 
イゴール・キムの新しいアドバイザーで トレーリング・エクイティを見てみましょう。
 

granit77 さん、ありがとうございます。

でも、それはもともと私が実験したバージョンなんです。それは、トロールがバランスから押し出され、バランスと相互作用するため、フィットしないのです。かき集められているのは利益です。

私のEAでは、equityは常にbalanceを下回るので、このビルドは適さない。

先ほど(7ページ目の最後の投稿)にも書きました。

"私のEAが常にマイナスの利益を表示している場合、どのように株式をトラブることができますか?
すなわち、利益はないが、現在の損失はある(EA特有の操作で、個々のポジションは(ほとんど)プラスで閉じるが、この場合のすべてのオープンポジションは 常に損失である)。

 
Rita >> :

そして、私のEAでは、エクイティは常に恒久的にバランスを下回っており、この構造は適合しないのです。

不採算の取引を先に決済し、次に採算の取れる取引を決済する。 残高が自己資本を下回る(残高以上の自己資本に相当する)。

// 収益性に何ら影響を与えない。

そうでないと、「エクイティ<バランス」ということで、神経質になりがちではないでしょうか。 悔しいから、かなりペースを落としているんですね。;)

基本的には、(公開しないのであれば)ソースコードを送っていただければ、私が修正します。

 

リタ、ここにコード(例として)を見てみましょう、一度自分自身をやった、NOT使用、しかし、それは私が今覚えているように働いた:)

バランスシートやバランスシートの利益など、不要なものとの連動がないこと

(使用前によく確認し、必要に応じて変更してください)

if (!GlobalVariableCheck("StopTrading")) {if (!GlobalVariableCheck("TrStopEquity") の場合 {。 int sl=SL_Equity; int tp=TP_Equity; if (( sl!=0 && AccountEquity()<=sl) || (tp!=0 && AccountEquity()>=tp)){ {{ { { &AccountEquity() >=tp GlobalVariableSet("StopTrading",1); Sleep(500) ClosePositions(); if ( ShowComment){取引完了。すべての取引は終了しています。"+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS). TimeCurrent(),TIME_DATE|TIME_SECONDS; コメント( pref, comm);}} }if (!GlobalVariableCheck("StopTrading")) {bool tr_stop=TrStop_Equity; int tr_step=TrStep_Equity; int tr_dist=TrDist_Equity; int tr_lvl=TrStartLvl_Equity;if (( tr_stop)||( tr_lvl!=0 && AccountEquity()>=tr_lvl)||(GlobalVariableCheck("trStopEquity")) { if (!GlobalVariableCheck("TrStopEquity") の場合{。 GlobalVariableSet("TrStopEquity",1);}。 Sleep(500); if (!GlobalVariableCheck("SL_Equity") の場合){。 GlobalVariableSet("SL_Equity",(AccountEquity()-tr_dist));}.Sleep(500); sl=GlobalVariableGet("SL_Equity"); if (AccountEquity()<=sl)){。 GlobalVariableSet("StopTrading",1); Sleep(500) GlobalVariableDel("TrStopEquity") Sleep(500); GlobalVariableDel("SL_Equity") Sleep(500); ClosePositions(); if ( ShowComment){取引完了。すべての取引は終了しています。"+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS). TimeCurrent(),TIME_DATE|TIME_SECONDS; コメント( pref, comm);}.} else{if (AccountEquity()>( sl+tr_dist+tr_step)GlobalVariableSet("SL_Equity",(AccountEquity()-tr_dist));Sleep(500) ですif ( ShowComment) {.comm="トレーリングストップが作動しています\Ίταμμα για για για για για για για"+DoubleToStr(NormalizeDouble( sl,2),2)+"\n"; comm=comm+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);コメント( pref, comm); } } 
使用した機能はKimのものです。まだお持ちでない方はフォーラムで探してみてください。
 

もし、equityのトロールをお持ちでしたら、equity = ХХХの場合、全てのポジションをクローズし、全てのオーダーを削除するという簡単なものをお送りください。例えば、ポジションを開く 前に私のバランスが10000だった場合、トロールでequityを10500とし、equity = 10500と同時に、全てのオーダーとポジションをクローズするのです).

このスレッドの上のキムさんの・・・ちょっと複雑に見えると思うのですが・・・) を見てみました.)よろしくお願いします:)

 

あ、あれだ、ちょうど上にあったような...。stCloseOrdersが正しいようです:)

でも、もし誰かが似たようなものを持っているなら、それを投げ入れてください...便利すぎるということはありませんから:)