for (int i=0; i<OrdersHistoryTotal(); i++)// すべてのオーダーについて if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
そして、マジックナンバーでフィルタリングします。
if (OrderMagicNumber()==12)
フィルタは3つのポジションを満たしますが、必要なのは最後のクローズドな1つだけです。
最後の1枚を残す方法がわからないのですか?
感謝
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает номер бара закрытия последней позиции или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| op - операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
datetime t;int i, k=OrdersHistoryTotal();
if (sy=="" || sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return(iBarShift(sy, tf, t, True));
}
if(Time[0]=='время_нужного_бара') //чтоб не засорять логи берем на конкретном баре - посмотрите на картинке, где именно ошибка
{
Print("переменная=", значение);
}
問題解決に役立つ
閉じたものをすべて試聴する
for (int i=0; i<OrdersHistoryTotal(); i++)// すべてのオーダーについて
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
そして、マジックナンバーでフィルタリングします。
if (OrderMagicNumber()==12)
フィルタは3つのポジションを満たしますが、必要なのは最後のクローズドな1つだけです。
最後の1枚を残す方法がわからないのですか?
感謝
今回も非常にニーズが高い。
問題を解決するのを手伝ってください。
すべてのクローズド ポジションで選択しています。
for (int i=0; i<OrdersHistoryTotal(); i++)// 端末の全オーダーについて
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
その後、マジックナンバーでフィルタリング
if (OrderMagicNumber()==12)
フィルタは3つのポジションにマッチしますが、最後に閉じたポジションだけが必要です。
最後の1枚だけを残す方法がわからない?
感謝
助けてください!古い注文を閉じた後、すぐにTpまたはSLの価格で注文を出す必要があります。
#property copyright"著作権 © 2010, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"
#property show_confirm
extern int MaxRisk=3;
extern bool Buy=false; //買い注文を出す場合
extern bool Sell=true; //売り注文を出す。
extern inttern MagicNumber=7749。
extern TP=210;
extern inttern SL=420。
{
double point=MarketInfo(Symbol(),MODE_POINT);//Request Point
double Free=AccountFreeMargin()。
double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Step =MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot =MathFloor(Free*MaxRisk/100/One_Lot/Step)*Step;
int pos,total=OrdersTotal();
//----
if(Buy==true && OrdersTotal() <=1)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Ask+TP*Point, "777"+Symbol(), MagicNumber, 0, DarkGreen)。
Buy=false。
}
if(Sell==true && OrdersTotal() <=1)
{
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+SL*Point,Bid-TP*Point, "4949"+ Symbol(), MagicNumber, 0, DarkGreen)を送信。
Sell=falseとした。
}
for (pos=0; pos<total; pos++)
if(OrderSelect(pos,SELECT_BY_POS )==true)
if(OrdersTotal()==OP_BUY)
if(PRICE_CLOSE==OrderTakeProfit()の場合) Buy=true;
if(PRICE_CLOSE==OrderStopLoss()の場合。) Sell=trueとした。
}
}
if(OrderSelect(pos,SELECT_BY_POS )==true)
if (注文合計()==OP_SELL)
{
if(PRICE_CLOSE==OrderStopLoss()の場合) Buy=true;
if(PRICE_CLOSE==OrderTakeProfit()の場合) Sell=trueとした。
}
} }
//----
return(0)です。
}
//+------------------------------------------------------------------+
みんな、ここに質問がある、EAが注文を開こうとするが、価格が変化してエラー間違った価格を表示する、どのように私はそれを回避することができますので、それは購入するまで購入しようとする?
昔はそうだったんですけどね。
5の記号があるので30を追加しましたが、使い物になりません。
今回も非常にニーズが高い。
問題を解決するのを手伝ってください。
閉店した商品を全て試食しています。
最後から始めて、最初にマッチしたものが1つ。
for (int i=OrdersHistoryTotal()-1;i>=0; i--)//
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)
もうひとつ、ストップと新規ポジションの条件は同じなのに、ポジションのクローズだけで、リバーサルがない箇所があるのが気になります。
Expert Advisor の買い条件と売り条件が相互に排他的でないため、このような状況が起こり得ます。に従って、テスターで必要な変数の値をトレースしてみてください。
みんな、ここに質問がある、EAが注文を開こうとするが、価格が変化してエラー間違った価格を表示する、どのように私はそれを回避することができますので、それは購入するまで購入しようとする?
昔はそうだったんですけどね。
5の記号があるので30を追加しましたが、使い物になりません。
このような状況は、EA の買いと売りの開始条件が相互に排他的でないために発生する可能性があり、詳細に調査する必要があります。の線に沿って、テスターで必要な変数の値をトレースしてみてください。
質問に関連するものには下線が引かれています。