コーディングのヘルプ - ページ 657

 

親愛なる友人たちへ。

このeaはある時に異なったペアで働くか。

例:EURUSD + GBPUSDなどを作業しているいくつかの時間で。

ありがとうございます...

ファイル:
 
oguz:

親愛なる友人たちへ。

このeaはある時に異なったペアで働くか。

例:EURUSD + GBPUSDなどを作業しているいくつかの時間で。

ありがとうございます...

異なるマジックナンバーで異なるチャートに添付して、それは問題なく動作するはずです。そうでなければ、コードから判断して、あなたは大きなミックスアップを持つことができます
 
mladen:
違うチャートに違うマジックナンバーで貼り付ければ、問題なく動作するはずです。そうでなければ、コードから判断して、大混乱に陥る可能性があります。

詳細な情報をありがとうございました。

ところで、マジックナンバーに任意の数字を付けることは可能でしょうか?

デフォルトのマジックナンバーは "288 "です。

私はそれを添付することができます。398, 477, 501, 875などです。?

 

親愛なるムラデン。

私はどのように私は反対側の信号がコードに閉じる追加することができます知っていますか?

extern bool oppositeSignalclose=true;


私はそれを試してみましたが、それはすべてのバーで閉じています。


あなたは私が "OrderSended "のために変更する必要があるかを見るために私を助けることができる購入/販売後にすべての買いを閉じると、すべての販売を閉じます。

ありがとうございます。

  // New buy orders
  TotalBuyOrders = CountOfOrders(MagicNumberBuy);
  if(TotalBuyOrders > 0 && TotalBuyOrders < MaxTrades)
  {
    OrderSended = -1;
    LastSellPrice = FindLastOrderParameter(MagicNumberBuy, "price");

    if(LastSellPrice - Ask >= GetPipstepForStep(TotalBuyOrders + 1) * vPoint)
    {
      BLot   = GetLotForStep(MagicNumberBuy, TotalBuyOrders);
      BComment = StringSubstr(LastOrderComment, 0, StringFind(LastOrderComment, "|", 0)) + "|";
      OrderSended = SendMarketOrder(OP_BUY, BLot, 0, 0, MagicNumberBuy, BComment);
    }
  }
  // New sell orders
  TotalSellOrders = CountOfOrders(MagicNumberSell);
  if(TotalSellOrders > 0 && TotalSellOrders < MaxTrades)
  {
    OrderSended = -1;
    LastBuyPrice = FindLastOrderParameter(MagicNumberSell, "price");

    if (Bid - LastBuyPrice >= GetPipstepForStep(TotalSellOrders + 1) * vPoint) 
    {
      SLot   = GetLotForStep(MagicNumberSell, TotalSellOrders);
      SComment = StringSubstr(LastOrderComment, 0, StringFind(LastOrderComment, "|", 0)) + "|";
      OrderSended = SendMarketOrder(OP_SELL, SLot, 0, 0, MagicNumberSell, SComment);
    }
  }
 
stevenpun:

親愛なるムラデン。

私はどのように私は反対側の信号がコードに閉じる追加することができます知っていますか?


私はそれを試してみましたが、それはすべてのバーで閉じています。


あなたは私が "OrderSended "のために変更する必要があるかを見るために私を助けることができる購入/販売後にすべての買いを閉じると、すべての販売を閉じます。

ありがとうございます。

oppositeSignalcloseがtrueに設定されている場合、CountOfOrdersへの呼び出しを反転させる(つまり、このようなもの:

if (oppositeSignalclose)
      TotalBuyOrders = CountOfOrders(MagicNumberBuy);
else  TotalBuyOrders = CountOfOrders(MagicNumberSell);
そして、売り注文にも 同じことをする
 
mladen:

oppositeSignalcloseがtrueに設定されている場合、CountOfOrdersの呼び出しを反転させる(つまり、次のようなもの。

そして、あまりにも売り注文のために同じことを行う

これは反対売買なのですか?

私は、反対信号のときに現在の取引の終了をしたい。

私はネット上のコードのいずれかを見つけるが、それは各バーで閉じている。

あなたは、私は正しい方法または私が望む別のものを挿入したことを確認 するために私を助けることができる。

そして、ろうそくのトレーリングストップは、私はあなたが先週私に教えてくれたことをやったが、まだ働くことができない。

extern bool oppositeclose=true;
if((oppositeclose && sell))closebuy();
if((oppositeclose && buy))closesell();
//|---------close

void closebuy(){
   RefreshRates();
   if(OrdersTotal()>0){
      for(int i=OrdersTotal();i>=0;i--){
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUY){
            OrderClose(OrderTicket(),OrderLots(),Bid,slippage*mt);
         }
      }
   }
}

void closesell(){
   RefreshRates();
   if(OrdersTotal()>0){
      for(int i=OrdersTotal();i>=0;i--){
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELL){
            OrderClose(OrderTicket(),OrderLots(),Ask,slippage*mt);
         }
      }
   }
}
ファイル:
BbandTest.mq4  37 kb
 
stevenpun:

これは、逆取引ですか?

私は反対信号のときに、現在の取引の終了をしたい。

私はネット上のコードのいずれかを見つけるが、それは各バーに閉じます。

あなたは、私は正しい方法または私が望む別のものを挿入したことを確認するために私を助けることができる。

そして、ろうそくのトレーリングストップは、私はあなたが先週に教えてくれたことをやったが、まだ動作しません。

私が見る限り、それは正しいはずです。
 


インジケータを.csvにエクスポート するコードについて教えてください。

OHLCの後に複数のデータ列をエクスポートするには、何を修正する必要があります...?

//+------------------------------------------------------------------+

