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

 

2010年のチャートを見る

ストキャスティクスの リーグ戦のことです。

ストキャスティックチャートを初期の頃に使っていたように -- 2010年のチャートにも適用できるのか -- 彼らは本物のトレーダーです、バッド、あなたは彼の課題を持つことができます -- 私はノンバンディングルベーグ積分数学プログラミングに取り組んでいます -- 映画「彼女は私のリーグの外」を覚えています --- 良い仕事は良い報酬を意味します ------。

コードを読むと、2010年の現在の投資スタイルより少し洗練されていない。

 
scottyb:
コンパイル時に発生する呪われたカッコの不具合について、可能な限りのコンボを試しました。何時間もこの問題に取り組んできましたが、解決には至りませんでした。私は、スクリプトを台無しにするコードのセクションに釘付けになりました。どなたか、何が問題なのかアドバイスください(私がバカであることは別として)。

void ScanForClosure ()

{

int cash = OrderProfit() + OrderSwap() + OrderCommission()

int MacdCurrent、MacdPrevious、SignalCurrent;

int SignalPrevious, MaCurrent, MaPrevious;

int total2 = OrdersTotal();

int numords2 = 0;

bool type = false;

int trd2 = 0;

MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)。

MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);

SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);

MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

ArrayResize(lastOrders,5).ArrayInitialize(lastOrders,5)。

ArrayInitialize(lastOrders,0)。

//

for(int cnt=0; cnt<total2; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) ;

{

if ((オーダータイプ()==OP_BUY)&&(MacdCurrent>0)){。

(MacdCurrent>0)&&&。

(MacdCurrent<SignalCurrent)&&(キャッシュ>0)&&(キャッシュ>0)

(キャッシュ>0)&&(MacdPrevious>SignalCurrent)

(MacdPrevious>SignalPrevious) && MacdCurrent>(MACDCloseLevel*Point));

{

CloseOrder(1);

}

if ((オーダータイプ()==OP_SELL)&&(キャッシュ>0)&&(キャッシュ>0))

(キャッシュ > 0)&& (MacdCurrent<0 ) && (キャッシュ > 0) && (MacdCurrent>サイン)

(MacdCurrent>SignalCurrent)&&&。

(MacdPrevious<SignalPrevious)&&&。

(MathAbs(MacdCurrent))>(MACDCloseLevel*Point));

{

CloseOrder(2);

}

}

}

}

Scottyさん、こんにちは。

macdの サンプルよりコピーしています。

if(OrderType()==OP_BUY)

{

if(MacdCurrent>0 && cash > 0 && MacdCurrentSignalPrevious &&

MacdCurrent>(MACDCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet)。

return(0);

}

それ以外

{

if(MacdCurrent 0 && MacdCurrent>SignalCurrent &&)

MacdPrevious(MACDCloseLevel*Point))

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // クローズ位置

return(0);

}

リーガル

ツール

 
forextrend:
このコードでは、なぜ間違ったパラメータ数のエラーが発生するのでしょうか?

for(int i = 0;i < 3;i++)

