[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 294

 
forexnew:
私はDLLを扱ったことがありません。たまたまコードが用意されていないのでは?


とはいえ、特に難しいことはなく、あるファイルを別のファイルに置き換えるだけの簡単な作業です。

DLLを作成するためには、MQL4以外の言語でプログラミングを行う必要があります。C/C++で書いている人もいます。Delphiで書きました。結局のところ、自分のニーズ次第なのです。

DLLの準備ができたら、Expert Advisorだけでなく、MQL4の別のライブラリにも接続されます。その後、DLLに記述されている関数を呼び出すことができます。

 
drknn:


このような機能はやったことがないのですが、見てみると特に複雑なことはなく、あるファイルを別のファイルに置き換えるだけの間抜けなものなのですが。

スクリプトからログを読み込むために、ファイルシステムにリンクを作ることができます。
 

親愛なる、Igor Kimは最後の オープンポジションの 開始価格を返す関数を持っていますか?https://forum.mql4.com/ru/38949/page5#434239。

難しくなければ、最初の オープンポジションの始値を返す関数を書いてください。行で十分だと思いました。

t<OrderOpenTime()
<」を「>」に置き換えるが、結果的にうまくいかない場合。
 

こんにちは。

可能であれば、この機能を実現する方法をアドバイスしてください。

それに応じてオーダー1、TPが設定される。注文と同時に保留注文 2が発注される。注文1のTPがトリガーされたときに、保留を削除する方法。

 
strongest:

こんにちは。

可能であれば、この機能を実現する方法をアドバイスしてください。

それに応じてオーダー1、TPが設定される。注文と同時に保留注文2が発注される。注文1のTPがトリガーされたときに、保留を削除する方法。


OrderDelete() 取引関数を呼び出すことにより
 
トレーリングストップを5桁で 動作させるためには、何を変更する必要がありますか?pipsを10倍に増やしても、何の役にも立たない。
//+------------------------------------------------------------------+
//|                                                   e-Trailing.mq4 |
//|                                           Ким Игорь В. aka KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//| 12.09.2005 Автоматический Trailing Stop всех открытых позиций    |
//|            Вешать только на один график                          |
//| 21.01.2006 Параметр AllPositions                                 |
//+------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"

//------- Внешние параметры ------------------------------------------
extern bool   AllPositions   = False; // Управлять всеми позициями
extern bool   ProfitTrailing = True;  // Тралить только профит
extern int    TrailingStop   = 15;    // Фиксированный размер трала
extern int    TrailingStep   = 2;     // Шаг трала
extern bool   UseSound       = True;  // Использовать звуковой сигнал
extern string NameFileSound  = "expert.wav";  // Наименование звукового файла

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
  for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (AllPositions || OrderSymbol()==Symbol()) {
        TrailingPositions();
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Сопровождение позиции простым тралом                             |
//+------------------------------------------------------------------+
void TrailingPositions() {
  double pBid, pAsk, pp;

  pp = MarketInfo(OrderSymbol(), MODE_POINT);
  if (OrderType()==OP_BUY) {
    pBid = MarketInfo(OrderSymbol(), MODE_BID);
    if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
      if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp) {
        ModifyStopLoss(pBid-TrailingStop*pp);
        return;
      }
    }
  }
  if (OrderType()==OP_SELL) {
    pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
    if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp) {
      if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {
        ModifyStopLoss(pAsk+TrailingStop*pp);
        return;
      }
    }
  }
}

//+------------------------------------------------------------------+
//| Перенос уровня StopLoss                                          |
//| Параметры:                                                       |
//|   ldStopLoss - уровень StopLoss                                  |
//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss) {
  bool fm;

  fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
  if (fm && UseSound) PlaySound(NameFileSound);
}
//+------------------------------------------------------------------+
 
david2:
トレーリングストップを5桁で動作させるためには、何を変更する必要がありますか?10倍に増やしても効果はない。

問題は、正規化されていない価格である可能性が高い。
 
PapaYozh:

問題は、正規化されていない価格であると思われる。
申し訳ありませんが、ターミナルボタンに加え、EAウィンドウの追加確認を押して、EAを取引 させるべきでした。
 
Sancho77:

親愛なる、Igor Kimは最後の オープンポジションの開始価格を返す関数を持っていますか?https://forum.mql4.com/ru/38949/page5#434239。

難しくなければ、最初の オープンポジションの始値を返す関数を書いてください。行で十分だと思いました。

<」を「>」に置き換えても、結果はうまくいきません。

そして、明確にするために?オープンなもの(市場に出ているもの)と、すでにクローズしているものの中から最初に選ぶこと?また、最初のポジションが3年前に開設されたのであれば?選択されることでしょうか

ところで、これは何のためにあるのですか?

 

同志の皆さん、こんにちは。

前回の注文がTake Profitで決済されたかどうかを判断することができるか、アドバイスをお願いします。もしそうなら、プログラム的にどのように実装すればよいのでしょうか?

この質問がすでに議論されているのであれば、リンクを貼っていただけるとありがたいです