[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 422

 
klopp:
プログラマーの皆さん!i-RegrインジケータをベースにExpert Advisorを書くのを手伝ってください。
原理はバカみたいに簡単なんですが...。
インジケーターの上側のライン(value2)の値が1.43を上回ると売り取引が1回行われ、インジケーターの下側のライン(value3)の値が1.40を下回ると売りは終了し、
買い取引が1回行われます。value2が1.43を超えていたら終了しています。1.40と1.43という値は私がおおよそ選んだものです。
タイムフレームによって調整する必要があるので、プログラムではなくEAのプロパティで変更できることが望ましいです。私はプログラミングがあまり得意ではないので。

ご回答いただける方に、あらかじめ感謝いたします。
formayl@mail.ru。

皆さんのやり取りを読んで、自分をバカだと思うことにしました。これは、自分自身をプログラムしようとする人を支援するブランチであるので、私の価格は100ドルであり、WebMoneyでの支払いの3時間後にあなたは本当のために動作するEAを持っている(デモのためのおもちゃではありません)。個人エリアでのお問い合わせはこちら

ZS:すっかり忘れていたが、交渉は適切であり、奨励される(もちろん、上向きである)。

 

EAと同じチャートにインジケータを貼り付け、インジケータからデータを取得し、EAで加工しています。問題は、チャートを開いているペアだけでなく、他の4~5つのペアのデータをインジケータから取得 する必要があることです。
どのように実装するのか?ストラテジーテスターでテストできるようにするには?

 
nuan:

EAと同じチャートにインジケータを貼り付け、インジケータからデータを取り込み、EAで処理しています。問題は、チャートが開いている通貨ペアだけでなく、4~5ペアのデータをインジケータから取得する必要があることです。
どのように実装するのか?ストラテジーテスターでテストできるようにするには?

こちらhttps://docs.mql4.com/ru/indicators/iCustom

必要なペアとタイムフレームをパラメータとして指定 string symbol, int timeframe - インジケータはチャートに添付されている必要はありません。

マルチセットはテスターではテストされず、MT5(MQL5)でのみテストされます。

 
本当にありがとうございました。
 
KONDOR:


提案は良い、ありがとう、しかし、これは動作が遅いです!!質問はオープンです。

"EAを持っているのですが、以前に出した注文(保留中の注文を含む)がもはや存在しないことを理解させるにはどうしたらよいでしょうか(様々な理由 - slやtpをトリガーした、あるいは手動で削除された)、つまり、注文が生きているかどうか尋ねるようにするにはどうしたらよいでしょうか。エディタにあるこれらのコマンドは値を返しますが、ここでは値が明確ではありません。

 

エラーは何ですか、なぜ動かないのですか。0時間から24時間まで価格別に線を引きたい DnPrice

if (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //行頭揃え
{
Print("error: Can't create Down! code #",GetLastError());
return(0)です。
}

ObjectSet("Down",OBJPROP_COLOR,Red)。

 
Stells:

エラーは何ですか、なぜ動かないのですか。DnPriceの価格で0時間から24時間までの線を引きたい

if (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //行頭揃え
{
Print("error: Can't create Down! code #",GetLastError());
return(0)です。
}

ObjectSet("Down",OBJPROP_COLOR,Red)。

https://docs.mql4.com/ru/basis/types/datetime

bool ObjectCreate( string name, int type, int window,datetime time1, double price1,datetime time2=0, double price2=0, datetime time3=0, double price3=0, )。

 
bercut0077:

提案は良い、ありがとう、しかし、これは動作が遅い!!質問はオープンです。

"EAを持っているのですが、以前に出した注文(保留中の注文を含む)がもはや存在しないことを理解させるにはどうしたらよいでしょうか(様々な理由 - slやtpをトリガーした、あるいは手動で削除された)、つまり、注文が生きているかどうか尋ねるようにするにはどうしたらよいでしょうか。エディタに存在するこれらのコマンドは値を返しますが、ここではその値が明確ではありません。


それはとても簡単です。OrdersHistoryTotalという 関数があり、履歴を調べて、必要なマジシャンの注文が履歴にあれば、それはクローズされたか削除されたことを意味します。

また、履歴の並び替えのループの中に、いくつかの条件を追加することもできます。例えば、注文の終了時刻が本日の開始時刻より短い場合、そのような注文は無視されます。その結果、Expert Advisorは、今日中に決済/削除された注文のみを選別します。

 
nuan:
ZZZEROXXX なぜ利益を出す必要があるのか?

チャートを反転させると、チャートが大きくなるから )))スプレッドだけの問題ではないと思います。取引回数があまり多くないと仮定すれば、スプレッドは収益性に決定的な役割を果たすものではありません。
 

教えてください、リモート注文の場合、TakeProfitで決済されたかどうか知ることは可能でしょうか?

を使用することはできますか?

doubleOrderTakeProfit() )
現在選択されている注文の利益幅(テイクプロフィット)に到達したときの終値を返します。
注文は、OrderSelect() 関数で事前に選択されている必要があります。
?

このような条件を作ることは可能でしょうか。

for ( i=OrdersTotal();i>0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_HISTORY  );
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0 ||
   OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0

この関数は、クローズした場合、どんな注文でもゼロ以上の利益を返すのではないのでしょうか?