MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1926

 
Maxim Kuznetsov #:

プログレッションタイプのレベル、ストップロスがあるかもしれない」レベルを描く(まあ、マッピングする)ことは、一般的に言って非常に簡単である。しかし、WHYはあまり明確ではありません。

お客さまに、何を求めているのか、具体的に聞いてみなかったのでしょうか。

PS / そして、そう、「クリエイティブ・ポーズ」を取らなければならない、その状況はお客様にもご理解いただけると思います。

1週間以上考えて、決まったそうです。

もともとは違っていて、手渡しだったのですが、1週間の間を置いて、その工夫を報告しました。課題が完了したのは理解できますが、当初のTORに含まれていないとはいえ、なぜかお客様を残していくのは違和感があります。

私のリクエストはまだ有効です

 
Vitaly Muzichenko #:

1週間以上考え、決定した。

もともとは違うもの、それが手渡されたのだが、1週間の間を置いて、その工夫を報告したのである。課題が完了したのは理解できますが、当初のToRに含まれていないとはいえ、なぜかお客様を残していくのは違和感があります。

私のリクエストは有効です

落ち着け、ヴィタリー、何の依頼だ?

EAを編集するにはどうしたらいいのでしょうか? コードがなく、編集する場所がありません。このスレッドでフリーランスの順番を訂正するのはちょっと違うし。一般に、両者とも

void OnStopLoss() {

    // some code placed here

}

は役に立ちそうにありません。

 
Maxim Kuznetsov #:

落ち着いてください、ヴィタリィさん。

EAを編集するには? コードがなく、編集する場所がない。このスレッドでフリーランスの順番を訂正するのはちょっと違うし。一般に、両者とも

void OnStopLoss() {

    // some code placed here

}

はほとんど役に立ちません。

EAというより、1つのチャートにぶら下がってすべてのシンボルを追跡する独立したトローリングです。

コードの肥大化が激しい

 
Vitaly Muzichenko #:

ポジションとストップロスがついています。

設定上、トロールは30です。だから、トロールが発動するレベルのラインを表示することで、7ラインすべてを表示する。30-60-90-120-150-180-210、プログレッションのようなものです。

30を過ぎてラインに到達すると、トロールは建値のレベルまでストップを移動させ、60に到達すると、建値から+30、つまり最初のストップが発動したレベルまでストップを移動させる、などです。

チャートの線を制御したいのだと思いますが、これはもっと複雑なので、簡略化する必要があります。

あるいは、レベルに関する7つのパラメータを設定に入れる。

P.S. インターネットが使えなくなったので、長文の返信で申し訳ありません。

7パラメータはオプションではありません)それが描画され、パラメータに水平線の7つの名前。そして、その中から踊っていく。そして、もしパラメータ、値動きの範囲とレベルの数。計算する、描くさて、レベルがトリガーされると、SLラインを引き、SLが価格水準と一致すると、その色が変わるはずです。
 
Valeriy Yastremskiy #:
7 パラメータはオプションではありません)パラメータに描画する水平線の名前を7つ、名前を 付けます。そして、そこから先に進むべきです。そして、もしパラメータ、値動きの範囲とレベルの数。計算する、描くさて、レベルがトリガーされると、SLラインを引き、SLが価格水準と一致すると、その色が変わるはずです。

計算された価格に線を引くアルゴリズムが必要な感じですね。

すべてのポジションがクローズされたら、削除する必要があります。

 
Valeriy Yastremskiy #:
7パラメータはオプションではありません)それが描画され、パラメータに水平線の7つの名前。そして、彼らから踊らされるべきなのです。パラメータがある場合、値動きの範囲とレベル数。計算する、描くさて、レベルがトリガーされると、SLラインを引き、SLが価格水準と一致すると、その色が変わるはずです。

明確にすること。

В настройках трал 30. Значит показать линии на уровнях, где сработают тралы, и так все 7 линий: 30-60-90-120-150-180-210, типа прогрессии.

Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60, переводит стопы на +30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.

コードを変える、線を引く、それ以外は何もしない。


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

 
こんにちは。まあ、市場の専門家をアップロードしようとしている、初心者に助言する。エラー "Error!アップロードされたファイルの種類が違います......ex4 - スクリプトです。
あなたの製品カテゴリ - エキスパート、それに適したプログラムタイプ - エキスパート」 しかし、それはエキスパートなのです!どこを掘ればいいんだ?2日前から苦労しています。
 
Vycheslav Vyrikov #:
午後さて、初心者にアドバイスをお願いします。私はExpert Advisorをマーケットにアップロードしようとしています。エラー "Error!読み込まれたファイルの種類が違います, ....ex4 - スクリプト.
あなたの製品カテゴリ - エキスパート、それに適したプログラムタイプ - エキスパート」 しかし、それはエキスパートなのです!どこを掘ればいいんだ?2日前から苦労して います。

スタンダードハンドラーに向かって掘り進んでください。

そこはOnStart() ではなく、start()なのでは?

Документация по MQL5: Обработка событий / OnStart
Документация по MQL5: Обработка событий / OnStart
  • www.mql5.com
OnStart - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko #:

計算された価格に線を引くアルゴリズムが必要な感じですね。

すべてのポジションが終了したら、削除する必要があります。

double sumLots[2]=0,weight[2]=0;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;

   // тут всякие прочии фильтры

   DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера

   // расчёт общих позиций

   int type=OrderType();

   sumLots[type]+=OrderLots();

   weight[type]+=OrderLots()*OrderOpenPrice();

}

double avg[3]; // общии позиции

if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY]; 

if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL]; 

// совокупная позиция

int posType; // тип

double posPrice; // цена

double posLots; // объём

if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }

else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }

DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY

DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL

DrawPriceLevels(posType,posPrice); // уровни общей позиции

水平レベルの名前には、チケット番号を追加してください。時々(必要な場合)チェックする - チケットが市場にない場合、その名前を持つすべてのレベルを削除する必要があります。

 
Artyom Trishkin #:

スタンダードハンドラーに向かって掘り進んでください。

そこはOnStart() ではなく、start()なのでは?

アルチョムはもう疲れてしまって、自分で不正確なことを言い始めていますね。Vyacheslav がロードしようとしている Expert Advisor の場合、イベント処理関数はOnTick() であるべきです。