[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 1127

 
drknn:
どうもありがとうございました =)。
 
Alexandr24:
どうもありがとうございました =)。


テスターでは、インジケータは警告ウィンドウを捨てず、代わりに警告メッセージをログに書き込むことを忘れないでください。このようなコードは、スクリプトでデバッグした方が早いです。

また、インジケーターのメッセージは、不思議なことにテスターではテスターのログには書き込まれず、リアルタイムのログに書き込まれます。

 
テスターでEAをテスト する際、手数料はどのように考えればよいですか?
 
テスターが特定のブローカーのすべての設定を使用するため、考慮されているようだ。検索すれば、より正確に分かります。
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=%EA%EE%EC%E8%F1%F1%E8%FF+%E2+%F2%E5%F1%F2%E5%F0%E5
 
Abzasc:

これには「正攻法」はありません。

こんな やり方もあるんですね。

あるいは、こんな方法もあります。


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

条件の仕組みがよくわからない。

フラクタルインジケーターの仕組み、MODE_UPPERとMODE_LOWERの違いについて調べてみようと思い、以下のコードを書きました。

int start()
{int y;
y= WindowFirstVisibleBar();Alert ("y",y);
for (;y>=0;y--)
{ double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y).Double(Double)です。
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (up>=1|down>=1){
Alert("Previous upper fractal is."):", up, " 前の下のフラクタルは:", down);Alert ("y",y);}}.

WindowFirstVisibleBar()はチャート上のバーの本数を 表示します。

||記号とか、演算子は少なくともどちらかの条件が真であるか、両方が同時に真であれば、括弧{}をするようですね。

私にとっては全く何も変わっていない!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

うまくいったと思うんだけど、助けて!!!!!!!

 
Dimka-novitsek:

条件の仕組みがよくわからない。

フラクタルインジケーターの仕組みを理解しようと思い、MODE_UPPERとMODE_LOWERの違いは何ですか?

int start()
{int y;
y= WindowFirstVisibleBar();Alert ("y",y);
for (;y>=0;y--)
{ double up=iFractals(Symbol(),PERIOD_M15,MODE_UPPER,y).PERIOD_M15,MODE_UPPER,y)。
double down=iFractals(Symbol(),PERIOD_M15,MODE_LOWER,y);
if (up>=1||down>=1){。
Alert("Previous upper fractal is:", up, " Previous lower fractal is:", down);Alert ("y",y);}}.

WindowFirstVisibleBar()はチャート上のバーの数を与えます。このことは、if (up>=1|down>=1)を交差させると動作します。これは、計算されたバーの素晴らしいシリーズを与えますが、その数は多くなっています。

||記号とか、演算子は少なくともどちらかの条件が真であるか、両方が同時に真であれば、括弧{}をするようですね。

私にとっては全く何も変わっていない!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

すべて正しいと思っています。 助けてください!!!!!!!



M - より速い応答...感嘆詞を使用しない。
 
via counter-alt - M - そして詳細は?
 
Dimka-novitsek:

のようなものです||。

https://docs.mql4.com/ru/basis/operations/bool

論理的なOR演算。

Zy counter-alt - MはSRCのプッシュボタンのようなもので、これを通してコードを入力します。

 
drknn:

ご指摘のコードを試してみました。結果はいつも同じで、日中に取引を開始し続けるのです。繰り返しになりますが、ON/OFFのオプションは残してほしいです。

ここでは、試行錯誤したバリエーションを紹介します。

extern bool WaitForNewDay = true;

void init()

{

SMB=Symbol()です。

を返します。

}

void start()

{

bool Trade=true。

if(WaitForNewDay){if(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)!=0) Trade=false;}となります。

if(CalculateCurrentOrders(Symbol())==0 && Trade)

{CheckForOpen(); return;}.

}

//-----------------------------------------------------------------

int ヒストリーバイ(int マジックマ)

{int BuyOrders=0;

for (int i=OrdersHistoryTotal()-1;i>=0;i--){

if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){。

Print(" ",GetLastError()," ",i);

}

else {

if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGICMA){ continue;}; }.

if(OrderType()==OP_BUY){。

if(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){。

BuyOrders++です。

}

}

}

}

return(BuyOrders)。

}

//-----------------------------------------------------------------

int HistorySell(int MAGICMA){。

int SellOrders=0;

for (int i=OrdersHistoryTotal()-1;i>=0;i--){。

if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){。

Print(" ",GetLastError()," ",i);

}

else {

if(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGICMA){ continue;}; }.

if(OrderType()==OP_SELL){。

if(OrderOpenTime()>=iTime(SMB,PERIOD_D1,0)){。

SellOrders++です。

}

}

}

}

return(SellOrders);

}

//////////////その他のオプションはこちら

extern bool WaitForNewDay = true;

Trade=trueとした。

void init()

{

SMB=Symbol()です。

if(WaitForNewDay) {Trade=false;}。

を返します。

}

void start()

{

if(WaitForNewDay) {if(HistoryBuy(MAGICMA)+HistorySell(MAGICMA)==0) Trade=true;}。

if(CalculateCurrentOrders(Symbol())==0 && Trade)

{CheckForOpen(); Trade=false; return;}.

}