初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 84

 
Arseniy Barudkin:   こんにちは、先生方、この関数を書くのにお力を貸してください。

勝利の日おめでとうございます!!! 4日経っても返信がない。やってみよう...不満のある人は直接 書く!!!

//+-------------------------------------------------------+
//| функция перебрала открытые ордера на графике          |
//| и выделила: 1) с самым маленьким лотом и --- профитом |
//| 2) с самым большим лотом и +++ профитом.       скрипт |
//| Предполагается, что такие есть. И удалила    PROBA.mq4|
//+-------------------------------------------------------+
// Назначение функций OrdersTotal, OrderSelect, OrderClose
// и прочих узнаем поставив на них курсор и нажав F1

#property strict

void OnStart()
{
   int    Проскальзывание=20;
   int    Тикет1 =0,  Тикет2=0;
   double Лот1=100000, Лот2=0;
   bool   Результат;     //  Чтоб избежать лишних предупреждений

   // Выделение
   for(int Тикет=OrdersTotal()-1; Тикет>=0; Тикет--)
   {
     if(!OrderSelect(Тикет,SELECT_BY_POS)) continue; // Что-то помешало - идем к следующему
     if(OrderSymbol() != _Symbol) continue;          // Чужой график

     // Если с меньшим лотом и   --- профитом   то запомним тикет и лот
     if(OrderLots()<Лот1     &&  OrderProfit()<0)
     {
       Тикет1=OrderTicket();
       Лот1=OrderLots();
     }

     // Если с большим лотом и   +++ профитом   то запомним тикет и лот
     if(OrderLots()>Лот2     &&  OrderProfit()>0)
     {
       Тикет2=OrderTicket();
       Лот2=OrderLots();
     }
   }

   // Удаление
   if(Тикет1)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет1,SELECT_BY_TICKET))  // Чтоб получить цену закрытия
         Результат=OrderClose(Тикет1, Лот1,OrderClosePrice(),Проскальзывание);
   }

   if(Тикет2)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет2,SELECT_BY_TICKET))
         Результат=OrderClose(Тикет2, Лот2,OrderClosePrice(),Проскальзывание);
   }
}   

そして、もし2つしか注文がないのなら、という疑問が生まれました。大きなロットで利益がマイナスになっているものと、小さなロットで利益がプラスになっているものがあります。

注文が1つだけだったらどうしよう。すべての注文が同じロットで、すべて利益がマイナスの場合、1つずつ閉じるべきでしょうか。

 

こんにちは。

何かお手伝いできることはありますか?Expert Advisorは1ティックごとに トレードを取得しています。5トレード程度、あるいは好きなだけ取り出せるようにするには、どのようにコードを書けばよいのでしょうか?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red)を実行。

}

コードを変更したり、追加したりするにはどうしたらよいですか?

あなたは***に答えることができますか?

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

 
alstefanov:

こんにちは。

何かお手伝いできることはありますか?Expert Advisorは1ティックごとに トレードを取得しています。5トレード程度、もしくは好きな数だけ取り上げるには、どのようにコードを書けばいいのでしょうか?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red)を実行。

}

コードを変更したり、追加したりするにはどうしたらよいですか?

あなたは***に答えることができますか?

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

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{ 

if(OrdersTotal()==0)OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsasho",1,0,Red);

}
 
テスターでEAの動作を速くする方法を教えてください。EAは1つのインジケータしか使っていません。
 
missha32 Strategy TesterでEAを高速化するにはどうすればよいですか?

まず、テストの時間間隔を短くすること。ベスト:1)過去3ヶ月間。2)ブレグジットを挟んで3ヶ月。すべてのダニでテストしないように注意してください。実際、MT4ではヒストリーにティックはなく、価格の上下の軽い揺れでモデル化されています。M15とM1の2つのタイムフレームでテストしてみると、どちらが良いかがわかります。また、月曜日の朝に起動し、金曜日の夕方によく知られたスクリプトで結果を確認する、というデモを利用するのもよいでしょう。100個のExpert Advisorをテストする必要がある場合、10台の端末を開き、各端末にExpert Advisorを含む10個のチャートを配置します。

多くのコンピュータを持つことが必要である。実際の口座では、レバレッジ500で4ドルあれば十分です。どのチャートを見ても、正しく エントリーすれば、1日で簡単に入金額を2倍にすることができます。それも1ヶ月で100万回。インターネット上にそのような無料EAがあるのでしょうか?誰かそんなの売ってくれないかな?したがって、そのお金はコンピュータに投資すべきです。私たちは、そのエントリーポイントを探しています。プログラムを書いたり、Excelで数式やマクロを使って計算したり、計算のためのスクリプトやExpert Advisorを書いたりします。そして、エントリーポイントの見つけ方がわかってきたら、ロボット、ストップ、トロール、入金、出金...。

 
STARIJ:

勝利の日おめでとうございます。 4日経ちますが、何の反応もありません。やってみよう...不満がある人は個人のアカウントに 書く!!!

そして、もし2つしか注文がないのなら、という疑問が生まれました。大きなロットでマイナス利益、小さなロットでプラス利益の場合

注文が1つだけだったらどうしよう。すべての注文が同じロットで、すべて利益がマイナスになっている場合、1つずつクローズすべきでしょうか?

for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - これは、チケットによるマーケットオーダーを逆順(最後に開いたオーダーから最初のオーダーへ)に検索するコードです - 正解ですか?

でも、「チケット」はキリル文字ではダメで、ラテン語で「Ticket」でないとダメなんです。

 
Yaroslav Nykula:
for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - これは、逆順(最後に開いたものから最初のものへ)のチケットによるマーケットオーダー検索のコードです - 私はそれを正しく理解するのですか?

しかし、キリル文字で「チケット」ではダメで、ラテン語で「Ticket」が必要です。

確認していませんが、キリル文字だけでなく、中国語でも通るはずです。
 
Vitaly Muzichenko:   確認していませんが、キリル文字だけでなく、中国語でも通るはずです。
私は新しい言語に挑戦するとき、まずキリル文字がキリル文字を食べるのか、それとも吐き出すのかを確認することにしています。これはそうですね。そのスクリプトがこちらです。見てみてください。
ファイル:
PROBA.mq4  2 kb
 
こんにちは。ある取引期間(つまりローソク足1本分)のティックの値(対応する価格)を1次元配列に読み込むことができるかということです。そして、ローソク足の形成中に配列が形成されるように行うこと。MQL4では現実的なのでしょうか?ご意見をお聞かせください。
 
STARIJ:

勝利の日おめでとうございます!!! 4日経っても返事がない。やってみよう...不満のある人がプライベートで書き込んで いる!!!

そして、2つの命令しかないのなら、という疑問が生まれました。大きなロットでマイナス利益、小さなロットでプラス利益の場合

そして、注文が1つしかない場合。また、すべての注文が同じロットで、すべて利益がマイナスになっている場合、1つずつ決済したほうがいいのでしょうか?


ありがとうございました。これはいい機能ですねー。この関数は、別の注文を開くのに十分なマージンがない場合に呼び出される必要があります。しかし、私は自分の考えを正しく表現できていなかったのです。オープンポジション からの利益が最大となる最大ロットと、オープンポジションからの利益がマイナスとなる最小ロットです。