どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 77

 
Sepulca:

荒らしてる))))カリスマ性がありますね))))
お褒めの言葉ありがとうございます!足がどこから出ているのか、ぜひ教えてください。
 
bistreevseh:
この部分が問題の原因と思われます、よろしくお願いします。


思いつくままに

Work=FALSE の場合、EA は動作しません。

EAは、少なくとも1つの未決済注文が ある場合、動作しません、MAGICにチェックはありません。

返信はありますか?

 
MisterD:

なぜなら、グローバルレベルで 固定したい変数、つまりStart関数の前に ある変数がうまくいかないからです。例えばこんなのとか...。" FiksiruemUp = True; // fix " と "iksiruemUp = False; // reset"
タイムフレームの切り替えをしなければ、うまくいくはず なのですが・・・


私は変数でそうしました、グローバルレベルに置いたのです。

という点を考慮すれば

価格が上のラインより上にあるとき、FiksiruemUpにTrueを割り当て、価格が上のラインより下になり、まだ中央のラインより上にあるとき、FiksiruemUpに何が割り当てられるのか:TrueかFalseか?

この状況では、グローバル 変数でFalseが代入されているため、自動的にFalseが代入され、価格が上限線より上にあるときのみTrueが代入されるようです。

 
グローバル変数の 型は double であり、double のみである。グローバル変数にboolを入れるときは、この点に注意する必要があります。
 
Sepulca:


右から

Work=FALSE の場合、EA は動作しません。

EAは、少なくとも1つの保留中の注文がある場合は動作しません、MAGICのチェックはありません。

何か信号が出ますか?


アドバイザーは、すなわち、注文を開き、開いてTPまたはSLをトリガすることについての警告を与え、それはペンダントを置くことはありません動作します。
 
Sepulca:
グローバル変数の型は double であり、double のみである。グローバル変数にboolを入れるときは、この点に注意する必要があります。

とはいえ、どうあるべきか?
 
Sepulca:
グローバル変数の型は double であり、double のみである。グローバル変数にboolを入れるときは、この点に注意する必要があります。

ここではGlobalVariablesの話ではなく、グローバルレベルの変数の話をしているのですが......。この点を読み返してみると、違いがありますね...。
 
belck:


私は変数でそうしました、グローバルレベルに置いたのです。

という点を考慮すれば

価格が上のラインより上にあるとき、FiksiruemUpにTrueを割り当て、価格が上のラインより下になり、まだ中央のラインより上にあるとき、FiksiruemUpに何が割り当てられるのか:TrueかFalseか?

この状況では、グローバル変数でFalseが代入されているため、自動的にFalseが代入され、価格がトップラインより上にあるときのみTrueが代入されているように思えます。


初期状態では、グローバルレベルで何も指定されていない場合、Falseとなる...。変数にTrueを設定 した後、次の条件が成立するまでこの値を保持するif (Ask < LineS) FiksiruemUp = False; // reset....条件が満たされれば、その変数には新しい値Falseが代入され、その瞬間までそのままである - 「価格が上のラインより 上にあるとき、FiksiruemUpにTrueを代入する」といった具合に...。わかりやすく説明できたでしょうか...。:)
 
MisterD:

初期状態では、グローバルレベルで何も指定されていない場合、Falseとなる...。変数にTrueを設定 した後、次の条件が成立するまでこの値を保持するif (Ask < LineS) FiksiruemUp = False; // reset....条件が満たされれば、その変数には新しい値Falseが代入され、その瞬間までそのままである - 「価格が上のラインより上にあるとき、FiksiruemUpにTrueを代 入する」といった具合に...。わかりやすく説明できたでしょうか...。:)

ありがとうございました。
 

友よ、助けてくれ。選択した通貨ペアですべての注文を決済したいのですが、どうすればいいですか?以下は、私が書いたものです(EAのコードの一部)。

int Zakrit_vse()

{

Total=OrdersTotal()。

int Vsego

for(int i=1; i<=OrdersTotal(); i++) // 注文をループし、すべてクローズする。

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!=Symb)continue。

Ticket=OrderTicket()です。

Lot=OrderLots()です。

Price=OrderOpenPrice()です。

Vsego++です。

Tip=OrderType()。

アラート(Tip)。

if(Tip>1)

{

OrderDelete(Ticket)。

Prov_oshibok()です。

を続ける。

}

if(Tip==0)

{

OrderClose( Ticket,Lot,Bid,100);

Prov_oshibok()です。

を続ける。

}

if(Tip==1)

{

OrderClose( Ticket,Lot,Ask,100);

Prov_oshibok()です。

を続ける。

} //

}

}

Alert(Total," ",Vsego)。

int ret=MessageBox("操作に成功しました",

",mb_ok|mb_iconquestion|mb_topmost);

if(ret==IDOK) // 答えが "yes "の場合

{

Print("金額",Vsego, "のすべての注文が正常に終了しました。)

}

}

しかし、なぜか2回目の注文に限って締め切られる。注文が6件なら3件、8-4件なら4件、といった具合に。

それは何でしょう?どのようなエラーなのか、アドバイスをお願いします。