コーディングの方法は? - ページ 225

 

新米...

まず最初に、皆さん、新年おめでとうございます。

そして、このフォーラムで共有されているすべての知識に感謝します。

私はmql4に近づいている、私はコーダーではありません。

私はこの非常に単純な戦略を書いて少しサポートに感謝します。

ロングエントリ。

(アスク-入札) <= Z_pips /*スプレッドチェック*/。

そして

(bollinger_up-bollinger_down) <= K_pips /* ボラティリティチェック */。

そして

ask < (bollinger_down + X_pips) /* 価格チェック */ (bollinger_down + X_pips)

そして

ma_Qperiods >= ma_Wperiods /*トレンドチェック */

を終了します。

トレーリングSL = 15 pips

どなたかお時間ある方、よろしくお願いします。

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

ネバール

 

NR7インジケータについて教えてください

こんにちは。

私はNR7用のインジケータを作成しています。

アルゴは

-範囲を計算し、それを配列に格納する。

- 現在のレンジ≦直近の7レンジであれば、現在のバーはnr7です。

しかし、このインジケータはすべてのバーをnr7としてフラグを立てているようです。

スクリーンショットはこちら

2010-01-18_0531

ファイル:
nr7.mq4  3 kb
 

アドバンストサーEA

こんにちは、友人です。

他のスレッドから入手したEAを修正したいのですが、残念ながらmqlファイルを持っていませんので、どなたか助けてください。

このEAのオリジナルのロジックから、以下のように少し修正したいと思います。

- このEAは4桁でしか動作しませんが、5桁でも動作するように改良してください。

- このEAは一般的なマーチンゲール方式で動作していますが、さらに2Xメトードの動作モードを追加する必要があります。

1.最後の取引で注文を出し、TPに到達したら、新しいサイクルを開始し、最後の注文と同じ順序で取引を開始します。例:最後の取引が買い注文で、TPに達した場合、EAはSLに達するまで買い注文を出し続け、EAは反対方向の売り注文 に変更する。売り注文でも同じで、売り注文で利益が出る限り、SLに達して買い注文に変更するまで、新しいサイクルで売り注文を出し続ける。

2.2.セカンドモード運用。買い-売り-買い-売り-買いのシーケンスで動作するEAで、このモードは、トレンドのないレンジ相場用に設計されています。

ご教授のほど、よろしくお願いいたします。

ありがとうございます。

yoha

ファイル:
 

このEAがなぜ注文を出せないのか、何か心当たりはありませんか?

このゲームに戻ってきてからしばらく経ちますが......とにかくmqlをリフレッシュし始めたところです......ここでは多くのことが変わりました。

基本的に、私は買い注文と売り注文を バーのオープニングから10ピップ離れたところに置きたいと思っています。Takeprofitは、保留中の注文から15pip離れたところにあります。

問題は、注文が一度も出されていないことです...。

int counted_bars = IndicatorCounted();

int pos = Bars - counted_bars + 1;

if (counted_bars == 0) pos = Bars - 10;

if (counted_bars>0) counted_bars--;

double currentPrice = iClose("EURUSD",PERIOD_M1,0);

while(pos>0)

{

//Putting Pending LongOrder

Print("Long...");

OrderSend("EURUSD",OP_BUYLIMIT,1,Open+10*Point,3,0,Open+25*Point,"Pending Long Order", 888, 0, Green);

Print("Short...");

//Putting Pending ShortOrder

OrderSend("EURUSD",OP_SELLSTOP,1,Open-10*Point,3,0,Open-25*Point,"Pending Short Order", 999, 0, Red);

pos--;

}
 

バーのカウントがEAとどう関係するのかよくわからないのですが? インジケータで使うためのものではないのでしょうか?

その辺を抜いたら大丈夫なんじゃないかと思うんだけど。

 

datetime変数

こんにちは。

実データと時刻を書きたいのですが

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

どのように私はこれを書くことができますか?

しかし、どのように私はこれを書くことができます。

starttime = その日の日付 + starthour + startminute;

 

ご質問の内容がよくわからないのですが、おそらく時間数と分数で日付を増加させようとしているのでしょう。TimeCurrent() のヘルプを見ると、時刻を秒数で返していることがわかります。したがって、論理的には、分を追加するには60を掛け、時間を追加するには3600(60*60)を掛けると推論できます。

つまり、次のようになります。

TimeCurrent()+(starthour*3600)+(startmin*60);

TimeCurrent() を 'startdate' として指定した時刻に置き換えるだけ です。

ラックス

 
sunshineh:
こんにちは。

実データと時刻を書きたいのですが

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

どうやったら書けるんだろう?

でも、これってどう書けばいいんだろう。

starttime = Date of the day + starthour + startminute;

StrToTime関数を 使います。この関数に曜日を渡さずに、時間と分だけを渡すと、現在の曜日が使われます。こんな感じ。

datetime startTime = StrToTime( StartHour+": "+ StartMinute).ここで、StartHourとStartMinuteは、StrToTime関数に渡される。

ここで、StartHourとStartMinuteは文字列です。

文字列 StartHour = 8;

文字列StartMinute = 0。

 

たくさんのありがとう!

もう一つ質問があります。

ローソクの終値のみで売買させたい場合、どのようにコーディングすればよいのでしょうか?

私は私が書くことができると思った

if(!Close[0]) return;

しかし、それは動作しません。

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

もう一つ質問があります。

ローソク足の終値でのみ売買させたい場合、どのようにコーディングすればよいのでしょうか?

私は私が書くことができると思った

if(!Close[0]) return;
しかし、それは動作しません。

変数を定義する必要があります......それは次のようになります。

int barsNumber = 0;

をグローバルセクション(例えばinit関数の 直前)で定義します。

そして、あなたがsendOrder関数とあなたの部分を持っている開始関数では、この条件を確認する必要があります。

if(Bars>barsNumber)

もしそれが真であれば、変数barsNumberをBarsに設定します。

barsNumber = Bars;

ということで、全てはこのようになります。

#いくつかのプロパティ

int barsNumber = 0;

int init()

{

int deinint()

{

int start()

{

if(Bars>barsNumber)

{

SendOrder(...)。

barsNumber = Bars;

}

}