どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 802

 
pako:

チャートファースト

クライアント端末の先頭チャートの識別子を返します。

一番左のグラフと理解しています

残念ながらそうではなく、簡単に確認することができます。

1. ターミナルで2-3通貨ペアを開く

2.コードを実行して確認する。

   long ch=ChartFirst();
   Print("Первый ID терминала: ",ch, ", символ: ",ChartSymbol(ch),", таймфрейм: ",ChartPeriod(ch));
   for(int i=1;i<=100;i++) {
      ch=ChartNext(ch);
      if(ch<0)break;
      Print(i," chart ID for ",ChartSymbol(ch),ChartPeriod(ch),": ",ch);
  }
 
gyfto:
そうではないと漠然と考えています。明日、これから仕事なので、また書き込みます。
サブウィンドウのバーをトレンドにすることで、より効果的になります。しかし、何らかの方法でスケール値を傍受する必要があります。どうやって?
 
マイナスゾーンで取引している場合、オープンオーダーのTakeProfitをマイナスゾーンに修正することが可能かどうか、ご存知の方いらっしゃいますか?
 
woin2110:
どなたかご存知の方、マイナスゾーンで取引している場合、オープンオーダーのTakeProfitをマイナスゾーンに修正することは可能でしょうか?
もちろんです。
 
プログラミングの経験はありますが、MQL4での プログラミングはまだしたことがありません。
 

回答を待っている間に、いろいろ調べて作ってみました。 正しく表示されるでしょうか? 日曜日なので、夜中まで待っても正しく書けたかどうかわからないと困るのですが。


  if(Count ==0)
        symbol = Symbol();
        
   double bid   =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
   double point =MarketInfo(symbol,MODE_POINT);//Запрос Point  
   double  value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
   double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
   double digits =   MarketInfo(symbol,MODE_DIGITS);


   
   if( bid<= stoploss1||step1 == 0)
   {
      step1++;
      stoplevel= NormalizeDouble(stoplevel*point,digits);
      stoploss1 = ask-stoplevel;
      takeprofit1 = ask+stoplevel;

 
      double profit =0.5;
      double takeprofit2= profit * point * value * lot1 + bid;
      takeprofit2 = NormalizeDouble(takeprofit2,digits);
      if (takeprofit2 > takeprofit1)
         takeprofit1 = takeprofit2;


 
pycha:

回答を待っている間に、検索して見つけたので作ってみました。 正しく表示されるでしょうか? 日曜日なので、夜中まで待っても正しく書けたかどうかわからないのが嫌なのですが。


  if(Count ==0)
        symbol = Symbol();
        
   double bid   =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
   double point =MarketInfo(symbol,MODE_POINT);//Запрос Point  
   double  value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
   double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
   double digits =   MarketInfo(symbol,MODE_DIGITS);


   
   if( bid<= stoploss1||step1 == 0)
   {
      step1++;
      stoplevel= NormalizeDouble(stoplevel*point,digits);
      stoploss1 = ask-stoplevel;
      takeprofit1 = ask+stoplevel;

 
      double profit =0.5;
      double takeprofit2= profit * point * value * lot1 + bid;
      takeprofit2 = NormalizeDouble(takeprofit2,digits);
      if (takeprofit2 > takeprofit1)
         takeprofit1 = takeprofit2;



もっと簡単じゃないですか?

 if(OrderProfit() > 0.5) OrderClose();

.

 
注文を出す前に利益を計算し、注文作成時にすぐに設定できるようにしたいのですが。
 
このプログラムは、取引だけでなく、履歴の分析にも使用します。 必要なパラメータの注文が、ある期間にどれだけ開かれていたかを計算する必要があります。
 
pycha:
このプログラムは、取引だけでなく、履歴分析にも使用する予定です。 必要なパラメータの注文が、ある期間にどれだけオープンされていたかを計算する必要があります。

https://www.mql5.com/ru/forum/351

.