[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 284

 
 
waitra >> :

int NumberOfPos_HISTORY

試してみたところ、現在のオープンポジションの数だけカウントされ、履歴はカウントされません。注文をクローズすると値がゼロに戻ります。何か他に変更する必要があるのでしょうか?

ここで私はそれを実行しました。I.Kimの別機能をパクって、ちょっと変えてみました。

まるで時計のように動く。

START機能で制御することも可能です。

Comment ("ордера на истории= ",NumberOfPos_HISTORY_2(NULL,-1,Magic));

そして、この機能そのものを紹介します。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru            |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                  |
//|  Описание : Возвращает кол-во ордеровиз из  истории счета  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                           |
//|    sy - наименование инструмента   (""   - любой символ, |
//|                                     NULL - текущий символ)        |
//|    op - операция                   (-1   - любая позиция)       |
//|    mn - MagicNumber                (-1   - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfPos_HISTORY_2 (string sy="", int op=-1, int mn=-1) {
     int      i, k=OrdersHistoryTotal(), kp=0;
  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {               
                if (OrderProfit()<0 || OrderProfit()>=0) kp++;           
            }  } } } }  }  return( kp);}


 

みなさん、こんにちは!!!

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

//---- input parameters
extern int       MAFP=21;
extern int       MASP=55;
extern double    Lots=0.1;
extern int       StopLoss=60;
extern int       TakeProfit=30;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| 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); 
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения средних на 0-ом и 1-ом барах
    double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0);
    double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1);
    double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0);
    double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1);
    
    // открытие позиции Buy покупка
    if( MAF_1 < MAS_1 && MAF_0 > MAS_0)
     if( CheckOrders(OP_SELL))
      {
       if( StopLoss <= StopLevel+ Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    
    // Открытие позиции Sell продажа  
    if( MAF_1 > MAS_1 && MAF_0 < MAS_0)
     if( CheckOrders(OP_BUY))
      {
       if( StopLoss <= StopLevel+ Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//----
   return(0);
  }//+------------------------------------------------------------------+


脳が蒸れて、蒸れて、電源が切れる......。

おそらく、酔っぱらいに溝を掘らせる方法や、クズによるゴミ回収を組織する方法を考える方が簡単だろう......。

このスレッドでは、最初のどこかで私と同じような問題が提起されていました。読む、読む...。未だに理解できないし、会話も国旗の話だったし...。

発想はシンプルです。SimpleMAですが、少し修正されていますが、問題ないです。

EA(買い)が買う場合、TPで注文がトリガーされ、次の注文は売りの条件、すなわち、売りのためのMACC交差に置かれる場合、誰のフィが追加されるべきですか?

さらなる条件の有無にかかわらず。

 

おそらく、https://www.mql5.com/ru/forum/107476/page21 という関数が役に立つでしょう。

関数 isCloseLastPosByTake()。
この関数は、Take による最後のポジションのクローズフラグを返します。

フラグアップ - True - TakeProfitが発動された。

フラグを下げた - False - ポジションは別の理由で閉鎖されました。


関数そのものは、コードの一番最後に配置します。売りの条件に追加する。

if( isCloseLastPosByTake( NULL, OP_BUY, MagicNumber) ==true) {//продаем



 
xmurik писал(а)>>
EUR/USDのペアで。
//+------------------------------------------------------------------+
//|                                                       скрипт.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int kolvo_barov = 1000;
   double start_price = iOpen(Symbol(),0, kolvo_barov);
   int handle;
   handle=FileOpen("my_data.csv", FILE_WRITE|FILE_CSV, '\t');
   if( handle>0) {
      while( kolvo_barov>1) {
         if (iHigh(Symbol(),0, kolvo_barov)> start_price + 0.01) {
            FileWrite( handle,"+100");
            start_price = start_price + 0.01;
         }      
         if (iHigh(Symbol(),0, kolvo_barov)< start_price + 0.01) {
            FileWrite( handle,"-100");
            start_price = start_price - 0.01;
         }      kolvo_barov--;
      }
      FileClose( handle);
   }
   return(0);
}
//+------------------------------------------------------------------+
チェックしてみてください。ただ、私はそれを確認しなかった。エラーが発生する可能性があります。
 

いい人たちだ。MomentumがMomentumでない理由が(写真参照)わからない :).


モメンタム

なぜゼロを超えるのか、説明していただけますか?
 
rid писал(а)>>

こんな感じです。I.キムの別の機能をパクって、ちょっと変えてみたんです。

まるで時計のように動く。

START機能を入れて制御することができます。


そして、その機能そのものがこちら。

はい、効きます!(笑ありがとうございまし ありがとうございました。>> 頑張ってください

 
warlock писал(а)>>

助けて!!エキスパートは新しいローソクの始まりで取引を開始することになっていますが、ローソクの始まりで開くだけでなく、「左」のものも無秩序に開いてしまいます...。

さらに、HighとLowを割り当てた後、買わなくなった...が、売りだけになってしまった...。

そして、OrderSend()をじっくりと確認するのが大変でした。一方はミスで失敗し、もう一方は失敗する。

if ( AllowBUY) 
   tick=OrderSend(Symbol(),OP_SELLSTOP, Lot, price1,3,( price1- SL*Point)* loss,( price1- TP*Point)* profit,"scriptSELLstop",CLR_NONE, expiration);
if ( AllowSELL) 
   tick=OrderSend(Symbol(),OP_SELLSTOP, Lot, price2,3,( price2+ SL*Point)* loss,( price2- TP*Point)* profit,"scriptSELLstop",CLR_NONE, expiration);
 
warlock >> :

助けてください!!エキスパートは新しいローソクの始まりで取引を開くことになっていますが、ローソクの始まりで開くだけでなく、「左」のものも無秩序に開いてしまいます...。

さらに、HighとLowを指定した後、買わなくなった...売りだけだ...。

ありがとうございます...1時間ほど座っていた。何が起こっているのか理解できなかった...時には、間違いに目を開かせてくれる人が必要だ...。

 
こんにちは、人々は、誰かがAC指標アドバイザーを書く のを助けることができますか?