[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 162

 
igrok2008:
まさにAlpari on demo account and tested NOT traded!!! terminal mt4 build 229...... tip!!!!
アルパリアカウントを持っていますが、ストップロスやテイクオーバーの取引はせず、価格だけを見て、注文とポジションを置いた後にストップロスを置いています。
 
todem:
NormalizeDoubleでストップロス、テイクプロフィット、オープンプライスを正規化する

正規化しなければ、IMHOは130番目のエラーが発生しますが、はい、それも必要です。
 
ユーロとポンドの両方を試したのですが、全く取引されません!!誰か教えてください。
 
igrok2008:
ユーロとポンドの両方を試しましたが、何も出ませんでした。 どなたかアドバイスをお願いします。
私の提案は、SLとTPを外すことです。
 
igrok2008:
通貨がおかしいのかと思い、ユーロとポンドの両方を試してみましたが、何も出ません!!どなたか教えてください。
ticket1=OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber);
if (ticket1!=0) {return(0);}
else Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
     
とか、一度にたくさん欲しいからこの方法にしてくれとか。
 
todem:
私もアルパリを持っていますが、ストップロスやテイクオーバーなしで、価格だけで取引し、注文とポジションを置いた後、次にストップロスを置いています。

EAのストップとトロールの両方を0に設定しましたが、まだ取引されません。EAのコピーを作成し、コードからstopを削除しましたが、trallはまだ取引されません。

ストップ&トロールのないExpert Advisorのコード

//+------------------------------------------------------------------+
//|                                                eSvechi+MA_v1.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


//---- input parameters
extern int       MA=13;
extern double    Lots=0.1;
extern int       StopLoss=100;
extern int       TakeProfit=100;
extern int       MagicNumber=501;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol() && OrderCloseTime() >= Time[0] && OrderType() == Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

        // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

        //Рассчитываем значения средних на 0-ом и 1-м баре
    double MA_0 =iMA(NULL, 0, MA,0,1,1,0);    
    double MA_1 =iMA(NULL, 0, MA,0,1,1,1);
    
 //-------------открытие позиции Buy покупка-----------------
 //сравниваем на 1-м баре цену закр. и откр. между собой и с МА, на 0-м баре откр. меньше МА закр. больше МА
    if(
       (Open[0+1]<Close[0+1])&& 
       (Close[0+1]<MA_1)&&
       (Open[0]<MA_0)&&
       (Close[0]>MA_0)
      )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    //-------------Открытие позиции Sell продажа----------------   
    if(
       (Open[0+1]>Close[0+1])&& 
       (Close[0+1]>MA_1)&&
       (Open[0]>MA_0)&&
       (Close[0]<MA_0)
      )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+
 
int OrderOp(int ord,double lot) // открытие ордера бай 
{
   double TP,SL,ticket;
   string ccm="";
   int ticket1;
   j2=autorazmer();
   
   if (ord==OP_BUY) {
   l=NormalizeDouble(MarketInfo(Symbol(), MODE_ASK), MarketInfo(Symbol(), MODE_DIGITS));
   
      ccm="ZZ:"+Period()+" -> BUY";
      ticket1=OrderSend(Symbol(),ord,lot,l,3,0,0,ccm,MG,0,White);
      OrderPrint();
   }
   if (ord==OP_SELL) {
   h=NormalizeDouble(MarketInfo(Symbol(), MODE_BID), MarketInfo(Symbol(), MODE_DIGITS));
   
      ccm="ZZ:"+Period()+" -> sell";
      ticket1=OrderSend(Symbol(),ord,lot,h,3,0,0,ccm,MG,0,White);
      OrderPrint();
   }
   if (ord==OP_BUYSTOP) {
   l=NormalizeDouble(MarketInfo(Symbol(), MODE_ASK), MarketInfo(Symbol(), MODE_DIGITS));
   lo=NormalizeDouble(l+j2*Point,Digits);
      ccm="ZZ:"+Period()+" -> BUYstop";
      ticket1=OrderSend(Symbol(),ord,lot,lo,3,0,0,ccm,MG,0,White);
      OrderPrint();
   }
   if (ord==OP_SELLSTOP) {
   h=NormalizeDouble(MarketInfo(Symbol(), MODE_BID), MarketInfo(Symbol(), MODE_DIGITS));
   ho=NormalizeDouble(h-j2*Point,Digits);
      ccm="ZZ:"+Period()+" -> sellstop";
      ticket1=OrderSend(Symbol(),ord,lot,ho,3,0,0,ccm,MG,0,White);
      OrderPrint();
   }
   return(ticket1);
}
アルパリの注文開始機能を利用することができます。
 
どこでもエラー131
 

素朴な疑問です。できる人を教えてください :)

1つのツールに2つのEAを搭載する必要がある場合。

ターミナルで2つのウィンドウを開き、それぞれにボットをバインドするのですか?

例えば、1つの成行注文だけで動作する2番目のボットは、1番目のボットが開いた取引が保留されている場合、取引を開くことができないことが判明しましたか?

それとも、2番目のボットの決済条件を満たせば、1番目のボットの取引を決済することができるのでしょうか?

 

皆さん、こんにちは...。

MetaTrader4の履歴ファイルへのパスを構築する方法を教えていただけませんか?c:\program files, METARATOR 4 INDEXHISTORY APEX CLASSICみたいな?

ターミナルを読み込むフォルダのパスを返す魔法の文字列TerminalPath()があるのは知っています。それは理解できる、㊙があり、そして謎の金持ち事務所の名前があり、私の費用で生きている。どうすればいいのか?