//+----------------------------------------------------------------------------+/*
Расчёт уровня БУ для множества по одному инструменту:
сумма лотов = суммарная позиция (СП)
стоимость тика СП = СТ
профит СП = ПСП
Формула расчёта довольно проста:
КП = ПСП / (СТ * СП)
В которой узнаём количество пипс (КП) до уровня БУ относительно текущей цены (ТЦ) символа.
И подставив КП в формулу БУ = ТЦ - КП * Point получаем уровень цены БУ.
В зависимости от направления СП выбирается прибавлять либо отнимать от ТЦ.
*/double PriceWL(int op, int m1, int m2, double &ll) {
double Res, pp, pt, tic, NumPP, Prof=0, SumLot=0.00000001;
int i;
pt =MarketInfo(sy,MODE_POINT);
tic=MarketInfo(sy,MODE_TICKVALUE); // Стоимость тика СТfor (i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS)) {
if (OrderSymbol()!=sy) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()==m1 || OrderMagicNumber()==m2) {
Prof+=(OrderProfit()+OrderSwap()+OrderCommission()); // Суммарный профит позиций ПСП
SumLot+=OrderLots(); // Суммарный лот позиций СП
}
}
}
SumLot=MathAbs(NormalizeLot(SumLot));
NumPP=MathAbs(Prof/(tic*SumLot)); // Количество пунктов до уровня бу КПif (op==0) Res=Ask+NumPP*pt;
if (op==1) Res=Bid-NumPP*pt;
ll=SumLot;
return(Res);
}
//+----------------------------------------------------------------------------+
if (NormalizeDouble(Open[0],Norm)>ma && NormalizeDouble(Bid,Norm)<=ma)
{
if (CheckFiltr()>=Filtr)
{
Print (CheckFiltr()+" Buy"); <= Это в журнале есть, значит должна открыться сделка.for (i=0;i>5;i++)
{
res=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Bid-Sl*Point,0,"OpenBuy",Magik,0,Green);
Print ("Проверка Бай "+i); <= Этого в журнале нет.if (res>0) break;
Print (GetLastError()); <= Этого в журнале нет.Sleep (5000);
}
}
}
実は、そうなんです。今さらかもしれないが、わからない。それは本来、開店から閉店までの距離であるppsの利益です。ではなぜ、この表現は間違っているのでしょうか。
ちょっと自分のことで精一杯になりつつある・・・。:)問題です。
1.0.1ロットの空きポジションがあります。
2.TakeProfitの値は50pipsです。
3.PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE)という式で、その潜在的な利益を計算しています。
4. 計算の結果、5ドル(0.1*50*1.0)の潜在的な利益を得ることができました。
ポジションは赤字になり、ある時点でさらに1つの平均化された買いが始まりますが、0.2ロットで
1.この2つのポジションのBreakevenを計算します。機能は必要な分だけ長く使っており、今のところ不満はない。
2.完璧です。損益分岐点を計算したが...その2つのポジションのトークンを乗せると、ゼロで閉じます。なるほど、なるほど。さて、このレベルのBUに、先に計算した利益総額と同じ5ドルを得るために必要なポイント数を追加する必要があります。
3.そして、ここで脳が詰まってしまうのです。私は何をすべきか:私は$ 5を取り、これらの2つのポジションの合計ロット(0.1 + 0.2 = 0.3)で割ると、TICK_VALUEを掛けた。
5/(0.3*1.0) = 16.6666 となります。そして、これにPoint(0.00016)を掛けて、Breakeven priceに加算します。
4.完璧です。テイクはそこに転送されますが、このレベルで閉じる2つのベイザーの合計利益は5ドルに等しくないように私には思えます - それは私には少ないように思えます。これは、テストチャートからわかることです。1つのポジションを決済した場合の残高増加は、計算された総取得額レベルで複数のポジションを決済した場合よりもはるかに大きいことが明確に示されています(チャート上のこれらの場所は、その上の持分線の外観で確認することができます)。チャートです。
どこが間違ってるんだろう?
利益の合計を印刷できるのはわかるが変数の値ではなく、自分の計算のどこに間違いがあるのかを理解したいのです。すでにプリントしています。
5桁の数字で構成される価格があるのですが例:1.3221。
4桁を意味します。小数点以下の4または5を意味する。5桁の場合は、例えば、132210となります。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
プログラマーの皆さん、EAとインジケーターを組み合わせる方法を教えてください。
例えば、私は独自のアルゴリズムを使って取引するシンプルなボットmo_bidir.mq 4を取り、私はそれが独自のアルゴリズムを使って取引を開始したいが、3つのMAシグナル後
例えば、 on signal -Three Moving Averages:
FastEMA>MediumEMA>SlowEMA (トレンド up)- bot buys
FastEMA<MediumEMA<SlowEMA (トレンド 下)- bot 売り
Inp_Signal_ThreeEMA_FastPeriod = 8;
Inp_Signal_ThreeEMA_MediumPeriod = 38;
Inp_Signal_ThreeEMA_SlowPeriod= 48;
Expert Advisorは5分足で取引し、インジケータは日足または4時間足でシグナルを出すようにしたいのですが、ボットの設定でタイムフレームを変更できるようにしたいのです。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
何度も申し訳ないのですが、せめてどのフォーラムのスレッドで応募すればいいのか、それとも新たにスレッドを作成した方がいいのか、教えてください。
どうしたらいいのかわからない。
皆さん、こんにちは。OrderSendがポジションを開けない 理由を教えてください。
ちょっと自分のことで精一杯になりつつある・・・。:)問題です。
1.0.1ロットの空きポジションがあります。
2.TakeProfitの値は50pipsです。
3.PotentialProfit = Lots*TakeProfit*MarketInfo(Symbol(), MODE_TICKVALUE)という式で、その潜在的な利益を計算しています。
4. 計算の結果、5ドル(0.1*50*1.0)の潜在的な利益を得ることができました。
ポジションは赤字になり、ある時点でさらに1つの平均化された買いが始まりますが、0.2ロットで
1.この2つのポジションのBreakevenを計算します。機能は必要な分だけ長く使っており、今のところ不満はない。
2.完璧です。損益分岐点を計算したが...その2つのポジションのトークンを乗せると、ゼロで閉じます。なるほど、なるほど。さて、このレベルのBUに、先に計算した利益総額と同じ5ドルを得るために必要なポイント数を追加する必要があります。
3.そして、ここで脳が詰まってしまうのです。私は何をすべきか:私は$ 5を取り、これらの2つのポジションの合計ロット(0.1 + 0.2 = 0.3)で割ると、TICK_VALUEを掛けた。
5/(0.3*1.0) = 16.6666 となります。そして、これにPoint(0.00016)を掛けて、Breakeven priceに加算 します。
4.完璧です。テイクはそこに転送されますが、このレベルで閉じる2つのベイザーの合計利益は5ドルに等しくないように私には思えます - それは私には少ないように思えます。これは、テストチャートからわかることです。1つのポジションを決済した場合の残高増加は、計算された総取得額レベルで複数のポジションを決済した場合よりもはるかに大きいことが明確に示されています(チャート上のこれらの場所は、その上の持分線の外観で確認することができます)。チャートです。
どこが間違ってるんだろう?
利益の合計を印刷できるのはわかるが変数の値ではなく、自分の計算のどこに間違いがあるのかを理解したいのです。すでにプリントしています。
失礼ですが、ここで何が間違いなのか説明してください。解らないんです。
売り ポジションでも?