MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 742

 
psyman:


ありがとうございました!明日は、XPに居座っているので、iTimeとiCloseの置き換えを考えてみます。

//+------------------------------------------------------------------+ 
//| Get Time for specified bar index                                 | 
//+------------------------------------------------------------------+ 
datetime iTime(const int index,string symbol=NULL,ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT)
  {
   if(symbol==NULL)
      symbol=m_symbol.Name();
   if(timeframe==0)
      timeframe=Period();
   datetime Time[1];
   datetime time=0;
   int copied=CopyTime(symbol,timeframe,index,1,Time);
   if(copied>0) time=Time[0];
   return(time);
  }
//+------------------------------------------------------------------+
 

EAからインポートして、別の関数(例えばtrawl)を呼び出せるようにするには、どのようにコンパイルすればよいのでしょうか?

.mqhやdllと同じように

 
demonRDV:

皆さん、こんにちは。

EAが動作しているのに、そのプロパティを入力できないのはなぜか、教えてください。以前はそうだったが、今はプロパティを開くことができない。一度は端末を再起動することで解決しましたが、1分後に再び問題が発生しました。EAが新鮮、端末も最近動いている。EAのプロパティの問題点は何ですか?

ありがとうございました。

割り込みのチェックをせずにループしている可能性が高いです。
このEAに以前から問題があったのですか?

 
Ghabo:

EAからインポートされた トロールなどの関数を呼び出すには、どのようにコンパイルすればよいですか?

.mqhの呼び方と同様

このように

EAで
#include <trall.mqh>.

で、コード内で直接関数 trallを呼び出す、例えば

int trall_size = 20;
int trall_start = 30;
int trall_step = 5;


trall("",0,-1, trall_size, trall_start, trall_step); // trall("); // 設定したパラメータを持つ口座の全ての注文をtrallする。

int magic = 345;
trall(_Symbol,magic, OP_BUY, trall_size, trall_start, trall_step); // trallは指定したスローで現在のシンボルにのみBUY注文を出します。

ファイル:
trall.mqh  27 kb
 
Maxim Kuznetsov:

ホットキーF7を押す :-)

EAアイコンのマウスが常に動作しない - アイコンが他のオブジェクトと重なり、EAがメッセージキューと100500の他の理由をロードすることができます。

それが何かは分かっています。役に立ちません )
 
Nikolay Khrushchev:

といったところでしょうか。

顧問の先生
#include <trall.mqh>.

トロールファイルは別にコンパイルして、拡張子はex4にしてくださいということです。

#include <trall.ex4>

または

#import "trall.ex4"
    ...
    ...
    ...
#import
トロール機能自体の 内部には何を挿入すればよいのでしょうか?
 
Ghabo:

トロールファイルをコンパイルする必要があるという意味です。

または

トロール機能自体の 内部には何を挿入すればよいのでしょうか?

なぜそのような倒錯が必要なのか?EAに関数を書くか、提案されているように.mqhファイルで書く方が簡単ではないでしょうか?

それとも、トロールでExpert Advisorはあるが、ソースはないのでしょうか?しかし、関数名の後にexport 修飾子がなければ、他のEAにインポート することは不可能です。

また、このようなライブラリは、EAと一緒に新しい端末にドラッグしなければならないというデメリットがある。また、インクルードファイル.mqhを使用すれば、コンパイルしたEAだけを別の端末にコピーすることも可能です。

Экспортирование функций - Функции - Основы языка - Справочник MQL4
Экспортирование функций - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Экспортирование функций - Функции - Основы языка - Справочник MQL4
 
Alexey Viktorov:

なんだこの曲解は?

フェチなんです(笑)。

ほら、これでうまくいくはずだ。

#property strict
void trall(string tr_symbol, int tr_magic, int tr_type, double tr_trall_size, double tr_trall_start, double tr_trall_step=1) export {
   if(tr_type>1) return;
   int ti;
   for(ti=OrdersTotal()-1;ti>=0;ti--) if(OrderSelect(ti,SELECT_BY_POS,MODE_TRADES)) {
      if(OrderSymbol()!=tr_symbol && tr_symbol!="") continue;
      if(OrderMagicNumber()!=tr_magic && tr_magic>0) continue;
      if(tr_type>=0 && OrderType()!=tr_type) continue;
      double work_price;
      double work_pp = SymbolInfoDouble(_Symbol,SYMBOL_POINT);
      int    work_dig = SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
      if(tr_trall_size>0) {
         if(OrderType()==0) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if(NormalizeDouble(work_price-(tr_trall_size+tr_trall_step)*work_pp, work_dig)>NormalizeDouble(OrderStopLoss(), work_dig) && 
               NormalizeDouble(work_price-tr_trall_start*work_pp, work_dig)>=NormalizeDouble(OrderOpenPrice(), work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble( work_price-tr_trall_size*work_pp, work_dig),-1,-1);
            }
         if(OrderType()==1) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if((NormalizeDouble(work_price+(tr_trall_size+tr_trall_step)*work_pp,work_dig)<NormalizeDouble(OrderStopLoss(),work_dig) || OrderStopLoss()==0) && 
               NormalizeDouble(work_price+tr_trall_start*work_pp,work_dig)<=NormalizeDouble(OrderOpenPrice(),work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble(work_price+tr_trall_size*work_pp, work_dig),-1,-1);
         }
      }
   }
}

それとも 置き場 所が悪いのでしょうか

 
Ghabo:

フェチなんです(笑)。

ほら、これでうまくいくはずだ。

それとも 置き場 所が悪いのでしょうか

場所が悪いようです。インポートを逆カンマや角括弧でくくる方法を考える必要があります。このファイルがLibrariesフォルダにあるか、このライブラリのExpert Advisorのインポート 機能と同じ場所にあるかによって異なります。昔、実験したのですが、思い出せず、今となっては申し訳ないのですが、方法を調べるのが億劫になっています。
 
psyman:


ありがとうございました!明日はXPに居座っているので、iTimeとiCloseに代わるものを考えてみます。

ここでは、純粋なタグのコードです。チャートスクロール時、チャート切り替え時、どのような方法でもBid価格の後に実行されます。十字キーの後ろを走り、この方法で設定したオフセットを記憶し、その後もBidへのナビゲーションを続けます。

PS 最近、すべてがうまくいかなくなってきたので、すでにhpを変更した私でさえ、一部のサイトではブラウザのアップデートが必要で、hpではアップデートできないのです。

RAMも3.7gbに制限されるのはもう嫌だ。

xpは、すべてのCPUコアでowlをテストするためのサポートはありません。

ファイル: