Alert(Sborinfo(Magic)); // Closse(Magic); if(Sborinfo(Magic)==0) { Print("количество ордеров ",Sborinfo(Magic)); MassivPrice(step); if(OrdersTotal()<2)// без таких условий tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,0,0,Green); if(tiket>=0) LastPrice=Ask; }
MassivPrice(step); if(OrdersTotal()<2)// без таких условий tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,0,0,Red); if(tiket>=0) LastPrice=Bid;
} //+------------------------------------------------------------------+ int Sborinfo(int magic) { kol=0; for(int i=0; i<OrdersTotal(); i++) { Print(" чему ровно кол " , kol ); if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==magic) { Print(" ордера после " , kol );
MT4 Batter volumもテスターでは不十分です。
なぜ、毎回のクリックで 開くのか、教えてください。
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
なぜ、毎回のクリックで 開くのか、教えてください。
なぜなら、私はいつもこのモードでテストしているからです
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
なぜ、毎回のクリックで 開くのか、教えてください。
なぜなら、そのようにコードが書かれているからです。
簡単に言うと、「注文がなければ買い、1ティックごとに売りを開く」というアルゴリズムです。
なぜなら、そのようにコードが書かれているからです。
簡単に言うと、「注文がなければ買い、1ティックごとに売りを出す」というアルゴリズムです。
// Closse(Magic);
if(Sborinfo(Magic)==0)
{
Print("количество ордеров ",Sborinfo(Magic));
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,0,0,Green);
if(tiket>=0)
LastPrice=Ask;
}
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
kol=0;
for(int i=0; i<OrdersTotal(); i++)
{
Print(" чему ровно кол " , kol );
if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==magic)
{
Print(" ордера после " , kol );
// kol++;
}
}
return(kol);
}
追加条件なしで動作するようにコードを変更するにはどうすればよいですか?
でも、買うのも売るのも必要で、その数を制限するなら無理です。ただ、OrdersTotal() は見ずに、どれだけ買ってどれだけ売ったかをカウント することになります。
また、OrdersTotal() を使用 する場合、なぜこの「if(Sborinfo(Magic)==0)」が 必要なのでしょうか。
でも、買うのも売るのも必要で、その数を制限するなら無理です。ただ、OrdersTotal() は見ずに、どれだけ買ってどれだけ売ったかをカウント することになります。
また、OrdersTotal() を使用 する場合、なぜ「if(Sborinfo(Magic)==0)」が 必要なのでしょうか?
CloseFirst(Magic);
int b=0;
int s=0;
for(int i=0; i<=OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol )
{
if(OrderType()==OP_BUY)
b++;
if(OrderType()==OP_SELL)
s++;
}
if(b==0)
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,Magic,0,Green);
if(s==0)
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,Magic,0,Red);
}
同志よ!質問があります。
Expert Advisorは、前日の極値に基づいて、その日の初めから00:00に保留中の注文をオープンします。
平日は問題なく動くのですが、月曜日のオープニングで、保留中の注文が金曜日の極値ではなく、なぜか木曜日の水準 で発注されます。どうして?
currtime=TimeToStr(TimeCurrent(),TIME_MINUTES);
Format=Digits();
DH=NormalizeDouble(iHigh(NULL,PERIOD_D1,1),Format) ;
DL=NormalizeDouble(iLow(NULL,PERIOD_D1,1),Format);
if (currtime==OpenTime)
{
отложки
}
こんな感じか?もっとシンプルな方法はないのでしょうか?
ええ、そんなもんです。どれだけシンプルになったか?
ええ、そんなもんです。もっと簡単にできないか?