アスク! - ページ 108

 
Dave137:
void TrailingPositions() {

double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {

pBid = MarketInfo(OrderSymbol(), MODE_BID);

//BreakEven routine

if (BreakEven>0) {

if ((pBid-OrderOpenPrice())>BreakEven*pp) {

if ((OrderStopLoss()-OrderOpenPrice())<0) {

ModifyStopLoss(OrderOpenPrice()+0*pp);

}

}

}

if (TrailingStop>0) {

if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS

ModifyStopLoss(pBid-TrailingStop_Over135*pp);

if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS

ModifyStopLoss(pBid-TrailingStop_Over90*pp);

if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS

ModifyStopLoss(pAsk+TrailingStop*pp);

return;

}

}

}

}

}[/PHP]

Three levels of Trailing Stop:

1) 75 Pips TS up to first 90 Pips Profit.

2) 55 Pips TS after 90 but only up to 135 pips profit.

3) 15 Pips TS after 135 pips profit.

The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.

I am not sure how to stop this from happening?? Please, I need your expertise!

Humbly,

Dave

例えば:[PHP]ts = pBid - TrailingStop_Over135*pp;

if (ts > OrderOpenPrice() && ts > OrderStopLoss())ModifyStopLoss(ts);

 

ヘルプを お願いします

私はあまりプログラマーではないので、この件でいくつかの援助をお願いしたいです。

よろしくお願いします。

また、今気づいたのですが、Ben Taylorという人が、coder's guruがプログラムしたものとほとんど同じように見えるEAを売っているのですが、もしかしたら、それは彼の顧客の一人なのかもしれませんね - 笑

もしそうでなければ、コーダーズグルにこのことを知らせるべきでしょう。

ファイル:
 
Michel:
必要であれば、まず午前8時より後であることを確認してください。
if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

Michelさん、こんにちは。

あなたのコードを参考にさせていただきました。

if(Hour() < 8) return;

私は以下のようにコードを修正しました。

if(Hour()>12) hr_x=1;

.....

.....

.....

.....

if(hr_x==1) signal=50;

でも、ヒストグラム・バーが全部50になってしまった!!!!

下のチャートを見てみると、"Hour" コマンドがそれを認識していないようです。

参考までに、私は30分足を使っているのですが、違うのでしょうか?1時間足に切り替えてみましたが、まだ問題は残っています。

if(Hour() < 8) return;" も試しましたが、全てのバーが消えてしまいました。

いろいろ試したのですが、まだうまくいきません。

もう一度アドバイスをお願いします。ありがとうございます。

ファイル:
untitled_5.jpg  115 kb
 
n3sve1k4s:
こんにちはcodersguruは、以下のインディケータにポップアップと矢印で信号を追加することができますか?

誰か信号を追加してくれませんか?

 

Michelさん、私のトリプル・トレーリング・ストップのコーディングに適切な修正を施していただきありがとうございました。 これで、私の新しいEAの作成に最終的な修正を加えることができると思います。 皆さんの寛大な知識なしには、この言語をプログラミングすることはできなかったでしょう。 私はこの言語について得た新しい情報をすべてノートに記録しています。 MT5が導入されたとき、コーディングが根本的に変わらないことを願っています。ありがとうございました。

デイブ

<<<

 
solamax:

私はあまりプログラマーではないので、どなたか私のコードを見て、どこが間違っているのか確認していただくことはできますか?

よろしくお願いします。

また、今気づいたのですが、Ben Taylorという人が、コーダーの第一人者がプログラムしたものとほとんど同じように見えるEAを売っているのですが、もしかしたら、それは彼のクライアントの一つかもしれません - 笑。

もしそうでないなら、コーダー・グルにこのことを知らせるべきでしょう。
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

もし私が問題点を指摘するならば、それは上記のコードでしょう。 買いと売りのクロスオーバーが必要です。

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-バック

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-Back(買い戻し)

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; // 適切な'UP'クロスオーバーが発生した!

if(Sell1_1Buy2_2) Then Sell; // 適切な「下降」クロスオーバーが発生しました!

デイブ

 

これはあなたが探しているものとはちょっと違いますが、とにかく見てみてください。 別のグラフに貼り付けると、EAが動作しているグラフのすべての利益、損失をモニターすることができます。

 

Dave - あなたは天の恵みです:)

Dave137:
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

もし私が問題点を指摘するならば、それは上記のコードでしょう。 買いと売りのクロスオーバーが必要です。

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-バック

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-Back(買い戻し)

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current +1); //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy; // 適切な'UP'クロスオーバーが発生した!

if(Sell1_1Buy2_2) Then Sell; //適切な「下降」クロスオーバーが発生した!

デイブ

本当にありがとうございます。

 

コーディングのヘルプが必要です

どんな助けでも感謝します...

これは、取引終了ルーチンのコンポーネントとしてEAで使用されます。

私は常に口座の最も高い履歴残高を返す変数を作成する必要があります。これは、配列が必要だと思います?

現実的には、次のような文言になります。"私のオープン利益が口座の史上最高残高よりもX-pips高い場合、すべてのトレードを閉じる。"

誰かが変数で助けることができれば、私は残りの部分をコーディングすることができると思います。

事前にありがとうございます。

 

ご返答ありがとうございます。しかし、おっしゃる通り、私が求めているものとは違います。

私はまだこの問題に対処するためのコードを熟知していません。

口座残高の「ハイウォーターマーク」を返すコードが必要なのです。

ありがとうございます。

Dave137:
これはあなたが探しているものとは全く違いますが、とにかく目を通してみてください。 別のグラフに貼り付けると、EAが動作しているグラフのすべての利益、損失をモニターすることができます。