double CalculateLots(){。 double Res=0.01。 bool bProfit=true。 int PrevTime=-1; double tmpLots; for (int i=0;i<OrdersHistoryTotal();i++){ (int i=0;i<OrdersHistoryTotal();i++) if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue; if (OrderSymbol()!=Symbol()) continue; if (OrderCloseTime()<PrevTime) continue; PrevTime=OrderCloseTime()。 if (OrderProfit()>0){bProfit=true;orderProf=0;}.if (OrderProfit()<0){bProfit=false;orderProf++;}. tmpLots=OrderLots()です。 }
int pauseT=0, //
pause01=0, // время первой паузы
pause02=0; // время второй паузыif (ObjectFind("signalG")==1) // проверка наличия
pause01=TimeLocal()+5; //
{while (TimeLocal()<pause01) // цикл сравнения
{pauseT=TimeLocal()+1;} // чем бы его занять?????ObjectDelete("signalG");}
if (ObjectFind("signalG")==-1) // повтор всего для 2-ой паузы
pause02=TimeLocal()+15;
while (TimeLocal()<pause02)
{pauseT=TimeLocal()+1;}
// --------------- Начертим восходящую трендовую линию (DN - экстремумы) --------------------- if (WinID>0) // Если окно индикатора есть на чарте (оно может иметь любой номер, кроме 0)
{
if (ObjectFind("Trend_GLine_DN")<0) // Если объект ещё не построенObjectCreate("Trend_GLine_DN",OBJ_TREND,WinID,LowestTDN,LowestPeakDN,HighestTDN,HighestPeakDN);
ObjectSet("Trend_GLine_DN",OBJPROP_COLOR,Lime);
ObjectSet("Trend_GLine_DN",OBJPROP_TIME1,LowestTDN);
ObjectSet("Trend_GLine_DN",OBJPROP_PRICE1,LowestPeakDN);
ObjectSet("Trend_GLine_DN",OBJPROP_TIME2,HighestTDN);
ObjectSet("Trend_GLine_DN",OBJPROP_PRICE2,HighestPeakDN);
}
端末を再起動してみてください。
:)ありがとうございます。端末を再起動してもダメでしたが、自分の脳を再起動したら大丈夫でした!(笑)。私のEAでは、取引ブロック、条件ブロック、変数ブロック、追加機能ブロックなど、さまざまなブロックを使っていますが、これらのブロックは、インクルード・システムでつながっています。そこで、取引条件のブロック「Criteria」を変更していたのですが、「Criteria01」が必要でした。それがコツなんです...。:)
ZZZ・・・「ドラバシキ」を信じ始めていたのに・・・。:)少し寝ればよかった...。
助けてください!!!次のコードでは、注文が利益を生んでいるかどうかをチェックします。そうでない場合は、金額を数えます!
最初の取引で利益が出なかった場合、カウントループが開始され、永遠に追加されます。
でも、こんな裏技があるんです。 取引で利益が出た場合、それ以降の負け注文は全て普通にカウントされる・・・。
double orderProf;// 負けトレードの数のカウンター
double CalculateLots(){。
double Res=0.01。
bool bProfit=true。
int PrevTime=-1;
double tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){ (int i=0;i<OrdersHistoryTotal();i++)
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderCloseTime()<PrevTime) continue;
PrevTime=OrderCloseTime()。
if (OrderProfit()>0){bProfit=true;orderProf=0;}.if (OrderProfit()<0){bProfit=false;orderProf++;}.
tmpLots=OrderLots()です。
}
return(Res)です。
}
イゴール・キムのリンクはあげたけど...。そこには、あなたのニーズに合ったものがたくさん...。
DAK !私のものと同じです・・・。
PROBLEMは、初回は正常にカウントされないが、その後は正常にカウントされる...というもの。)))
助ける
難問はこれだ。
コードの一番最後にあるインジケータは、オブジェクトを作成し、別のインジケータのフラグとして機能します。
オブジェクトを作成した 後、インジケータを5秒間スリープさせ、その後オブジェクトを削除して60秒間スリープさせ、その後最後の再試行に入り、新しいティックで再度やり直す必要があります。
こんなことに挑戦しています
時間切れに なりそうなところまでハングアップする。
何かコツがあるのでしょうか?
難問はこれだ。
コードの一番最後にあるインジケータは、オブジェクトを作成し、別のインジケータのフラグとして機能します。
オブジェクトを作成した後、インジケータを5秒間スリープさせ、その後オブジェクトを削除して60秒間スリープさせ、その後最後の再試行に入り、新しいティックで初めからやり直す必要があるのですが、どうすればよいでしょうか?
こんなことに挑戦しています
時間切れに なりそうなところまでハングアップする。
何かコツがあるのでしょうか?
スレッジハンマー...:):)
タイマーとして?無気力睡眠に入ります :)
なるほど、話がそれてしまいましたね。もっと具体的に教えてほしいです。 一人は起こし、一人は寝かせ、一人は釘を刺す...。
給餌についてはどうでしょうか?:)
more details on
インジケーターに間を持たせる。睡眠と同じようなものです。
Sleepの 何が問題なのか?
そしてまた、-オブジェクトの存在を確認するとき
インジケーターのサブウィンドウ番号と比較します。2人いたらどうする?目的の指標のサブウィンドウ番号を代入した変数で比較するのがよいでしょう。
。
私はこうして検索しています。
そして、すでにサブウィンドウの存在を確認しています。
Sleepの嫌いなところは?
2つ持っている場合は?
それはないでしょう。不要なウィンドウを取り除くだけ。
後でチェックが必要ですが、できればEAに :) ありがとうございます、メモしておきます。