inputENUM_TIMEFRAMES TimeFrame2 = PERIOD_M5; //ЭТО ВО ВНЕШНИХ Н //////////////////////////////////////////////// for(int i=limit; i>=0; i--) { int bar_sto2_0=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i)); int bar_sto2_1=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i+1));
私の質問が理解されていなかったのかもしれません。
M1期間のチャートで、M5期間の「ストキャスティクス」指標の線 が55レベルを超えていたら、バッファを埋めたいと思います。
////////////////////////////////////////////////
for(int i=limit; i>=0; i--) {
int bar_sto2_0=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i));
int bar_sto2_1=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i+1));
double sto2_0=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_0);
double sto2_1=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_1);
if(sto2_0>55.0)
{
BufferUP[i]=low[i]-distance*MyPoint;
}
if(sto2_0<44.0)
{
BufferDN[i]=high[i]+distance*MyPoint;
}
Comment(sto2_0);
}
コメントではM5で現在値が正しいのですが、履歴上では矢印が条件に入っておらず、カオスになっています。
それは何でしょう?
地下室」では、M5からのストキャスティック
矢印は、信号に従っていない丸で囲まれている
売りと買いの2つのStopOrderを同時に配置するExpert Advisorを作成しています。
一方のStopOrderがトリガーされると、もう一方の(反対側の)StopOrderが削除されるという条件はどのように書けばよいのでしょうか?
ありがとうございます。
売りと買いの2つのStopOrderを同時に配置するExpert Advisorを作成しています。
一方のStopOrderがトリガーされると、もう一方の(反対側の)StopOrderが削除されるという条件はどのように書けばよいのでしょうか?
ありがとうございます。
条件は簡単です。StopOrderがトリガーされると、マーケットにポジションが出現するので、そのポジションを追跡し、存在すれば反対側の注文を削除する必要があるということです。
これは思考のためのコードの一部です)
bool b, s;
switch(op) {
case OP_BUY : b=ExistPositions(sy, OP_BUY , mn); break;
case OP_SELL: s=ExistPositions(sy, OP_SELL, mn); break;
}
if(b) {
DeleteOrders(sy, OP_SELLLIMIT, mn, cl);
DeleteOrders(sy, OP_SELLSTOP , mn, cl);
}
if(s) {
DeleteOrders(sy, OP_BUYLIMIT, mn, cl);
DeleteOrders(sy, OP_BUYSTOP , mn, cl);
}}
Vitaly Muzichenko, 私の理解では、ExistPositionsとDeleteOrdersの 関数を追加する必要があるようです。
Vitaly Muzichenko, 私の理解では、ExistPositionsとDeleteOrdersの 関数を書く必要があるようです。
書かなくても、どちらも既成の ものです。
まあ......、教育目的ならかなり使えるんですけどね......。
実用上、各機能でサイクルを回すのは非常にコストがかかります。
まあ......、トレーニング用としては非常に便利なんですけどね......。
実用上、すべての機能でサイクルを回すのは非常にコストがかかる。
ストップ/ストップが200の場合の対処法
けど
tp=NormalizeDouble((価格+(TakeProfit*_Point)),Digits)となります。
ドル円の場合、為替レート117.000で317.000円になります
期待される結果は117.200
ストップ/ストップが200の場合の対処法
けど
tp=NormalizeDouble((価格+(TakeProfit*_Point)),Digits)となります。
ドル円の場合、為替レート117.000で317.000円になります
期待される結果は117.200
なぜ、こんなにたくさんのブラケットがあるのですか?もちろん好みの問題だが、それでもやりすぎだ。
tp=NormalizeDouble(price+TakeProfit*_Point,_Digits)。
出力結果が不正確な場合、値は正しく代入されます。このコードの行は、余分な括弧があってもすべてを正しく計算するためです。