//|                                                  RSI_to_File.mq4 |

//|                      Copyright © 2007, MetaQuotes Software Corp. |

//|                                        [url]http://www.metaquotes.ru/[/url] |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2007, MetaQuotes Software Corp."

#property link      "http://www.metaquotes.ru/"


#property show_inputs

string SymbolsArray[13]={"","GBPUSD","EURUSD"};


//+------------------------------------------------------------------+

//| string SymbolByNumber                                   |

//+------------------------------------------------------------------+

string GetSymbolString(int Number)

  {

//----

   string res="";

   res=SymbolsArray[Number];   

//----

   return(res);

  }


//+------------------------------------------------------------------+

//| возвращает период                                                |

//+------------------------------------------------------------------+

int PeriodNumber(int number)

   {

   int per_min;

   switch (number)

      {

      default: per_min=PERIOD_M1;break;

      case 1: per_min=PERIOD_M5;break;

      case 2: per_min=PERIOD_M12;break;

      }

   return(per_min);   

   }


//+------------------------------------------------------------------+

//|   выводит в файл котировки + значения индикатора                 |

//+------------------------------------------------------------------+

void IFT_output(string SymbolName,int PeriodMinutes)

   {

   int size=iBars(SymbolName,PeriodMinutes);

//----

   if (size==0) return;

   int handle=FileOpen(SymbolName+PeriodMinutes+"_IFT.csv",FILE_WRITE|FILE_CSV);

   if (handle<0) return;

   FileWrite(handle,"Time seconds;Time;Open;Low;High;Close;Volume;IFT");

   for (int i=size-1;i>=0;i--)

      {

      FileWrite(handle,iTime(SymbolName,PeriodMinutes,i),TimeToStr(iTime(SymbolName,PeriodMinutes,i))

         ,iOpen(SymbolName,PeriodMinutes,i),iLow(SymbolName,PeriodMinutes,i),iHigh(SymbolName,PeriodMinutes,i)

         ,iClose(SymbolName,PeriodMinutes,i),iVolume(SymbolName,PeriodMinutes,i),iCustom(SymbolName,PeriodMinutes,"IFT",0,i));

      }

   FileClose(handle);      

//----

   return;

   }

//+------------------------------------------------------------------+

//| script program start function                                    |

//+------------------------------------------------------------------+

int start()

  {

  int SymbolCounter,PeriodCounter; 

//----

   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)

      {

      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)

         {

         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");

         IFT_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));

         }

      }

   

//----

   return(0);

  }

//+------------------------------------------------------------------+ 

 
kostumer27:

インジケーターを.csvにエクスポートするコードを教えてください。
それはちょうど1つの指標を書くことができます...

OHLCの後に複数のデータ列をエクスポートするには、何を修正する必要があります...?

//+------------------------------------------------------------------+

//|                                                  RSI_to_File.mq4 |

//|                      Copyright © 2007, MetaQuotes Software Corp. |

//|                                        [url]http://www.metaquotes.ru/[/url] |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2007, MetaQuotes Software Corp."

#property link      "http://www.metaquotes.ru/"


#property show_inputs

string SymbolsArray[13]={"","GBPUSD","EURUSD"};


//+------------------------------------------------------------------+

//| string SymbolByNumber                                   |

//+------------------------------------------------------------------+

string GetSymbolString(int Number)

  {

//----

   string res="";

   res=SymbolsArray[Number];   

//----

   return(res);

  }


//+------------------------------------------------------------------+

//| возвращает период                                                |

//+------------------------------------------------------------------+

int PeriodNumber(int number)

   {

   int per_min;

   switch (number)

      {

      default: per_min=PERIOD_M1;break;

      case 1: per_min=PERIOD_M5;break;

      case 2: per_min=PERIOD_M12;break;

      }

   return(per_min);   

   }


//+------------------------------------------------------------------+

//|   выводит в файл котировки + значения индикатора                 |

//+------------------------------------------------------------------+

void IFT_output(string SymbolName,int PeriodMinutes)

   {

   int size=iBars(SymbolName,PeriodMinutes);

//----

   if (size==0) return;

   int handle=FileOpen(SymbolName+PeriodMinutes+"_IFT.csv",FILE_WRITE|FILE_CSV);

   if (handle<0) return;

   FileWrite(handle,"Time seconds;Time;Open;Low;High;Close;Volume;IFT");

   for (int i=size-1;i>=0;i--)

      {

      FileWrite(handle,iTime(SymbolName,PeriodMinutes,i),TimeToStr(iTime(SymbolName,PeriodMinutes,i))

         ,iOpen(SymbolName,PeriodMinutes,i),iLow(SymbolName,PeriodMinutes,i),iHigh(SymbolName,PeriodMinutes,i)

         ,iClose(SymbolName,PeriodMinutes,i),iVolume(SymbolName,PeriodMinutes,i),iCustom(SymbolName,PeriodMinutes,"IFT",0,i));

      }

   FileClose(handle);      

//----

   return;

   }

//+------------------------------------------------------------------+

//| script program start function                                    |

//+------------------------------------------------------------------+

int start()

  {

  int SymbolCounter,PeriodCounter; 

//----

   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)

      {

      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)

         {

         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");

         IFT_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));

         }

      }

   

//----

   return(0);

  }

//+------------------------------------------------------------------+ 

FileWrite()関数の パラメータにエクスポートしたいデータを追加するだけです。
 
mladen:
私が見る限り、それは正しいはずです。

私は逆のクローズ機能を 解決しました:>。

しかし、あなたが自由なときあなたはキャンドルトレーリングストップを確認するために助けることができる、私はまだそれを解決することはできません:(。