トロールはいずれにしても位置を区別する必要があるので、オーダーに異なる魔法を割り当てて、異なる魔法を持つ2つのトロールを設定することができるのです。
それとも、EAにトロールコードを埋め込むべきでしょうか?その場合でも、注文に異なるマジックナンバーを割り当てて、2つのマジックシンボルにトレール機能を重複させる必要があります。IMHO
いずれにせよ、トロールはポジションを区別する必要があるので、オーダーに異なる魔法を割り当てて、異なる魔法を持つ2つのトロールを設定することも可能です。
コード上ではどのように見えるのでしょうか?
は、各ポジションに別々のトロールがあるのでしょうか?
6~8ポジションある場合は?
本当にシンプルにすることは不可能なのでしょうか?
トロールはEAにある
コード上ではどのように見えるのでしょうか? 各ポジションごとに新しいマジックを書くことは可能でしょうか?
は、各ポジションに別々のトロールがあるのでしょうか?
6~8ポジションある場合は?
もっとシンプルにできないものか。
ポジションがたくさんある場合、それぞれのトロールを別々にするのは難しいですね、そうですね。一度に2つのポジションがあれば、私的には問題ないです。
もっとシンプルにできるかもしれませんが、オーダーの違いによるトロールの差はどうすればいいのでしょうか?
EAでトロールを無効にし、内蔵のトロールを使用すると、各ポジションに別々のトロールが存在します。
洒落にならない
//--------------------------------------------------------------- 1 -- // Функция модификации StopLoss всех ордеров указанного типа // Глобальные переменные: // Mas_Ord_New Массив ордеров последний известный // int TralingStop Значение TralingStop(количество пунктов) //--------------------------------------------------------------- 2 -- int Tral_Stop(int Tip) { int Ticket; // Номер ордера double Price, // Цена открытия рыночного ордера TS, // TralingStop (относит.знач.цены) SL, // Значение StopLoss ордера TP; // Значение TakeProfit ордера bool Modify; // Признак необходимости модифи. //--------------------------------------------------------------- 3 -- for(int i=1;i<=Mas_Ord_New[0][0];i++) // Цикл по всем ордерам { // Ищем ордера задан. типа if (Mas_Ord_New[i][6]!=Tip) // Если это не наш тип.. continue; //.. то переступим ордер Modify=false; // Пока не назначен к модифи Price =Mas_Ord_New[i][1]; // Цена открытия ордера SL =Mas_Ord_New[i][2]; // Значение StopLoss ордера TP =Mas_Ord_New[i][3]; // Значение TakeProft ордера Ticket=Mas_Ord_New[i][4]; // Номер ордера if (TralingStop<Level_new) // Если меньше допустимого.. TralingStop=Level_new; // .. то допустимый TS=TralingStop*Point; // То же в относит.знач.цены //--------------------------------------------------------- 4 -- switch(Tip) // Переход на тип ордера { case 0 : // Ордер Buy if (NormalizeDouble(SL,Digits)<// Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits)) { // ..то модифицируем его: SL=Bid-TS; // Новый его StopLoss Modify=true; // Назначен к модифи. } break; // Выход из switch case 1 : // Ордер Sell if (NormalizeDouble(SL,Digits)>// Если выше желаемого.. NormalizeDouble(Ask+TS,Digits)|| NormalizeDouble(SL,Digits)==0)//.. или нулевой(!) { // ..то модифицируем его SL=Ask+TS; // Новый его StopLoss Modify=true; // Назначен к модифи. } } // Конец switch if (Modify==false) // Если его не надо модифи.. continue; // ..то идём по циклу дальше bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Модифицируем его! //--------------------------------------------------------- 5 -- if (Ans==false) // Не получилось :( { // Поинтересуемся ошибками: if(Errors(GetLastError())==false)// Если ошибка непреодолимая return; // .. то уходим. i--; // Понижение счётчика } } return; // Выход из пользов. функции } //--------------------------------------------------------------- 6 --トロールコード
そうですね......各オーダーに順番に新しいマジックを割り当てて、オーダーごとに別のタイプ関数を作ってはどうかと思うくらいです。
//--------------------------------------------------------------- 1 -- // Функция модификации StopLoss всех ордеров указанного типа // Глобальные переменные: // Mas_Ord_New Массив ордеров последний известный // int TralingStop_1 Значение TralingStop(количество пунктов) //--------------------------------------------------------------- 2 -- int Tral_Stop(int Tip) { int Ticket; // Номер ордера double Price, // Цена открытия рыночного ордера TS, // TralingStop (относит.знач.цены) SL, // Значение StopLoss ордера TP; // Значение TakeProfit ордера bool Modify; // Признак необходимости модифи. //--------------------------------------------------------------- 3 -- if(OrderMagicNumber() == magic_1){ for(int i=1;i<=Mas_Ord_New[0][0];i++) // Цикл по всем ордерам { // Ищем ордера задан. типа if (Mas_Ord_New[i][6]!=Tip) // Если это не наш тип.. continue; //.. то переступим ордер Modify=false; // Пока не назначен к модифи Price =Mas_Ord_New[i][1]; // Цена открытия ордера SL =Mas_Ord_New[i][2]; // Значение StopLoss ордера TP =Mas_Ord_New[i][3]; // Значение TakeProft ордера Ticket=Mas_Ord_New[i][4]; // Номер ордера if (TralingStop<Level_new) // Если меньше допустимого.. TralingStop=Level_new; // .. то допустимый TS=TralingStop*Point; // То же в относит.знач.цены //--------------------------------------------------------- 4 -- switch(Tip) // Переход на тип ордера { case 0 : // Ордер Buy if (NormalizeDouble(SL,Digits)<// Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits)) { // ..то модифицируем его: SL=Bid-TS; // Новый его StopLoss Modify=true; // Назначен к модифи. } break; // Выход из switch case 1 : // Ордер Sell if (NormalizeDouble(SL,Digits)>// Если выше желаемого.. NormalizeDouble(Ask+TS,Digits)|| NormalizeDouble(SL,Digits)==0)//.. или нулевой(!) { // ..то модифицируем его SL=Ask+TS; // Новый его StopLoss Modify=true; // Назначен к модифи. } } // Конец switch if (Modify==false) // Если его не надо модифи.. continue; // ..то идём по циклу дальше bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Модифицируем его! //--------------------------------------------------------- 5 -- if (Ans==false) // Не получилось :( { // Поинтересуемся ошибками: if(Errors(GetLastError())==false)// Если ошибка непреодолимая return; // .. то уходим. i--; // Понижение счётчика } } return; // Выход из пользов. функции } } //--------------------------------------------------------------- 6 --
洒落にならない
安くて明るい。
各ポジションが独自のトロールを持つ場合、トロール変数の値は各ポジションで異なる必要があります。したがって、各トロールには変数があり、最大でいくつのポジションを持つことになるのでしょうか。
安かろう、悪かろう。
各ポジションが独自のトロールを持つ場合、トロール変数の値は各ポジションで異なるはずです。したがって、各トロールには変数があり、最大でいくつのポジションを持つことになるのでしょうか?
最大8ポジション

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
トロールを設定する、1つの位置で正常に動作する
が、複数のポジション、例えば2つの売りポジションがある場合
を同時に閉じます。
各ポジションに対して個別にトロールを行う必要があります。
手動で取引 する場合は可能です。つまり、1つのポジションにSell StopLoss
もう一方の売りポジションには別のStopLossが設定されています。
Googleは役に立たなかった