{

kline = iStochastic(NULL,TimeFrame1, Period(), 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, Period(), 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i);

こうあるべき

int counted_bars = IndicatorCounted();

int limit,i;

if(counted_bars<0)戻り値(-1)。

if(counted_bars>0) counted_bars--;

limit = Bars - counted_bars;

for(int i=limit; i>=0; i--)

{

kline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_MAIN, i);

dline = iStochastic(NULL,TimeFrame1, 4, 3, 3, MODE_SMA, 1, MODE_SIGNAL, i)となります。

リーガル

ツール

 

ありがとうございます。 その投稿された例では、すべてのオープンチケットをスキャンするのでしょうか? 私はそれが2つ(単一の買いと単一の売り)、おそらく毎回同じものをスキャンするだけだと思います:/私はこのMt4プログラミングに非常に新しいですが、私はそれが起こるだろうと確信しています。

 

わかった

10時間も同じ問題を見つめていて、解決できないとは驚きです。 もう一回見てみたんだ。 目が覚めたら、5分で直ってた。 このMT4のコードは非常にタイトなようだ。 その求めているものを正確にコーディングする必要があるようです(他の10ヶ国語で全く同じことができ、動作するかどうかは別として)。

私は、World of Warcraftのボットを作って、キャラクターをゲーム内で勝手に走らせ、物を殺すようにしましたが、MT4で単純な売買ルーチンを作ろうとすると、苦労します。

とにかく、私の教訓は、ifの行に書くことを制限することです。 私のような苦労をする人が少しでも減ればと思います。

OrderSelect(cnt, SELECT_BY_POS);

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

if (オーダータイプ()==OP_BUY)

if (利益>0)

if (MacdCurrent<SignalCurrent)

if (MacdCurrent>0)の場合

if (MacdPrevious>SignalPrevious)もしも、(MacdCurrent>SignalPrevious)

if (MacdCurrent>(MACDCloseLevel*Point))

{

CloseOrder(1);

}

if (オーダータイプ()==OP_SELL)

if ((MacdCurrent<0 ))

if (利益 >0 )

if (MacdCurrent>SignalCurrent)

if (MacdPrevious<SignalPrevious)

if (MathAbs(MacdCurrent) >(MACDCloseLevel*Point))

 

コードアシスト - フラクタル

こんにちは。

私が取り組んでいるシステムの一部として、以下のことを行うために必要なコードについて、いくつかの助けを探しています。

有効なロングif。

(最も古いものから最も新しいものまで1-xで番号付け)

-> フラクタルダウン2よりも高いフラクタルポイントダウン1

-> フラクタル・アップ1が形成され、ブレイク・ロングの可能性がある状態を作り出すが、しかし

-> フラクタル・ダウン3がフラクタル・ダウン2より高くなければならない。

-- トレンドの転換が確認できる。アッパーフラクタルを ブレイクアップした場合、有効なTRUEとなる。新しい下位フラクタルが形成された場合、それが新しいブレイクポイントとなるunless前のフラクタルダウンより下位のフラクタルダウンがある場合。下方のフラクタルは、高値を更新しているはずである。

ショート検証の場合は、その逆となる。

乾杯

アーロン

 

もう少しうまく説明できるかもしれません。

つまり、価格が上昇トレンドにあり、上部フラクタルが 形成されます。価格が下落し、底値のフラクタルが形成されます。さらに下落を続け、下部のフラクタルが形成されます。

その後、価格が上昇し、新たに下降し、上部のフラクタルが形成されます。

相場は後退し、再び底値のフラクタルが形成されますが、これは前回の底値のフラクタルより高い位置にあります。

このとき、価格は前回の上段フラクタルをブレイクし、有効なブレイクロング条件となります。

PS 新たな下降線と上限線が形成されたが、下降線が引き続き高値を更新している場合、新たなブレイクポイントは直近の上限線となる。

PPS 下部のフラクタルが形成され始めたら、条件はリセットされ、上記の条件またはその逆条件でブレイクのショートを検証し続ける。

乾杯

アーロン

 

また、具体的にどのようなプログラミングのお手伝いが必要でしょうか?システム全体のプログラミングが必要ですか?

 

そのロジックの部分だけ。

ValidBuy = FALSEというboolがあるとします。

という条件ロジックが発生したら、それをTRUEに設定します。

配列の値を比較するのは配列だと思うのですが、配列のコーディングに関してはそれほど得意ではありません。

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

Aaron

 

配列を使う必要はありません。ただ、与えられたフラクタルのレベルを求める関数を 作成し、以下のように呼び出すことができます。

double fractal = FindFractal( 0, MODE_LOWER );[/CODE]

first parameter being number of fractal (0-last, 1-one before last, etc.) and second parameter telling if you want upper or lower fractal.

Then, you can code like this:

[CODE]double last_lower_fractal = FindFractal( 0, MODE_LOWER );

double previous_lower_fractal = FindFractal( 1, MODE_LOWER );

if( last_lower_fractal > previous_lower_fractal )

{

//we have found that most recent lower fractal is higher than its predecessor, do rest of your logic here.

}