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

 
Link_x:
テクニカル指標に見られる機能を理解していないことだと思います。もし私がそれを理解していないのであれば、あなたから私に渡されたリンクの「向こう側」で見つけた情報を使って、インターネット・ネットワークを介してタイプし、送信することによって、私はそれを理解すべきなのです。
"Learn, learn and learn again!" - このフレーズが大好きです。)))

例えばMetaEditorでCCIを開き、わからないことはすべて参考書(不明な関数や式をクリックしてF1キーを押す)にしてください。そうすれば、学習はもっと楽しくなるはずです。
 

extern int MartinStep = 2;
extern double LOT = 0.01;


double GetLot(){

int time = 0;double profit = 0; double lots = 0; double Lot = 0;
for(int i = OrdersHistoryTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic){
if(time<OrderCloseTime()){
time=OrderCloseTime();
profit=OrderProfit();
lots = OrderLots();
}
}
}
}


if(profit == 0 &&time == 0)
{
Lot = LOT;
}
if(profit >= 0)
{
Lot = LOT;
}
if(profit < 0 )
{
Lot = NormalizeDouble (lots*MartinStep,2);
}

return(Lot);
}
機能の誤りの修正にご協力ください。EAはいくつかの注文を正しく開き、その後ログに「無効なロット量」というエラーが表示されます。何が悪いのか理解できない。
 
Trader7777:


lots = OrderLots();

Lot = NormalizeDouble (lots*MartinStep,2);

機能の誤りの修正にご協力ください。EAはいくつかの注文を正しく開き、その後ログに「無効なロット量」というエラーが表示されます。何が悪いのか理解できない。

私は演算子lots = OrderLots();に到達したことがなく、lotsはまだ=0のままであるかのいずれか。または、ロット*MartinStepが最大許容ロットサイズを超えました。
 

私はそれを考え出した、エラーはここにある

if(profit >= 0)


0で決済された注文の後、EAが何をすべきか分からなかったので、等号を付けるべきでした)
 

みなさん、こんにちは。最後にEA再初期化を実施する方法を教えてください。さて、init()では、あるタイミングで繰り返される必要があるアクションがいくつかあります。start()で書き換えたくないんです。それよりも、EAを再起動する理論的な可能性に興味があります。よろしくお願いします。

 
Pyro:

みなさん、こんにちは。最後にEA再初期化を実施する方法を教えてください。さて、init()では、あるタイミングで繰り返される必要があるアクションがいくつかあります。start()で書き換えたくないんです。それよりも、EAを再起動する理論的な可能性に興味があります。よろしくお願いします。

init()をあるタイミングで呼び出してみましたか?
 
そうですね、思いつきませんでした:( ありがとうございます!!)
 
EAを再起動する(チャートから外して再度つける)と、フラグや静的変数が リセットされるのか、EAのメモリに残るのか教えてください。
 
Forexman77:
EAを再起動する(チャートから外して再度つける)と、フラグや静的変数がリセットされるのか、EAのメモリに残るのか教えてください。

初期化中は、グローバル変数以外はすべてリセットされます。
 
Pyro:

初期化時にグローバル変数以外は全てリセットされます。
そしてここで、GVはEA変数ではなく、ターミナル変数であることを明確にしておく必要がある。