int start()
{
if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
{
CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
start3();//запускаем трал
}
//бла-бла-бла, тут еще куча рабочего кода :)
}
ユーザー定義関数。
void start3()
{
if (ShowComment) {
Comment(IIFs(AllSymbols, "AllSymbols ", "")
,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+" "
,IIFs(TSProfitOnly, "TSProfitOnly ", "")
,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п "
,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п "
,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п "
);
} elseComment("");
string sy=IIFs(AllSymbols, "", NULL);
SimpleTrailing(sy, -1, Magic);
}
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
double po, pp;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
po=MarketInfo(OrderSymbol(), MODE_POINT);
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
ModifyOrder(-1, pp-TStop.Buy*po, -1);
}
}
}
if (OrderType()==OP_SELL) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
ModifyOrder(-1, pp+TStop.Sell*po, -1);
}
}
}
}
}
}
}
}
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
if (condition) return(ifTrue); else return(ifFalse);
}
FXでは、ほとんどすべてのサーバーが無料です。
さらに、ほとんどの証券会社にはデモ口座があり、実際のお金の代わりに仮想のお金で取引することができるのです。
Margin CALLとは?マ
ージンコールとは、ポジションの強制決済が行われる状態のことです。 。
これは、お客様の口座残高(Equity)が、すべての保有ポジションの金額に対して必要な証拠金(Margin)のゼロに達したときに発生します。
操作は自動で行われます。企業によっては、マージンコールが自己資本の30%に設定されているところもある。
ありがとうございます、具体的なリンクを教えてください。ググっても出てきません。いつもありがとうございます。
どのブローカーからもMetaTrader 4をダウンロードし、インストールする必要があります。
デモ口座を 開設していただければ、すぐにご利用いただけます。すべて無料です。Googleでブローカーを探せば、たくさんありますよ。
皆さん、こんにちは。EAを作成する際に問題に直面したことがあります。どうしたらいいか、誰か教えてくれたらうれしいです。
問題の本質:私はIgor Kimの EAの1つにトレーリングストップを 複数のポジションに同時に追加するよう依頼されています。全部追加したのですが、結果が悪いです :( Trailing Stop は常に TStop.Sell と TStop.Buy のポイントで bid と ask から離れて動きます、つまり、価格が上がると Trailing Stop も上がり、価格が下がると Trailing Stop が下がります...。テレ朝に電話するまでもなく、自分でコードを追加します :)
ユーザー定義関数。
インジケータコードで指定したパラメータ(インジケータ自体のパラメータではない)を別のインジケータに渡して処理することが可能かどうか知りたいのですが。
2つ目の質問は、インジケータからEAにパラメータを渡す方法と、このEAがテスト モードでどのように動作するかということです。
ありがとうございました。
ずいぶんこじつけた説明をしていますね。
GlobalVariableで MTに転送する一番簡単な方法は、クリップボードのような ものです。一方が置くと、もう一方が取る。
でも、他にもいろいろな選択肢があり、それらは状況に依存するものです。状況がないため、選択肢の話がしにくい。同じキャラクターでテストされます。
。
ずいぶんこじつけた説明をしていますね。
GlobalVariableで MTに転送する一番簡単な方法は、クリップボードのような ものです。一方が置くと、もう一方が取る。
でも、他にもいろいろな選択肢があり、それらは状況に依存するものです。状況がないため、選択肢の話がしにくい。同じキャラクターでテストされます。
。
MTのヘルプにGlobalVariableがないのですが・・・。
バリアントについて例えば、次のような計算です。ジグザグのインジケータがあり、私はジグザグのコードにパターンを定義するコードを追加しました。 If (condition) 条件を満たした場合、a =1 変数 条件を満たさない場合、a =0 この変数値を別のインジケータに渡す必要があります。この場合、そのようなインジケータ内の変数が (a=1) に等しければ次の操作を行います、もし a=0 なら、です。 これは、インジケータ間でパラメータを受け渡し することです。
と、それぞれ同じ形式で、インジケータからExpert Advisorにパラメータを渡します。Strategy Testerでテストした場合、Expert Advisorは計算のためにインディケータをロードし、変数の値をEAに渡すのでしょうか? それとも、変数はインディケータ環境にあるため、アクセスできないとしてエラーになるのでしょうか!
同じ質問です。非標準のインジケーターから別のインジケーターにデータを転送するにはどうすればよいですか?
ずいぶんこじつけた説明をしていますね。
GlobalVariableで MTに転送する一番簡単な方法は、クリップボードのような ものです。一方が置くと、もう一方が取る。
でも、他にもいろいろな選択肢があり、それらは状況に依存するものです。状況がないため、選択肢の話がしにくい。同じキャラクターでテストされます。
。
例えば標準のiMAのようにショートネームで呼び出すことはできないのでしょうか?
あなたはそれを呼び出すことができ、エラーはありませんが、どのようにパラメータを渡すために? 私は呼び出しを行い、(私が呼び出す)括弧内にパラメータを置くが、応答でそのようなパラメータがインジケータに存在しない悪態をついている。