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

 
vovan-gogan:
皆さん、助けてください。私のEAには、前のローソク足の安値が、前の40本のローソク足の全ての安値を下回った場合のみ、買いポジションを建てるという条件があります。問題:この前のローソク足の安値の列挙を実装して、前のローソク足の安値を下回ったかどうかを調べるにはどうしたらいいでしょうか?あらかじめご了承ください。
int TotalBars = 40; // Общее количество свечей по которым нужно осуществлять перебор
double max=0.0;
double min=100.0;
for(int n=0; n<TotalBars; n++)
  {
  if(High[n]>max) max=High[n];
  if(Low[n]<min) min=Low[n];
  }
MessageBox("Maximum="+max+" Minimum="+min);
 
langolier:

Aiさんありがとうございます!)
 
langolier:

うーん...ここで問題が...。データは新しいティックごとに更新され、過去30バー分のみ更新される必要があります...なぜかデータを残している
 
sergeev:

エラーを見つけるのを手伝ってください


10
mamba5 2011.08.18 14:23

ブラックMACD」戦略をベースにしたEAを書いています。


通貨ペア:任意

期間:15回以上

指標:EMA(3) EMA(18)、RSI(14)、MACD(12,26,9)

MACD指標のシグナルラインを削除し、すべての指標はClose price指標に適用されます。

買いシグナル:EMA(3) 、EMA(18)を下から上にクロス、MACDが陽線を示すまで待つ。RSI(14)が50レベルより上なら買い。ストップロスは最後のローカルミニマムに設定されます。EMAのクロスオーバーを反転して取引を終了するか、または独自の方法を使用します。

売りシグナル:逆張り状況:EMA(3)のクロス EMA(18)の下降、MACDが陰線になるのを待つ。RSI(14)が50以下の場合、買い。 損切りは直近の高値に設定。


コンパイル時に「ブラケットが足りない」と言われる。長い間探した結果、あるべき場所を見つけたようですが、エラーを修正した後、また20~30個の新しいバグが発生しました。どこで間違えたのか、ご指摘ください。))) コードは添付ファイルのとおりです。

添付ファイル
BlackvMACD.mq4(5.21 KB)を削除しました。
コンパイルエラーを修正しました。戦略実行アルゴリズムの正しさには踏み込んでいない。
ファイル:
 
first_may:


読み方: https://book.mql4.com/ru/variables/arrays .double Mas_d[3][2] = {1, 0, 2, 0, 3,0} という3組の2次元配列が組めることがわかった。

を念頭に置きながら。

の値が例えば AUDCAD のペアに対応し,Mas_d[1][2] がそのペアの値である.

の値は、例えばAUDCHFのペアに対応し、Mas_d[2][2]はそのペアの値である。

Mas_d[3][1]の値は例えばAUDJPYに対応し、Mas_d[3][2]はこのペアの値である。

の場合,配列の各要素は tick 間で値を保持します.そして、必要な基準に従って、配列の要素の値を変更できるようにします。あなたの言いたいことは正しく理解できましたか?:)

そうですね、やり方はベストではないかもしれませんが、みんな自分で選んでいます。そして、必要であれば、近代化・最適化するのです:))

私は今、アプローチの仕方を近代化している最中です。場合によっては不便なことも!?:D

 
MaxZ:

そうですね、やり方はベストではないかもしれませんが、みんな自分で選んでいるんです。そして、必要であれば、近代化・最適化するのです:))

私は今、アプローチの仕方を近代化している最中です。場合によっては不便なことも!?:D

初心者でExpert Advisorを試しに書いてみたのですが、コンパイル時に「 \end_of_program' - ending bracket '}' expected C:\Program FilesForexClub MT4experts trsi01.mq4 (30, 3) 」と間違って書いているのがわかるのですが、どこを間違えたのか教えていただけますか?

//+------------------------------------------------------------------+
| trsi01.mq4|||。
//| 著作権 © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"著作権 © 2011, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"

double StopLoss=30;

double TakeProfit=100;

double Lots=0.1;

return(0)です。


int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
オーダー送信(シンボル()、OP_BUY、ロット、アスク、3、ビッド-ストップロス*ポイント、アスク+テイクプロフィット*ポイント)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)とする。
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point)を実行。
{
return(0)です。
{

 
acoman:

初心者なのですが、Expert Advisorを試しに書いてみたのですが、コンパイルすると「 \end_of_program' - ending bracket '}' expected C:\Program FilesForexClub MT4expertstrsi01.mq4 (30, 3) 」というエラーが出ます、書き方が悪いのはわかっていますが、エラー箇所を教えていただけますか?

//+------------------------------------------------------------------+
| trsi01.mq4|||。
//| 著作権 © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "著作権 © 2011, MetaQuotes Software Corp.
#プロパティリンク "http://www.metaquotes.net"

double StopLoss=30;

double TakeProfit=100;

double Lots=0.1;

return(0)です。


int start()
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
オーダー送信(シンボル()、OP_BUY、ロット、アスク、3、ビッド-ストップロス*ポイント、アスク+テイクプロフィット*ポイント)
{
if(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)とする。
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point)を実行。
{
return(0)です。
{


マニュアルを隅から隅まで読んでいないのがエラーです。全く開かなかった場合。

しかし、あなたは明らかにこのセクションを見逃しています:条件演算子 if - else

本を隅から隅まで読んだ方がいい。

 
ありがとうございます、覚えておきますね :)特定の通貨ペアのストップロスの最小値を教えてください。例えば、EURAUD- あなたは100ピップス未満のストップロスを配置することはできませんし、他のために?
 
first_may:
ありがとうございます、覚えておきます :)特定の通貨ペアで、どの最小ストップロスがあるか教えてください。例えば、EURAUDの場合、ストップロスを100pips以下に設定することはできませんが、その他の場合はどうですか?

https://book.mql4.com/ru/appendix/marketinfo

MODE_STOPLEVEL 14 最小許容ストップロス/ステイクプロフィットレベル(pips単位
 

2進数(例えば7桁の数字)はどのようにして作るのですか?そして、それを(便宜上)10進数に変換するにはどうしたらよいのでしょうか。