Yasunao Koyama / 프로필
- 정보
2 년도
경험
|
4
제품
|
0
데몬 버전
|
0
작업
|
0
거래 신호
|
0
구독자
|
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.52 → 1.53
Update: 「S/L設定値の計算モード(設定35)」に「3(残高に対する割合指定)」を指定し、取引中の複製元が複数ある場合、それぞれの複製元で許容する損失額は「口座残高を複製元の総数で割った金額」からの割合指定を行うように変更した。これまでは「単一の複製元だけで、許容損失額を使い切る」形になっていたものを、「それぞれの複製元毎に、同一額の許容損失額を確保する」形に変わることになる。設定値「2(金額指定)」では、従来通り「複製元1件毎の許容損失額」を指定する形から変更はない。
Update: 「ファイル出力処理」において、履歴ファイルの出力内容に「注文数量合計(LotSum)」を追加した。
Update: 「トレイリングストップ処理」にて、設定値に到達して価格ロックに成功した場合、価格情報とあわせてターミナルログに出力するようにしました。この通知は、「通知出力モード(設定99)」で「6~7または14~15」を指定している場合に限り、複製元毎に1回のみ行われます。
Update: 「指値間隔・増倍率自動制御(設定37)」が有効な場合に、複製作成段数の動作値と最大値をターミナルログへ出力するようにしました。また、ファイル出力が有効な場合に定期的に出力される対象に、設定値出力(Config_DoublePush.txt)を追加しました(「通知出力モード(設定99)」に「8以上」を指定した場合にのみ、ファイル出力は行われます)
Bugfix: 「指値間隔・増倍率自動制御(設定37)」有効時、EA起動時に「取引中の注文」がなく、制御情報の導出に取引履歴が用いられた場合に、手数料とSwap損益の計算が過大になってしまうことがあった点を修正した。
Bugfix: 「複製注文の最大段数(設定20)」の動作値が「29以上」の場合に、異常終了することがあった点を修正した。
Bugfix: 「ロットサイズ増倍率(設定29)」と「複製先の指値間隔下限(設定40)」の説明文に誤字があった点を修正した。
Bugfix: 「指値間隔・増倍率自動制御(設定37)」を有効にしていて、複数の通貨ペアを取引している場合に、通貨ペアの組み合わせによっては動作値が安定しないことがあった点を修正した。この修正により、設定37による自動計算の影響を受ける「複製注文の最大段数(設定20)」、「複製先の指値間隔(設定24)」、「ロットサイズ増倍率(設定29)」について、通貨ペア毎に個別の動作値が保持されるようになる(基準値は従来通り、共通で適用される)。それぞれの動作値は、ターミナルログと設定情報ファイルに表示される。
Bugfix: 「ファイル出力処理」において、口座通貨種別が「JPY」の場合に、設定情報ファイルの内容で「目標利幅(設定25)」の出力値が設定値の100倍になっていた点を修正した。また、出力値の記述に口座通貨種別を付記するようにした。
ver1.52 → 1.53
Update: When 'Calculation mode of S/L set value (setting 35)' is set to '3 (total allowable loss for the account balance)' and there are multiple replication sources in the transaction, the allowable loss amount of each replication source is changed to specify the ratio from 'the amount obtained by dividing the account balance by the total number of replication sources'. The conventional form of 'using up the allowable loss amount only by a single replication source' will be changed to the form of 'securing the same allowable loss amount for each replication source'. In the setting value '2 (total allowable loss)', there is no change from the form of specifying the 'allowable loss amount for each replication source' as before.
Update: 'Total order quantity (LotSum)' was added to the output content of the history file in 'File output processing'.
Update: In 'Trailing Stop Processing', when the set value is reached and the price is successfully locked, it is output to the terminal log together with the price information. This notification is made only once for each replication source only when '6-7 or 14-15' is specified in 'Notification output mode (setting 99)'.
Update: When 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled, the operation value and the maximum value of the number of replication tier are output to the terminal log. In addition, the setting value output (Config_DoublePush.txt) has been added to the target that is periodically output when file output is enabled (file output is performed only when '8 or more' is specified in 'Notification output mode (setting 99)').
Bugfix: When 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled, if there is no 'order in progress' at the time of starting EA and transaction history is used to derive control information, the calculation of commission and swap profit / loss sometimes becomes excessive. This has been corrected.
Bugfix: Corrected a problem that an abnormal termination sometimes occurred when the operation value of 'Maximum number of replication orders tiers (setting 20)' is "29 or more".
Bugfix: The description of 'Lot size growth factor (setting 29)' and 'Lower limit of the bid-ask interval of the duplicate order (setting 40)' was corrected for misspelling.
Bugfix: When 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled and multiple currency pairs are traded, the action value may not be stable depending on the combination of currency pairs. With this correction, individual action values are held for each currency pair for 'Maximum number of replication orders tiers (setting 20),' 'Replication target limit interval (setting 24),' and 'Lot size growth factor (setting 29),' which are affected by the automatic calculation by setting 37 (the reference value is applied commonly as before). Each action value is displayed in the terminal log and the configuration information file.
Bugfix: In the 'file output processing', the point that the output value of the 'Target Profit Margin (minimum lot, account currency) (setting 25)' in the content of the setting information file was 100 times the set value when the account currency type was 'JPY' was corrected, and the account currency type was added to the description of the output value.
Update: 「S/L設定値の計算モード(設定35)」に「3(残高に対する割合指定)」を指定し、取引中の複製元が複数ある場合、それぞれの複製元で許容する損失額は「口座残高を複製元の総数で割った金額」からの割合指定を行うように変更した。これまでは「単一の複製元だけで、許容損失額を使い切る」形になっていたものを、「それぞれの複製元毎に、同一額の許容損失額を確保する」形に変わることになる。設定値「2(金額指定)」では、従来通り「複製元1件毎の許容損失額」を指定する形から変更はない。
Update: 「ファイル出力処理」において、履歴ファイルの出力内容に「注文数量合計(LotSum)」を追加した。
Update: 「トレイリングストップ処理」にて、設定値に到達して価格ロックに成功した場合、価格情報とあわせてターミナルログに出力するようにしました。この通知は、「通知出力モード(設定99)」で「6~7または14~15」を指定している場合に限り、複製元毎に1回のみ行われます。
Update: 「指値間隔・増倍率自動制御(設定37)」が有効な場合に、複製作成段数の動作値と最大値をターミナルログへ出力するようにしました。また、ファイル出力が有効な場合に定期的に出力される対象に、設定値出力(Config_DoublePush.txt)を追加しました(「通知出力モード(設定99)」に「8以上」を指定した場合にのみ、ファイル出力は行われます)
Bugfix: 「指値間隔・増倍率自動制御(設定37)」有効時、EA起動時に「取引中の注文」がなく、制御情報の導出に取引履歴が用いられた場合に、手数料とSwap損益の計算が過大になってしまうことがあった点を修正した。
Bugfix: 「複製注文の最大段数(設定20)」の動作値が「29以上」の場合に、異常終了することがあった点を修正した。
Bugfix: 「ロットサイズ増倍率(設定29)」と「複製先の指値間隔下限(設定40)」の説明文に誤字があった点を修正した。
Bugfix: 「指値間隔・増倍率自動制御(設定37)」を有効にしていて、複数の通貨ペアを取引している場合に、通貨ペアの組み合わせによっては動作値が安定しないことがあった点を修正した。この修正により、設定37による自動計算の影響を受ける「複製注文の最大段数(設定20)」、「複製先の指値間隔(設定24)」、「ロットサイズ増倍率(設定29)」について、通貨ペア毎に個別の動作値が保持されるようになる(基準値は従来通り、共通で適用される)。それぞれの動作値は、ターミナルログと設定情報ファイルに表示される。
Bugfix: 「ファイル出力処理」において、口座通貨種別が「JPY」の場合に、設定情報ファイルの内容で「目標利幅(設定25)」の出力値が設定値の100倍になっていた点を修正した。また、出力値の記述に口座通貨種別を付記するようにした。
ver1.52 → 1.53
Update: When 'Calculation mode of S/L set value (setting 35)' is set to '3 (total allowable loss for the account balance)' and there are multiple replication sources in the transaction, the allowable loss amount of each replication source is changed to specify the ratio from 'the amount obtained by dividing the account balance by the total number of replication sources'. The conventional form of 'using up the allowable loss amount only by a single replication source' will be changed to the form of 'securing the same allowable loss amount for each replication source'. In the setting value '2 (total allowable loss)', there is no change from the form of specifying the 'allowable loss amount for each replication source' as before.
Update: 'Total order quantity (LotSum)' was added to the output content of the history file in 'File output processing'.
Update: In 'Trailing Stop Processing', when the set value is reached and the price is successfully locked, it is output to the terminal log together with the price information. This notification is made only once for each replication source only when '6-7 or 14-15' is specified in 'Notification output mode (setting 99)'.
Update: When 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled, the operation value and the maximum value of the number of replication tier are output to the terminal log. In addition, the setting value output (Config_DoublePush.txt) has been added to the target that is periodically output when file output is enabled (file output is performed only when '8 or more' is specified in 'Notification output mode (setting 99)').
Bugfix: When 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled, if there is no 'order in progress' at the time of starting EA and transaction history is used to derive control information, the calculation of commission and swap profit / loss sometimes becomes excessive. This has been corrected.
Bugfix: Corrected a problem that an abnormal termination sometimes occurred when the operation value of 'Maximum number of replication orders tiers (setting 20)' is "29 or more".
Bugfix: The description of 'Lot size growth factor (setting 29)' and 'Lower limit of the bid-ask interval of the duplicate order (setting 40)' was corrected for misspelling.
Bugfix: When 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled and multiple currency pairs are traded, the action value may not be stable depending on the combination of currency pairs. With this correction, individual action values are held for each currency pair for 'Maximum number of replication orders tiers (setting 20),' 'Replication target limit interval (setting 24),' and 'Lot size growth factor (setting 29),' which are affected by the automatic calculation by setting 37 (the reference value is applied commonly as before). Each action value is displayed in the terminal log and the configuration information file.
Bugfix: In the 'file output processing', the point that the output value of the 'Target Profit Margin (minimum lot, account currency) (setting 25)' in the content of the setting information file was 100 times the set value when the account currency type was 'JPY' was corrected, and the account currency type was added to the description of the output value.
소셜 네트워크에 공유 · 1
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.51 → 1.52
update: 「複製注文の最大段数(設定20)」の上限値を、「30 → 75」に拡大した。また、「指値間隔・増倍率自動制御(設定37)」が有効な場合、「開始価格最大幅(設定39)/指値最小間隔(設定40)」が最大段数として適用されるようにした。これに伴い、「設定20」と「設定37~40」の説明文を修正した。
update: 「トレイリングストップ処理」にて、価格ロック発動後に同一の複製元で注文毎にS/L設定値がずれており、「一番利益側に寄せた値」では更新できない場合、市場価格とS/L再設定値の価格差を「最小価格変動幅の11倍」で再設定するようにした(「再設定前のS/L設定値より利益側に寄せた値」で更新する場合に限る)
update: 「OnTick監視」(設定97)有効時、「複製先の開始価格を超えて下落した、未開始の注文」が発生した際、注文削除を試みるかどうかを選べるようにしました。ver1.46から「常時有効」になっていたこの処理について、実行の要否を「設定41」で選択できます。
update: 「自動再発注処理」にて、前回決済が「損失を伴うsl決済」の場合に、「時間経過による自動再発注処理の再開」予定時刻をターミナルログへ出力するようにした。
bugfix: 「複製先の指値間隔(設定24)」の説明文に誤字があった点を修正した。
bugfix: 「目標値計算処理」にて、損益分界点の導出に「複製元のSwap損益」が算入されていなかった点を修正した。また、ファイル出力時の「複製先一覧」(StageTbl_*.txt)での、複製元(Copy/Keep Status str:source)の情報が更新されていなかった点を修正した。
bugfix: 「自動再発注処理」にて、前回決済が「損失を伴うsl決済」の場合に、「時間経過による自動再発注処理の再開」が行われない問題を修正した。これまでは、EAの再起動または設定値変更操作が必要になってしまっていた。
bugfix: 「トレイリングストップ処理」にて、「時間帯制御による設定値自動補正(設定53)」が動作している時間帯にのみ適用されるT/P設定値が、トレイリングストップ非動作時のままになっていた点を修正した。これにより、トレイリングストップ動作が一度でも開始されると、T/P設定値は「市場価格より、設定51指定値だけ利益側」を保持しようと試み続ける(「トレイリングストップ動作時のT/P値指定(設定52)」が有効な場合に限る)。S/L設定値は、動作開始後は「市場価格より設定51指定値だけ損失側。ただし、動作開始後の最高値に限る」であり続けようとする。
bugfix: 「トレイリングストップ処理」にて、「時間帯制御による設定値自動補正(設定53)」が動作している時間帯にトレイリングストップ処理が始まった場合、常時発動させるはずの価格ロック動作が、動作しない場合があった点を修正した。
ver1.51 → 1.52
update: The upper limit of the 'Maximum number of replication orders tiers (setting 20)' has been expanded from 30 to 75. In addition, when the 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled, the 'Upper limit of the starting price difference between the maximum tier and the source (setting 39) divided by the Lower limit of the bid-ask interval of the duplicate order (setting 40)' is applied as the maximum tier of orders. Accordingly, the descriptions of 'setting 20' and 'settings 37 to 40' have been revised.
update: In the 'Trailing Stop Processing', if the S/L setting value differs for each order at the same replication source after the price lock is activated and cannot be updated at the 'value closest to the profit side', the price difference between the market price and the S/L reset value is reset at '11 times the minimum price fluctuation range' (limited to the case of updating at the 'value closer to the profit side than the S/L setting value before resetting').
update: When 'Each time a Tick is received, the order count and status are queried' (Setting 97) is enabled, you can now choose whether or not to attempt to delete orders when 'unstarted orders that have fallen below the starting price of the replication' occur. For this process, which has been 'always enabled' since ver1.46, you can choose whether or not to execute it in 'Setting 41'.
update: In the 'Automatic Reorder Processing', when the previous settlement is 'S/L settlement with loss', the scheduled time of 'restart of automatic reorder processing due to the passage of time' is output to the terminal log.
bugfix: The error in the description of 'Replication target limit interval (setting 24)' was corrected.
bugfix: In the 'Target value calculation Processing', the point that the 'Swap profit / loss of the replication source' was not included in the derivation of the profit / loss demarcation point was corrected, and the point that the information of the replication source (Copy/Keep Status str:source) was not updated in the 'replication list' (StageTbl_*.txt) at the time of file outputting was corrected.
bugfix: The problem that 'automatic reorder processing' does not resume 'automatic reorder processing over time' when the previous settlement is 'S/L settlement with loss' has been corrected. Until now, it was necessary to restart the EA or change the setting value.
bugfix: In the 'Trailing Stop Processing', the point that the T/P set value applied only in the time zone in which the 'Automatic compensation of operation set value in TrailingStop (setting 53)' is operated remained at the time when the trailing stop is not operated was corrected. As a result, when the trailing stop operation is started even once, the T/P set value continues to attempt to hold the 'profit side from the market price by the setting 51 designated value' (limited to the case where the 'T/P value designation in TrailingStop (setting 52)' is valid). After the start of the operation, the S/L set value continues to be the 'loss side from the market price by the setting 51 designated value. However, it is limited to the maximum value after the start of the operation'.
bugfix: In the 'Trailing Stop Processing', if the trailing stop processing is started in the time zone when the 'Automatic compensation of operation set value in TrailingStop (setting 53)' is operating, the price lock operation, which should be activated all the time, may not operate. This point has been corrected.
update: 「複製注文の最大段数(設定20)」の上限値を、「30 → 75」に拡大した。また、「指値間隔・増倍率自動制御(設定37)」が有効な場合、「開始価格最大幅(設定39)/指値最小間隔(設定40)」が最大段数として適用されるようにした。これに伴い、「設定20」と「設定37~40」の説明文を修正した。
update: 「トレイリングストップ処理」にて、価格ロック発動後に同一の複製元で注文毎にS/L設定値がずれており、「一番利益側に寄せた値」では更新できない場合、市場価格とS/L再設定値の価格差を「最小価格変動幅の11倍」で再設定するようにした(「再設定前のS/L設定値より利益側に寄せた値」で更新する場合に限る)
update: 「OnTick監視」(設定97)有効時、「複製先の開始価格を超えて下落した、未開始の注文」が発生した際、注文削除を試みるかどうかを選べるようにしました。ver1.46から「常時有効」になっていたこの処理について、実行の要否を「設定41」で選択できます。
update: 「自動再発注処理」にて、前回決済が「損失を伴うsl決済」の場合に、「時間経過による自動再発注処理の再開」予定時刻をターミナルログへ出力するようにした。
bugfix: 「複製先の指値間隔(設定24)」の説明文に誤字があった点を修正した。
bugfix: 「目標値計算処理」にて、損益分界点の導出に「複製元のSwap損益」が算入されていなかった点を修正した。また、ファイル出力時の「複製先一覧」(StageTbl_*.txt)での、複製元(Copy/Keep Status str:source)の情報が更新されていなかった点を修正した。
bugfix: 「自動再発注処理」にて、前回決済が「損失を伴うsl決済」の場合に、「時間経過による自動再発注処理の再開」が行われない問題を修正した。これまでは、EAの再起動または設定値変更操作が必要になってしまっていた。
bugfix: 「トレイリングストップ処理」にて、「時間帯制御による設定値自動補正(設定53)」が動作している時間帯にのみ適用されるT/P設定値が、トレイリングストップ非動作時のままになっていた点を修正した。これにより、トレイリングストップ動作が一度でも開始されると、T/P設定値は「市場価格より、設定51指定値だけ利益側」を保持しようと試み続ける(「トレイリングストップ動作時のT/P値指定(設定52)」が有効な場合に限る)。S/L設定値は、動作開始後は「市場価格より設定51指定値だけ損失側。ただし、動作開始後の最高値に限る」であり続けようとする。
bugfix: 「トレイリングストップ処理」にて、「時間帯制御による設定値自動補正(設定53)」が動作している時間帯にトレイリングストップ処理が始まった場合、常時発動させるはずの価格ロック動作が、動作しない場合があった点を修正した。
ver1.51 → 1.52
update: The upper limit of the 'Maximum number of replication orders tiers (setting 20)' has been expanded from 30 to 75. In addition, when the 'Automatic control of Interval and Multiplication factor (setting 37)' is enabled, the 'Upper limit of the starting price difference between the maximum tier and the source (setting 39) divided by the Lower limit of the bid-ask interval of the duplicate order (setting 40)' is applied as the maximum tier of orders. Accordingly, the descriptions of 'setting 20' and 'settings 37 to 40' have been revised.
update: In the 'Trailing Stop Processing', if the S/L setting value differs for each order at the same replication source after the price lock is activated and cannot be updated at the 'value closest to the profit side', the price difference between the market price and the S/L reset value is reset at '11 times the minimum price fluctuation range' (limited to the case of updating at the 'value closer to the profit side than the S/L setting value before resetting').
update: When 'Each time a Tick is received, the order count and status are queried' (Setting 97) is enabled, you can now choose whether or not to attempt to delete orders when 'unstarted orders that have fallen below the starting price of the replication' occur. For this process, which has been 'always enabled' since ver1.46, you can choose whether or not to execute it in 'Setting 41'.
update: In the 'Automatic Reorder Processing', when the previous settlement is 'S/L settlement with loss', the scheduled time of 'restart of automatic reorder processing due to the passage of time' is output to the terminal log.
bugfix: The error in the description of 'Replication target limit interval (setting 24)' was corrected.
bugfix: In the 'Target value calculation Processing', the point that the 'Swap profit / loss of the replication source' was not included in the derivation of the profit / loss demarcation point was corrected, and the point that the information of the replication source (Copy/Keep Status str:source) was not updated in the 'replication list' (StageTbl_*.txt) at the time of file outputting was corrected.
bugfix: The problem that 'automatic reorder processing' does not resume 'automatic reorder processing over time' when the previous settlement is 'S/L settlement with loss' has been corrected. Until now, it was necessary to restart the EA or change the setting value.
bugfix: In the 'Trailing Stop Processing', the point that the T/P set value applied only in the time zone in which the 'Automatic compensation of operation set value in TrailingStop (setting 53)' is operated remained at the time when the trailing stop is not operated was corrected. As a result, when the trailing stop operation is started even once, the T/P set value continues to attempt to hold the 'profit side from the market price by the setting 51 designated value' (limited to the case where the 'T/P value designation in TrailingStop (setting 52)' is valid). After the start of the operation, the S/L set value continues to be the 'loss side from the market price by the setting 51 designated value. However, it is limited to the maximum value after the start of the operation'.
bugfix: In the 'Trailing Stop Processing', if the trailing stop processing is started in the time zone when the 'Automatic compensation of operation set value in TrailingStop (setting 53)' is operating, the price lock operation, which should be activated all the time, may not operate. This point has been corrected.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.50 → 1.51
update: 「トレイリングストップ処理」にて、「設定値自動補正(設定53)」有効時の動作について、「自動再発注の時間帯制御(設定11)と自動決済(設定18)が有効な場合に限る」という条件を撤廃した。スケジュール設定そのものは、引き続き「設定11」と共通となるが、無料版でも自動補正の機能が利用可能となる。動作自体は「設定11」と「設定53」とで排他利用となるため、「設定53のみの有効化」においては、スケジュールファイルでは「自動補正を行わない時間帯と通貨ペア」として記述することになる。スケジュールファイルは、「設定11」または「設定53」のいずれかを有効化した時点で未作成の場合に限り、初期値のものが生成されるが、初期値のままでは「設定53による自動補正動作」は実行されない。
update: 「目標値更新処理」および「トレイリングストップ処理」にて、設定値の更新に失敗した際、複製元の決済状態を検出するようにした。「複製元が決済済」の場合に更新処理を中止することで、エラーメッセージの発生数が減り、「複製元の消失に伴う自動再発注・決済・削除処理」を始めるまでの時間が短縮される。
update: 「目標値計算処理」にて、「取引開始済の段数最大値」よりも小さい段数で「取引未開始の注文予約」がある場合に、「小さい段数での未開始の注文予約」を計算から除外するようにした。この除外は、「部分決済」を行った場合に発生する可能性があるが、これまで除外されていなかったため、損益分界点の導出にずれが発生することがあった。除外対象となった注文予約は「取引を開始した時点」で初めて計算に組み込まれるため、通常の段数進行時と同様に、取引開始前と開始後で損益分界点の導出結果が変動する。それに伴い、最大段数や「指値間隔・増倍率自動制御(設定37)」を有効にしている場合の「間隔および増倍率」に影響を及ぼす可能性がある。
update: 「トレイリングストップ処理」にて、「設定値自動補正(設定53)」有効時の動作について、価格ロック条件を変更した。「自動再発注時間帯制御(設定11)での許可時間帯範囲外において、トレイリングストップ動作を開始した後は、従来の価格ロック条件であった「S/L設定値が動作開始値に到達」を満たしていなくても価格ロックを行うようになる。
bugfix: 「指値間隔・増倍率自動制御(設定37)」を有効化した際、増倍率が指定値上限に到達していないときにも指値間隔が狭められてしまうことがある問題を修正した。これにあわせ、「最大段の開始価格」の下限値(設定38)と上限値(設定39)との間が狭すぎる場合に、「下限値+指値間隔(設定24)」を上限値として適用するように変更した。
bugfix: 「指値間隔・増倍率自動制御(設定37)」有効時、かつ売り注文実行中において、EA再起動が行われた場合に、指値間隔と増倍率に過大な値が設定されることがあった点を修正した。
bugfix: 「指値間隔・増倍率自動制御(設定37)」を有効化した状態でEAを起動した際、取引開始済の注文があった場合、起動直後に「本来不要であるはずの更新処理」が発生することがあった点を修正した。
bugfix: 「自動再発注処理」にて、複製元決済時の発動段数を超えた段数の「部分決済」が行われていた場合に、「部分決済の段数最大値」が「反転段数閾値(設定13)」に適用されておらず、「決済時の発動段数」が適用されていた点を修正した。この修正は、「取引方向反転段数自動制御(設定12)」で「2(発動段数累計で制御)」を指定していた場合にのみ影響する。
bugfix: 「目標値計算処理」にて、「手数料が発生する口座」において「手数料額(設定68)が0」に設定されていた場合に、目標値が正しく計算されていなかった点を修正した。
ver1.50 → 1.51
update: In 'Trailing Stop Processing', the condition that 'only when the time zone control of automatic reorder (setting 11) and automatic settlement (setting 18) are effective' is eliminated for the operation when 'automatic correction of set value (setting 53)' is effective. The schedule setting itself will continue to be common to 'setting 11', but the function of automatic correction will be available even in the free version. Since the operation itself is exclusively used by 'setting 11' and 'setting 53', in 'enabling only setting 53', it will be described as 'time zone and currency pair in which automatic correction is not performed' in the schedule file. The schedule file with the initial value is generated only when it is not created at the time when either 'setting 11' or 'setting 53' is enabled, but the 'automatic correction operation by setting 53' is not executed with the initial value.
update: When the 'target value update processing' and the 'trailing stop processing' fail to update the set value, the settlement status of the replication source is detected. By stopping the update processing when the 'replication source has settled,' the number of error messages generated is reduced, and the time until the 'automatic reordering, settlement, and deletion processing due to the loss of the replication source' is started is shortened.
update: In the 'target value calculation process,' if there is an 'order reservation that has not started trading' with the number of tiers smaller than the 'maximum number of tiers that has started trading,' the 'order reservation that has not started trading with the smaller number of tiers' is excluded from the calculation. This exclusion may occur when 'partial settlement' is performed, but since it has not been excluded until now, a gap may occur in the derivation of the profit-and-loss demarcation point. Since the order reservation that has been excluded is incorporated into the calculation only at the 'time when trading is started,' the derivation result of the profit-and-loss demarcation point varies before and after the start of trading, as in the case of normal progress of the number of tiers. Accordingly, the maximum number of tiers and the 'interval and multiplication factor' when the 'limit interval and multiplication factor automatic control (setting 37)' is enabled may be affected.
update: The price lock condition has been changed in the 'trailing stop processing' for the operation when the 'automatic correction of set value (setting 53)' is enabled. After the trailing stop operation is started outside the permitted time zone in the 'automatic reorder time zone control (setting 11)', the price lock is performed even if the 'S/L set value reaches the operation start value', which is the conventional price lock condition, is not satisfied.
bugfix: The problem that the limit interval is sometimes narrowed even when the multiplication factor does not reach the specified upper limit when 'automatic control of limit interval and multiplication factor (setting 37)' is enabled has been corrected. In accordance with this, the 'lower limit + limit interval (setting 24)' has been changed to be applied as the upper limit when the lower limit (setting 38) and the upper limit (setting 39) of the 'maximum starting price' are too narrow.
bugfix: Fixed that excessive values were sometimes set for the limit interval and multiplication factor when the EA was restarted while the 'Limit interval and multiplication factor automatic control (setting 37)' was enabled and a sell order was being executed.
bugfix: When EA was started with 'limit interval and multiplication factor automatic control (setting 37)' enabled, if there was an order that had already started trading, the 'update process that should be unnecessary' sometimes occurred right after the start. This has been corrected.
bugfix: The point that the 'maximum number of partial settlement tiers' was not applied to the 'reversal stage threshold (setting 13)' when the 'partial settlement' of the number of tiers exceeding the number of activation tiers at the time of the replication source settlement was performed in the 'automatic reorder processing' was corrected. Before the correction, the 'number of activation tiers at the time of settlement' was applied. This correction affects only when '2 (control by the cumulative number of activation tiers)' was specified in the 'automatic control of transaction direction reversal tier (setting 12)'.
bugfix: In the 'target value calculation process', the point that the target value was not calculated correctly when the 'fee amount (setting 68)' was set to 0 in the 'account in which the fee arises' was corrected.
update: 「トレイリングストップ処理」にて、「設定値自動補正(設定53)」有効時の動作について、「自動再発注の時間帯制御(設定11)と自動決済(設定18)が有効な場合に限る」という条件を撤廃した。スケジュール設定そのものは、引き続き「設定11」と共通となるが、無料版でも自動補正の機能が利用可能となる。動作自体は「設定11」と「設定53」とで排他利用となるため、「設定53のみの有効化」においては、スケジュールファイルでは「自動補正を行わない時間帯と通貨ペア」として記述することになる。スケジュールファイルは、「設定11」または「設定53」のいずれかを有効化した時点で未作成の場合に限り、初期値のものが生成されるが、初期値のままでは「設定53による自動補正動作」は実行されない。
update: 「目標値更新処理」および「トレイリングストップ処理」にて、設定値の更新に失敗した際、複製元の決済状態を検出するようにした。「複製元が決済済」の場合に更新処理を中止することで、エラーメッセージの発生数が減り、「複製元の消失に伴う自動再発注・決済・削除処理」を始めるまでの時間が短縮される。
update: 「目標値計算処理」にて、「取引開始済の段数最大値」よりも小さい段数で「取引未開始の注文予約」がある場合に、「小さい段数での未開始の注文予約」を計算から除外するようにした。この除外は、「部分決済」を行った場合に発生する可能性があるが、これまで除外されていなかったため、損益分界点の導出にずれが発生することがあった。除外対象となった注文予約は「取引を開始した時点」で初めて計算に組み込まれるため、通常の段数進行時と同様に、取引開始前と開始後で損益分界点の導出結果が変動する。それに伴い、最大段数や「指値間隔・増倍率自動制御(設定37)」を有効にしている場合の「間隔および増倍率」に影響を及ぼす可能性がある。
update: 「トレイリングストップ処理」にて、「設定値自動補正(設定53)」有効時の動作について、価格ロック条件を変更した。「自動再発注時間帯制御(設定11)での許可時間帯範囲外において、トレイリングストップ動作を開始した後は、従来の価格ロック条件であった「S/L設定値が動作開始値に到達」を満たしていなくても価格ロックを行うようになる。
bugfix: 「指値間隔・増倍率自動制御(設定37)」を有効化した際、増倍率が指定値上限に到達していないときにも指値間隔が狭められてしまうことがある問題を修正した。これにあわせ、「最大段の開始価格」の下限値(設定38)と上限値(設定39)との間が狭すぎる場合に、「下限値+指値間隔(設定24)」を上限値として適用するように変更した。
bugfix: 「指値間隔・増倍率自動制御(設定37)」有効時、かつ売り注文実行中において、EA再起動が行われた場合に、指値間隔と増倍率に過大な値が設定されることがあった点を修正した。
bugfix: 「指値間隔・増倍率自動制御(設定37)」を有効化した状態でEAを起動した際、取引開始済の注文があった場合、起動直後に「本来不要であるはずの更新処理」が発生することがあった点を修正した。
bugfix: 「自動再発注処理」にて、複製元決済時の発動段数を超えた段数の「部分決済」が行われていた場合に、「部分決済の段数最大値」が「反転段数閾値(設定13)」に適用されておらず、「決済時の発動段数」が適用されていた点を修正した。この修正は、「取引方向反転段数自動制御(設定12)」で「2(発動段数累計で制御)」を指定していた場合にのみ影響する。
bugfix: 「目標値計算処理」にて、「手数料が発生する口座」において「手数料額(設定68)が0」に設定されていた場合に、目標値が正しく計算されていなかった点を修正した。
ver1.50 → 1.51
update: In 'Trailing Stop Processing', the condition that 'only when the time zone control of automatic reorder (setting 11) and automatic settlement (setting 18) are effective' is eliminated for the operation when 'automatic correction of set value (setting 53)' is effective. The schedule setting itself will continue to be common to 'setting 11', but the function of automatic correction will be available even in the free version. Since the operation itself is exclusively used by 'setting 11' and 'setting 53', in 'enabling only setting 53', it will be described as 'time zone and currency pair in which automatic correction is not performed' in the schedule file. The schedule file with the initial value is generated only when it is not created at the time when either 'setting 11' or 'setting 53' is enabled, but the 'automatic correction operation by setting 53' is not executed with the initial value.
update: When the 'target value update processing' and the 'trailing stop processing' fail to update the set value, the settlement status of the replication source is detected. By stopping the update processing when the 'replication source has settled,' the number of error messages generated is reduced, and the time until the 'automatic reordering, settlement, and deletion processing due to the loss of the replication source' is started is shortened.
update: In the 'target value calculation process,' if there is an 'order reservation that has not started trading' with the number of tiers smaller than the 'maximum number of tiers that has started trading,' the 'order reservation that has not started trading with the smaller number of tiers' is excluded from the calculation. This exclusion may occur when 'partial settlement' is performed, but since it has not been excluded until now, a gap may occur in the derivation of the profit-and-loss demarcation point. Since the order reservation that has been excluded is incorporated into the calculation only at the 'time when trading is started,' the derivation result of the profit-and-loss demarcation point varies before and after the start of trading, as in the case of normal progress of the number of tiers. Accordingly, the maximum number of tiers and the 'interval and multiplication factor' when the 'limit interval and multiplication factor automatic control (setting 37)' is enabled may be affected.
update: The price lock condition has been changed in the 'trailing stop processing' for the operation when the 'automatic correction of set value (setting 53)' is enabled. After the trailing stop operation is started outside the permitted time zone in the 'automatic reorder time zone control (setting 11)', the price lock is performed even if the 'S/L set value reaches the operation start value', which is the conventional price lock condition, is not satisfied.
bugfix: The problem that the limit interval is sometimes narrowed even when the multiplication factor does not reach the specified upper limit when 'automatic control of limit interval and multiplication factor (setting 37)' is enabled has been corrected. In accordance with this, the 'lower limit + limit interval (setting 24)' has been changed to be applied as the upper limit when the lower limit (setting 38) and the upper limit (setting 39) of the 'maximum starting price' are too narrow.
bugfix: Fixed that excessive values were sometimes set for the limit interval and multiplication factor when the EA was restarted while the 'Limit interval and multiplication factor automatic control (setting 37)' was enabled and a sell order was being executed.
bugfix: When EA was started with 'limit interval and multiplication factor automatic control (setting 37)' enabled, if there was an order that had already started trading, the 'update process that should be unnecessary' sometimes occurred right after the start. This has been corrected.
bugfix: The point that the 'maximum number of partial settlement tiers' was not applied to the 'reversal stage threshold (setting 13)' when the 'partial settlement' of the number of tiers exceeding the number of activation tiers at the time of the replication source settlement was performed in the 'automatic reorder processing' was corrected. Before the correction, the 'number of activation tiers at the time of settlement' was applied. This correction affects only when '2 (control by the cumulative number of activation tiers)' was specified in the 'automatic control of transaction direction reversal tier (setting 12)'.
bugfix: In the 'target value calculation process', the point that the target value was not calculated correctly when the 'fee amount (setting 68)' was set to 0 in the 'account in which the fee arises' was corrected.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.49 → 1.50
bugfix: 「トレイリングストップ処理」にて、複製先が存在しないときにEAが異常終了してしまうことがあった点を修正した。
update: 「要求にかかった時間が長すぎた場合」に行うターミナルログへの出力について、条件を見直した。新たな条件では、「Ping応答時間の3倍」と「Ping応答時間+500ミリ秒」のいずれか大きい値を超えた場合に出力される。
bugfix: 「要求にかかった時間が長すぎた場合」に行うターミナルログへの出力にて、「Ping応答時間に対する、要求応答時間の倍率」の表記に対して、値を丸める閾値が誤っていた点を修正した。
bugfix: ターミナルソフトウェアのビルド番号が「825未満」の場合に、「要求にかかった時間が長すぎた場合のターミナルログ出力」が行われない問題を修正した。
bugfix: 「目標値更新処理」にて、複製元と「開始済の複製先」とで「S/L設定値とT/P設定値に小さなずれが発生した場合」に行われる同期処理が発生した際、ターミナルログへの出力内容が「同期前の値」になっていた点を修正した。
ver1.49 → 1.50
bugfix: The point that the EA sometimes ended abnormally when there was no replication destination in the 'trailing stop processing' has been corrected.
update: The condition for the output to the terminal log when the request took too long has been revised. The new condition is that the output is made when the larger value of 'three times the ping response time' or 'the ping response time + 500 milliseconds' is exceeded.
bugfix: In the output to the terminal log for 'When the request took too long', corrected that the threshold value for rounding off the value was incorrect for the expression of 'The ratio of the request response time to the ping response time'.
bugfix: When the build number of the terminal software is 'less than 825', the 'terminal log output' that should have been performed when 'the time required for the request was too long' was not performed.
bugfix: It was corrected that the content of the output of the 'value after synchronization' to the terminal log was incorrect when the synchronization process performed 'when a small deviation occurs between the S/L set value and the T/P set value' between the replication source and the 'started replication destination' occurred in the 'target value update process'.
bugfix: 「トレイリングストップ処理」にて、複製先が存在しないときにEAが異常終了してしまうことがあった点を修正した。
update: 「要求にかかった時間が長すぎた場合」に行うターミナルログへの出力について、条件を見直した。新たな条件では、「Ping応答時間の3倍」と「Ping応答時間+500ミリ秒」のいずれか大きい値を超えた場合に出力される。
bugfix: 「要求にかかった時間が長すぎた場合」に行うターミナルログへの出力にて、「Ping応答時間に対する、要求応答時間の倍率」の表記に対して、値を丸める閾値が誤っていた点を修正した。
bugfix: ターミナルソフトウェアのビルド番号が「825未満」の場合に、「要求にかかった時間が長すぎた場合のターミナルログ出力」が行われない問題を修正した。
bugfix: 「目標値更新処理」にて、複製元と「開始済の複製先」とで「S/L設定値とT/P設定値に小さなずれが発生した場合」に行われる同期処理が発生した際、ターミナルログへの出力内容が「同期前の値」になっていた点を修正した。
ver1.49 → 1.50
bugfix: The point that the EA sometimes ended abnormally when there was no replication destination in the 'trailing stop processing' has been corrected.
update: The condition for the output to the terminal log when the request took too long has been revised. The new condition is that the output is made when the larger value of 'three times the ping response time' or 'the ping response time + 500 milliseconds' is exceeded.
bugfix: In the output to the terminal log for 'When the request took too long', corrected that the threshold value for rounding off the value was incorrect for the expression of 'The ratio of the request response time to the ping response time'.
bugfix: When the build number of the terminal software is 'less than 825', the 'terminal log output' that should have been performed when 'the time required for the request was too long' was not performed.
bugfix: It was corrected that the content of the output of the 'value after synchronization' to the terminal log was incorrect when the synchronization process performed 'when a small deviation occurs between the S/L set value and the T/P set value' between the replication source and the 'started replication destination' occurred in the 'target value update process'.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.48 → 1.49
new: 取引サーバへの各種要求が成功した際、要求にかかった時間が長すぎた場合に、ターミナルログへ通知するようにした。通知は「要求を行ってから、成功した応答を受信するまでにかかった時間」が「Ping応答時間の3倍」を超えた場合に、最短で1分毎に行われる。
update: 「トレイリングストップ処理」にて、価格ロック発動後に同一の複製元で注文毎にS/L設定値がずれた場合、一番利益側に寄せた値で再設定するようにした(市場価格とS/L再設定値の価格差が「最小価格変動幅の11倍以上」確保できる時に限る)
bugfix: 「トレイリングストップ処理」にて、価格ロック発動後に同一の複製元で注文毎にS/L設定値がずれた場合の処理で、複製の作成タイミング次第でEAの異常終了が発生することがあった点を修正した。
bugfix: 「自動再発注処理」にて、履歴からの予約情報生成を行っていた場合に、EAが異常終了することがあった点を修正した。
bugfix: エラー「要求頻度が高すぎる」(ErrorCode: 8)が発生した場合に、EAの設定値変更を促す際の項目番号が、割り当てを見直す前の値のままだった点を修正した。
bugfix: 「目標値計算処理」にて、部分決済が発生した場合に、決済済のチケット番号が「ファイル出力の一覧」に残ってしまうことがあった点を修正した。
ver1.48 → 1.49
new: When various requests to the transaction server are successful and the time required for the request is too long, a notification is sent to the terminal log at least every 1 minute when the 'time required from the request to the reception of a successful response' exceeds 'three times the ping response time'.
update: In the case where the S/L set value is different for each order in the same copy source after the price lock is activated in the 'Trailing Stop' process, the S/L set value is reset with the value shifted to the most profitable side (limited to the case where the price difference between the market price and the S/L reset value can be secured to be '11 times or more of the minimum price fluctuation range').
bugfix: Corrected the point that an abnormal termination of the EA sometimes occurred depending on the timing of creation of the copy in the processing when the S/L set value deviated for each order in the same copy source after the price lock was activated in the 'Trailing Stop' processing.
bugfix: The point that EA sometimes ended abnormally when reservation information was generated from the history in 'Automatic Reorder' processing has been corrected.
bugfix: Corrected the point that when the error 'Request frequency is too high' (ErrorCode: 8) occurred, the item number used to prompt the change of the set value of EA was the same value as before the re-allocation.
bugfix: Corrected the point that when partial settlement occurred in the 'target value calculation' process, the ticket number that had been settled sometimes remained in the 'file output list.'
new: 取引サーバへの各種要求が成功した際、要求にかかった時間が長すぎた場合に、ターミナルログへ通知するようにした。通知は「要求を行ってから、成功した応答を受信するまでにかかった時間」が「Ping応答時間の3倍」を超えた場合に、最短で1分毎に行われる。
update: 「トレイリングストップ処理」にて、価格ロック発動後に同一の複製元で注文毎にS/L設定値がずれた場合、一番利益側に寄せた値で再設定するようにした(市場価格とS/L再設定値の価格差が「最小価格変動幅の11倍以上」確保できる時に限る)
bugfix: 「トレイリングストップ処理」にて、価格ロック発動後に同一の複製元で注文毎にS/L設定値がずれた場合の処理で、複製の作成タイミング次第でEAの異常終了が発生することがあった点を修正した。
bugfix: 「自動再発注処理」にて、履歴からの予約情報生成を行っていた場合に、EAが異常終了することがあった点を修正した。
bugfix: エラー「要求頻度が高すぎる」(ErrorCode: 8)が発生した場合に、EAの設定値変更を促す際の項目番号が、割り当てを見直す前の値のままだった点を修正した。
bugfix: 「目標値計算処理」にて、部分決済が発生した場合に、決済済のチケット番号が「ファイル出力の一覧」に残ってしまうことがあった点を修正した。
ver1.48 → 1.49
new: When various requests to the transaction server are successful and the time required for the request is too long, a notification is sent to the terminal log at least every 1 minute when the 'time required from the request to the reception of a successful response' exceeds 'three times the ping response time'.
update: In the case where the S/L set value is different for each order in the same copy source after the price lock is activated in the 'Trailing Stop' process, the S/L set value is reset with the value shifted to the most profitable side (limited to the case where the price difference between the market price and the S/L reset value can be secured to be '11 times or more of the minimum price fluctuation range').
bugfix: Corrected the point that an abnormal termination of the EA sometimes occurred depending on the timing of creation of the copy in the processing when the S/L set value deviated for each order in the same copy source after the price lock was activated in the 'Trailing Stop' processing.
bugfix: The point that EA sometimes ended abnormally when reservation information was generated from the history in 'Automatic Reorder' processing has been corrected.
bugfix: Corrected the point that when the error 'Request frequency is too high' (ErrorCode: 8) occurred, the item number used to prompt the change of the set value of EA was the same value as before the re-allocation.
bugfix: Corrected the point that when partial settlement occurred in the 'target value calculation' process, the ticket number that had been settled sometimes remained in the 'file output list.'
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
AutoDoublePush ver1.48で、ソースファイルが19000行を超えた。20000行が見えてきた…。最初のバージョンでは5000行もなかったはずなんだけど、機能追加に加えて、それに応じた細かい動作指定が増えたから…。
基本機能を単純に言えば、「既にある注文を見て、見込損失に応じた追加注文を自動で作る。決済目標値も総ロットサイズと目標利幅にあわせて自動で更新する」だけなんだけど…。
とはいえ、後悔はしてるわけではない。手作業じゃやってられないしね。面倒すぎて。欲しい機能を持った既存のツールも、探すのが大変だったので「作ったほうが早いかな」と…。
AutoDoublePush In version 1.48, the source file exceeded 19000 lines. I could see 20000 lines. In the first version, it was supposed to be less than 5000 lines, but in addition to the function addition, the detailed action specification increased accordingly.
To put it simply, the basic function is "Look at existing orders and automatically create additional orders according to potential losses. The settlement target value is also automatically updated according to the total lot size and the target profit margin."
But I don't regret it. I can't do it by hand. It's too much of a hassle. It was hard to find an existing tool with the functions I wanted, so I thought, "Maybe it's quicker to make it."
基本機能を単純に言えば、「既にある注文を見て、見込損失に応じた追加注文を自動で作る。決済目標値も総ロットサイズと目標利幅にあわせて自動で更新する」だけなんだけど…。
とはいえ、後悔はしてるわけではない。手作業じゃやってられないしね。面倒すぎて。欲しい機能を持った既存のツールも、探すのが大変だったので「作ったほうが早いかな」と…。
AutoDoublePush In version 1.48, the source file exceeded 19000 lines. I could see 20000 lines. In the first version, it was supposed to be less than 5000 lines, but in addition to the function addition, the detailed action specification increased accordingly.
To put it simply, the basic function is "Look at existing orders and automatically create additional orders according to potential losses. The settlement target value is also automatically updated according to the total lot size and the target profit margin."
But I don't regret it. I can't do it by hand. It's too much of a hassle. It was hard to find an existing tool with the functions I wanted, so I thought, "Maybe it's quicker to make it."
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.47 → 1.48
new: 「自動決済(設定18)」有効時、かつ「自動再発注時間帯制御」による再発注許可時間帯以外で、「TrailingStop自動有効化(設定50)」有効時、TrailingStopの動作開始点を下限値(損益分界点よりTS許容損失幅(設定51)だけ利益側)に自動変更し、TrailingStopの自動解除がされないようにした(時刻指定による自動決済よりも、「僅かでも利益が発生した状態」での決済実行を優先させるため。「設定53」で変更可)
new: 「トレイリングストップ処理」にて、S/L設定値とT/P設定値の更新に失敗した場合、価格情報をターミナルログへ出力できるようにした。この内容は、「通知出力モード(設定99)」に「6以上」を指定した場合にのみ、出力される。
update: 設定項目の項目番号の割り当てを一部見直した(保存している設定ファイルはそのまま利用可能)。これにより、「トレイリングストップ処理」の項目が「その他の設定」から独立した。
bugfix: 「複製作成処理」にて、1段目以降の「同一段の複製」が作成されてしまうことがあった点を修正した。これは通信障害等に起因するもので、既に発生してしまったものについては、未開始の場合に限り自動削除されるようになる。
bugfix: 「目標値更新処理」にて、ターミナルログへ出力する内容に不足が発生することがあった点を修正した(更新処理自体は正しく行われている)。これまでは、S/L設定値とT/P設定値のいずれかが更新条件を満たし、もう一方が「更新条件は満たしていないが、計算値からはずれている」場合に、処理としては両方を更新するが、通知が「更新条件を満たしたもの」についてしか行われていなかった。この内容は、「通知出力モード(設定99)」に「5以上」を指定した場合にのみ、出力される。
bugfix: 「目標値更新処理」にて、ターミナルログへ出力する「更新前の値」がずれることがあった点を修正した(更新処理自体は正しく行われている)。この内容は、「通知出力モード(設定99)」に「5以上」を指定した場合にのみ、出力される。
bugfix: 「目標値更新処理」と「トレイリングストップ処理」で互いに更新しあってしまう機能衝突の問題を修正した。これにより、トレイリングストップ処理が進行中の場合(S/L設定値が損益分界点以上の場合)、目標値更新処理では更新を行わなくなる。
bugfix: 「目標値更新処理」にて、複製先の取引開始直後に不要な目標値更新が発生することがあった点について「ver1.47」で修正したが、この修正をすり抜けて発生する条件が見つかったため、再度修正した。
bugfix: 「決済・削除処理」にて、複製元の消失(決済または削除)を検知した後に、未開始の複製先が削除されないことがあった点を修正した。
bugfix: 「決済・削除処理」にて、ターミナルログへの「決済結果の集計出力」が重複して行われてしまうことがあった点を修正した。
bugfix: 「OnTick監視(設定97)」が有効の場合で、指値注文の未執行が発生し、未執行注文の削除に失敗した際、ターミナルログへの「複製先の取引開始通知」が行われない問題を修正した。また、一度の検知での削除再試行を停止した(新たなTickを受信した時点で、まだ未執行が継続していた場合には、削除の再試行が行われる。「未執行に対する削除」ではない通常の決済・削除処理は、従来通り再試行を行う)
bugfix: 「設定項目の詳細表示(設定98)」有効時に出力される文章で、項目番号の記述に幾つかの誤りがあった点を修正した。
ver1.47 → 1.48
new: When 'Automatic Settlement (Setting 18)' is enabled, and when 'TrailingStop Auto Enable (Setting 50)' is enabled, except for the time zone in which reorder is permitted by 'Automatic Reorder Time Zone Control,' the operation start point of TrailingStop is automatically changed to the lower limit value (from the profit / loss demarcation point to the TrailingStop allowable loss range (Setting 51) designated value on the revenue side), and the automatic cancellation of TrailingStop is not performed (This is to prioritize the settlement execution in the 'state in which even a small amount of revenue is generated' over the automatic settlement by specifying the time. This operation can be changed by 'Setting 53'.)
new: When the update of the S/L set value and the T/P set value fails in the 'trailing stop process', the price information can be output to the terminal log. This content is output only when '6 or more' is specified in the 'notification output mode (setting 99)'.
update: The item number assignment of the setting item was partially revised. (The saved setting file can be used as it is, but the reading of the setting file needs to be restarted.) As a result, the item of 'Processing of trailing stop' became independent from 'Other setting'.
bugfix: The point that the first and subsequent 'copies of the same tier' were sometimes created in the 'copy creation process' has been corrected. This is caused by a communication failure or the like, and those that have already occurred are automatically deleted only when they have not started.
bugfix: In the 'target value update process', the point that the content to be output to the terminal log was sometimes insufficient has been corrected (the update process itself has been performed correctly). In the past, when either the S/L set value or the T/P set value satisfies the update condition and the other one 'does not satisfy the update condition but deviates from the calculated value', both are updated as a process, but the notification has been performed only for 'the one that satisfies the update condition'. This content is output only when '5 or more' is specified in the 'notification output mode (setting 99)'.
bugfix: The point that the 'value before update' to be output to the terminal log sometimes deviated in the 'target value update process' has been corrected (the update process itself has been performed correctly). This content is output only when '5 or more' is specified in the 'notification output mode (setting 99)'.
bugfix: The problem of function conflict, in which 'target value update processing' and 'trailing stop processing' update each other, has been corrected. As a result, when the trailing stop processing is in progress (when the S/L set value is equal to or higher than the profit / loss demarcation point), the target value update processing is not performed only for that order.
bugfix: In the 'target value update process,' the point that an unnecessary target value update sometimes occurred immediately after the start of the transaction of the replication destination was corrected in 'ver. 1.47' However, since a condition that occurred by bypassing this correction was found, it was corrected again.
bugfix: In the 'settlement / deletion processing,' an event has been corrected in which the unstarted replication destination may not be deleted after the close (settlement or deletion) of the replication source is detected.
bugfix: In the 'settlement / deletion processing,' the point that 'aggregate output of settlement results' to the terminal log was sometimes duplicated has been corrected.
bugfix: When 'OnTick Monitoring (Setting 97)' is enabled, when a limit order has not been executed and deletion of an unexecuted order has failed, the 'transaction start notification of the replication destination' to the terminal log is not performed. Also, the deletion retry by one detection has been stopped. (When a new Tick is received, if the unexecuted state is still continued, the deletion retry is performed. The normal settlement / deletion processing that is not the 'deletion of the unexecuted state' is retried as before.)
bugfix: Corrected several errors in the description of item numbers in the text output when 'Detailed display of setting items (Setting 98)' is enabled.
new: 「自動決済(設定18)」有効時、かつ「自動再発注時間帯制御」による再発注許可時間帯以外で、「TrailingStop自動有効化(設定50)」有効時、TrailingStopの動作開始点を下限値(損益分界点よりTS許容損失幅(設定51)だけ利益側)に自動変更し、TrailingStopの自動解除がされないようにした(時刻指定による自動決済よりも、「僅かでも利益が発生した状態」での決済実行を優先させるため。「設定53」で変更可)
new: 「トレイリングストップ処理」にて、S/L設定値とT/P設定値の更新に失敗した場合、価格情報をターミナルログへ出力できるようにした。この内容は、「通知出力モード(設定99)」に「6以上」を指定した場合にのみ、出力される。
update: 設定項目の項目番号の割り当てを一部見直した(保存している設定ファイルはそのまま利用可能)。これにより、「トレイリングストップ処理」の項目が「その他の設定」から独立した。
bugfix: 「複製作成処理」にて、1段目以降の「同一段の複製」が作成されてしまうことがあった点を修正した。これは通信障害等に起因するもので、既に発生してしまったものについては、未開始の場合に限り自動削除されるようになる。
bugfix: 「目標値更新処理」にて、ターミナルログへ出力する内容に不足が発生することがあった点を修正した(更新処理自体は正しく行われている)。これまでは、S/L設定値とT/P設定値のいずれかが更新条件を満たし、もう一方が「更新条件は満たしていないが、計算値からはずれている」場合に、処理としては両方を更新するが、通知が「更新条件を満たしたもの」についてしか行われていなかった。この内容は、「通知出力モード(設定99)」に「5以上」を指定した場合にのみ、出力される。
bugfix: 「目標値更新処理」にて、ターミナルログへ出力する「更新前の値」がずれることがあった点を修正した(更新処理自体は正しく行われている)。この内容は、「通知出力モード(設定99)」に「5以上」を指定した場合にのみ、出力される。
bugfix: 「目標値更新処理」と「トレイリングストップ処理」で互いに更新しあってしまう機能衝突の問題を修正した。これにより、トレイリングストップ処理が進行中の場合(S/L設定値が損益分界点以上の場合)、目標値更新処理では更新を行わなくなる。
bugfix: 「目標値更新処理」にて、複製先の取引開始直後に不要な目標値更新が発生することがあった点について「ver1.47」で修正したが、この修正をすり抜けて発生する条件が見つかったため、再度修正した。
bugfix: 「決済・削除処理」にて、複製元の消失(決済または削除)を検知した後に、未開始の複製先が削除されないことがあった点を修正した。
bugfix: 「決済・削除処理」にて、ターミナルログへの「決済結果の集計出力」が重複して行われてしまうことがあった点を修正した。
bugfix: 「OnTick監視(設定97)」が有効の場合で、指値注文の未執行が発生し、未執行注文の削除に失敗した際、ターミナルログへの「複製先の取引開始通知」が行われない問題を修正した。また、一度の検知での削除再試行を停止した(新たなTickを受信した時点で、まだ未執行が継続していた場合には、削除の再試行が行われる。「未執行に対する削除」ではない通常の決済・削除処理は、従来通り再試行を行う)
bugfix: 「設定項目の詳細表示(設定98)」有効時に出力される文章で、項目番号の記述に幾つかの誤りがあった点を修正した。
ver1.47 → 1.48
new: When 'Automatic Settlement (Setting 18)' is enabled, and when 'TrailingStop Auto Enable (Setting 50)' is enabled, except for the time zone in which reorder is permitted by 'Automatic Reorder Time Zone Control,' the operation start point of TrailingStop is automatically changed to the lower limit value (from the profit / loss demarcation point to the TrailingStop allowable loss range (Setting 51) designated value on the revenue side), and the automatic cancellation of TrailingStop is not performed (This is to prioritize the settlement execution in the 'state in which even a small amount of revenue is generated' over the automatic settlement by specifying the time. This operation can be changed by 'Setting 53'.)
new: When the update of the S/L set value and the T/P set value fails in the 'trailing stop process', the price information can be output to the terminal log. This content is output only when '6 or more' is specified in the 'notification output mode (setting 99)'.
update: The item number assignment of the setting item was partially revised. (The saved setting file can be used as it is, but the reading of the setting file needs to be restarted.) As a result, the item of 'Processing of trailing stop' became independent from 'Other setting'.
bugfix: The point that the first and subsequent 'copies of the same tier' were sometimes created in the 'copy creation process' has been corrected. This is caused by a communication failure or the like, and those that have already occurred are automatically deleted only when they have not started.
bugfix: In the 'target value update process', the point that the content to be output to the terminal log was sometimes insufficient has been corrected (the update process itself has been performed correctly). In the past, when either the S/L set value or the T/P set value satisfies the update condition and the other one 'does not satisfy the update condition but deviates from the calculated value', both are updated as a process, but the notification has been performed only for 'the one that satisfies the update condition'. This content is output only when '5 or more' is specified in the 'notification output mode (setting 99)'.
bugfix: The point that the 'value before update' to be output to the terminal log sometimes deviated in the 'target value update process' has been corrected (the update process itself has been performed correctly). This content is output only when '5 or more' is specified in the 'notification output mode (setting 99)'.
bugfix: The problem of function conflict, in which 'target value update processing' and 'trailing stop processing' update each other, has been corrected. As a result, when the trailing stop processing is in progress (when the S/L set value is equal to or higher than the profit / loss demarcation point), the target value update processing is not performed only for that order.
bugfix: In the 'target value update process,' the point that an unnecessary target value update sometimes occurred immediately after the start of the transaction of the replication destination was corrected in 'ver. 1.47' However, since a condition that occurred by bypassing this correction was found, it was corrected again.
bugfix: In the 'settlement / deletion processing,' an event has been corrected in which the unstarted replication destination may not be deleted after the close (settlement or deletion) of the replication source is detected.
bugfix: In the 'settlement / deletion processing,' the point that 'aggregate output of settlement results' to the terminal log was sometimes duplicated has been corrected.
bugfix: When 'OnTick Monitoring (Setting 97)' is enabled, when a limit order has not been executed and deletion of an unexecuted order has failed, the 'transaction start notification of the replication destination' to the terminal log is not performed. Also, the deletion retry by one detection has been stopped. (When a new Tick is received, if the unexecuted state is still continued, the deletion retry is performed. The normal settlement / deletion processing that is not the 'deletion of the unexecuted state' is retried as before.)
bugfix: Corrected several errors in the description of item numbers in the text output when 'Detailed display of setting items (Setting 98)' is enabled.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.46 → 1.47
bugfix: 「注文状態定期監視処理」にて、稀に異常終了する問題を修正した。
bugfix: 「決済・削除処理」にて、複製先の部分決済が発生していた場合に、複製元の決済後に行われる「ターミナルログへの集計出力」において「部分決済での損益」が含まれていなかった点を修正した。また、部分決済を行った場合に履歴ファイルに出力される「部分決済分の集計値」は、複製元の決済が行われた時点で複製元の決済損益の一部として合算され、履歴ファイル出力内容から取り除かれるようになった。
bugfix: 「トレイリングストップ処理」での動作開始・停止値導出に誤りがあった点を修正した。この誤りにより、「価格ロックの作動前に値下がりした」場合に、動作停止条件を満たしていないのに一旦動作解除されてしまう処理が発生していた。
bugfix: 「目標値更新処理」にて、複製先の取引開始直後に不要な目標値更新が発生することがあった点を修正した。
ver1.46 → 1.47
bugfix: The problem of rare abnormal termination in the 'order status periodic monitoring process' has been corrected.
bugfix: In 'Settlement and deletion processing,' when partial settlement of the replication destination occurred, 'profit and loss from partial settlement' was not included in the 'aggregate output to the terminal log' that is performed after the settlement of the replication source. In addition, the 'aggregate value of partial settlement' that is output to the history file when partial settlement is performed is added up as a part of the settlement profit and loss of the replication source when the settlement of the replication source is performed, and is removed from the history file output content.
bugfix: An error in the derivation of the operation start and stop values in the 'trailing stop processing' has been corrected. Due to this error, when 'the price has dropped before the price lock is activated,' the processing in which the operation is temporarily canceled while the operation stop condition is not satisfied has occurred.
bugfix: In the 'target value update process,' the point that unnecessary target value updates sometimes occurred immediately after the start of transactions of the replication has been corrected.
bugfix: 「注文状態定期監視処理」にて、稀に異常終了する問題を修正した。
bugfix: 「決済・削除処理」にて、複製先の部分決済が発生していた場合に、複製元の決済後に行われる「ターミナルログへの集計出力」において「部分決済での損益」が含まれていなかった点を修正した。また、部分決済を行った場合に履歴ファイルに出力される「部分決済分の集計値」は、複製元の決済が行われた時点で複製元の決済損益の一部として合算され、履歴ファイル出力内容から取り除かれるようになった。
bugfix: 「トレイリングストップ処理」での動作開始・停止値導出に誤りがあった点を修正した。この誤りにより、「価格ロックの作動前に値下がりした」場合に、動作停止条件を満たしていないのに一旦動作解除されてしまう処理が発生していた。
bugfix: 「目標値更新処理」にて、複製先の取引開始直後に不要な目標値更新が発生することがあった点を修正した。
ver1.46 → 1.47
bugfix: The problem of rare abnormal termination in the 'order status periodic monitoring process' has been corrected.
bugfix: In 'Settlement and deletion processing,' when partial settlement of the replication destination occurred, 'profit and loss from partial settlement' was not included in the 'aggregate output to the terminal log' that is performed after the settlement of the replication source. In addition, the 'aggregate value of partial settlement' that is output to the history file when partial settlement is performed is added up as a part of the settlement profit and loss of the replication source when the settlement of the replication source is performed, and is removed from the history file output content.
bugfix: An error in the derivation of the operation start and stop values in the 'trailing stop processing' has been corrected. Due to this error, when 'the price has dropped before the price lock is activated,' the processing in which the operation is temporarily canceled while the operation stop condition is not satisfied has occurred.
bugfix: In the 'target value update process,' the point that unnecessary target value updates sometimes occurred immediately after the start of transactions of the replication has been corrected.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.45 → 1.46
new: 「自動再発注の時間帯制御(設定11)」が有効の場合に限り、「時間帯指定による自動決済処理(設定18)」を有効化できるようにした。自動再発注時間帯の範囲外を決済時間帯に指定した場合に限り、指定時刻になった時点で取引中のチケットが存在すると、損益状況を問わず即時決済を行う。決済対象は「手動発注」、「臨時発注」、「自動再発注」に限定され、「他EAやサービス等による発注」に対しては行われない。
new: 「自動再発注」にて、売買方向を反転させるために必要な発動段数の最低値を設定できるようにした(設定14)。指定値未満では反転しないが、指定値未満でのtp決済が連続した場合は、設定15の指定に従う。
new: 「自動再発注」にて、売買方向導出の起点となる「履歴で最後に売買方向が反転した時の方向と発動段数」について、「発動段数の読み替えによる上限指定」を実装した(設定12~13)。反転閾値の自動制御を有効にした場合(「設定12」1 or 2)、反転時の発動段数が「設定13の指定値」を越えていると、「設定13の指定値」に読み替えられる(ただし、設定13にマイナス値を指定した場合は、読み替えは行われない(従来の動作))
new: 「OnTick監視(設定97)」が有効の場合に限り、急激な価格変動等により「複製先の指値注文に対する未執行」が発生した際に、「未執行の指値注文」を削除する処理を追加した。削除に成功した場合、続いて行われる「複製の欠落を補完する処理」にて、「成行注文」または「開始価格を導出しなおした指値注文」として発行し直される。その後、残存している「未開始の指値注文」については、開始価格の修正が行われる。
update: 「自動再発注処理」にて、TrailingStopによる決済時の動作を変更した。これにより、「常に反転する」から「T/P値による決済と同等」へ変更される。
update: 「目標値更新処理」にて、「開始済の複製先」と「複製元」との間でT/P設定値またはS/L設定値に不一致が発生した場合、複製元の設定値に統一するようにした。これまでは、許容変動幅(設定59)に満たないずれを許容していた。
update: 「ファイル出力処理」にて、市場情報の出力対象を変更した。出力対象シンボルが「EA動作チャートのシンボル」から「注文があるシンボル」(複数ある場合は、その全て)に変更されることになる。現行の注文がなく、履歴の探索範囲にも注文がない場合は、従来どおり「EA動作チャートのシンボル」が出力される。また、「通知出力モード(設定99)」で注文内容の定期ファイル出力が有効(設定値が8以上)の場合、市場情報も定期出力の対象となる(注文内容とは違い、バックアップは作成されない)
bugfix: 「トレイリングストップ処理」にて、「売り注文」での開始動作タイミングに異常があった点を修正した。
bugfix: 「決済・削除処理」にて、回線不良等により決済・削除要求の送信後に応答が得られなかった場合、要求送信を繰り返してしまう問題を修正した。決済・削除日時に有効な値が確認された時点で、要求送信の再試行を終了する。
bugfix: 「決済・削除処理」にて、大量のtp/sl決済が発生した際、サーバ処理の時間差によって、1つのチケットに対して「EAから決済・削除要求を送信した後に、サーバ側のtp/sl決済を検知した」場合に、繰り返し決済・削除要求を行ってしまうことがあった点を修正した。
bugfix: 「複製の削除処理」にて、待ち時間が意図した形より長くなっていた点を修正した。それにあわせて、内部処理としての「待ち時間の挿入方法」を統一した。
bugfix: 「ファイル出力処理」にて、「複製元チケットは取引中のままで、複製先チケットのみを手動で決済した場合」に、履歴ファイルへの出力に異常が発生する問題を修正した。操作を含め、取引そのものには問題はないが、ファイル出力についてのみ問題が発生していて、復旧にはEAの再起動が必要になっていた。
bugfix: 「ファイル出力処理」にて、「StageTable」内のチケット番号記述に決済/取消済のチケット番号が現れることがある点を修正した。これは、複製先単独での手動決済や、ロットサイズ変更等が発生した場合に行われる、複製先の再生成が行われた場合に発生していた。
ver1.45 → 1.46
new: 'Automatic settlement processing by time zone designation (Setting 18)' can be enabled only when 'Time zone control of automatic reorder (Setting 11)' is enabled. Only when the outside of the automatic reorder time zone is designated as the settlement time zone, if there is a ticket in transaction at the time of the designated time, immediate settlement is performed regardless of the profit and loss situation. The settlement target is limited to 'manual order', 'spot order', and 'automatic reorder'. 'order by other EA, service, etc.' is not performed.
new: The minimum number of trigger stages necessary to reverse the trading direction can be set in 'automatic reorder' (Setting 14). If the number of trigger tiers is less than the specified value, it will not be reversed. However, if T/P settlement below the specified value continues, the setting specified in Setting 15 will be followed.
new: Regarding 'the direction and number of trigger tiers at the time when the trading direction was last reversed in the history', which is the starting point of the trading direction derivation in 'automatic reorder', 'the upper limit designation by the replacement of the number of trigger tiers' was implemented (Setting 12 to 13). When the automatic control of the inversion threshold is enabled ('Setting 12' 1 or 2), if the number of trigger tiers at the time of inversion exceeds 'the specified value of Setting 13', the value is replaced with 'the specified value of Setting 13' (however, if a negative value is specified in Setting 13, the value is not replaced (conventional operation)).
new: Only when 'OnTick Monitoring (Setting 97)' is enabled, a process has been added to delete 'unexecuted limit order' when 'unexecuted limit order of the copy destination' occurs due to sudden price fluctuations, etc. If the deletion is successful, it is issued again as 'market order' or 'limit order whose starting price has been derived again' in the subsequent 'process to supplement the missing copy'. After that, the starting price is corrected for the remaining 'unexecuted limit order'.
update: In the 'Automatic Reorder Processing,' the operation at the time of settlement by TrailingStop has been changed from 'always reverse' to 'equivalent to settlement by T/P value.'
update: In the 'target value update process', when a mismatch occurs in the T/P set value or S/L set value between the 'started replication' and the 'replication source', the set value is unified with the set value of the replication source. Conventionally, a deviation less than the allowable fluctuation range (setting 59) has been allowed.
update: In the 'file output process', the output target of the market information is changed. The output target symbol is changed from the 'symbol of the EA operation chart' to the 'symbol with an order' (all of them if there are a plurality of symbols). When there is no current order and there is no order in the search range of the history, the 'symbol of the EA operation chart' is output as before. When the periodic file output of the order content is enabled (the set value is 8 or more) in the 'notification output mode (setting 99)', the market information is also subject to the periodic output (the backup is not created unlike the order content).
bugfix: The point that there was an abnormality in the start operation timing of the 'sell order' in the 'trailing stop processing' has been corrected.
bugfix: In 'Settlement / Deletion Processing,' a problem has been corrected in which the request transmission is repeated when a response is not obtained after the transmission of the settlement / deletion request due to a line failure, etc. With this correction, the retry of the request transmission is terminated when a valid value is confirmed for the settlement / deletion date and time.
bugfix: When a large number of T/P or S/L settlements occur in the 'settlement / deletion processing', a problem has been corrected in which, due to the time difference in the server processing, settlement / deletion requests are repeatedly made when 'settlement / deletion requests are sent from the EA and then settlement on the server side is detected' for one ticket, thereby delaying the subsequent processing.
bugfix: Corrected the wait time that was longer than intended in 'Deletion processing of replication', and unified 'Insertion method of wait time' as an internal processing.
bugfix: In the 'File output processing' section, corrected the problem that an error occurred in the output to the history file in the case where 'the replication source ticket is still in transaction and only the replication ticket is manually settled'. There was no problem with the transaction itself including the operation, but there was a problem only with the file output, and it was necessary to restart the EA for recovery.
bugfix: Corrected the point that the description of the ticket number in 'StageTable' sometimes shows the ticket number of the settlement / cancellation in 'File outputting process'. This occurred when the reproduction destination was regenerated, which is performed when the manual settlement in the replication destination alone or the lot size change occurred.
new: 「自動再発注の時間帯制御(設定11)」が有効の場合に限り、「時間帯指定による自動決済処理(設定18)」を有効化できるようにした。自動再発注時間帯の範囲外を決済時間帯に指定した場合に限り、指定時刻になった時点で取引中のチケットが存在すると、損益状況を問わず即時決済を行う。決済対象は「手動発注」、「臨時発注」、「自動再発注」に限定され、「他EAやサービス等による発注」に対しては行われない。
new: 「自動再発注」にて、売買方向を反転させるために必要な発動段数の最低値を設定できるようにした(設定14)。指定値未満では反転しないが、指定値未満でのtp決済が連続した場合は、設定15の指定に従う。
new: 「自動再発注」にて、売買方向導出の起点となる「履歴で最後に売買方向が反転した時の方向と発動段数」について、「発動段数の読み替えによる上限指定」を実装した(設定12~13)。反転閾値の自動制御を有効にした場合(「設定12」1 or 2)、反転時の発動段数が「設定13の指定値」を越えていると、「設定13の指定値」に読み替えられる(ただし、設定13にマイナス値を指定した場合は、読み替えは行われない(従来の動作))
new: 「OnTick監視(設定97)」が有効の場合に限り、急激な価格変動等により「複製先の指値注文に対する未執行」が発生した際に、「未執行の指値注文」を削除する処理を追加した。削除に成功した場合、続いて行われる「複製の欠落を補完する処理」にて、「成行注文」または「開始価格を導出しなおした指値注文」として発行し直される。その後、残存している「未開始の指値注文」については、開始価格の修正が行われる。
update: 「自動再発注処理」にて、TrailingStopによる決済時の動作を変更した。これにより、「常に反転する」から「T/P値による決済と同等」へ変更される。
update: 「目標値更新処理」にて、「開始済の複製先」と「複製元」との間でT/P設定値またはS/L設定値に不一致が発生した場合、複製元の設定値に統一するようにした。これまでは、許容変動幅(設定59)に満たないずれを許容していた。
update: 「ファイル出力処理」にて、市場情報の出力対象を変更した。出力対象シンボルが「EA動作チャートのシンボル」から「注文があるシンボル」(複数ある場合は、その全て)に変更されることになる。現行の注文がなく、履歴の探索範囲にも注文がない場合は、従来どおり「EA動作チャートのシンボル」が出力される。また、「通知出力モード(設定99)」で注文内容の定期ファイル出力が有効(設定値が8以上)の場合、市場情報も定期出力の対象となる(注文内容とは違い、バックアップは作成されない)
bugfix: 「トレイリングストップ処理」にて、「売り注文」での開始動作タイミングに異常があった点を修正した。
bugfix: 「決済・削除処理」にて、回線不良等により決済・削除要求の送信後に応答が得られなかった場合、要求送信を繰り返してしまう問題を修正した。決済・削除日時に有効な値が確認された時点で、要求送信の再試行を終了する。
bugfix: 「決済・削除処理」にて、大量のtp/sl決済が発生した際、サーバ処理の時間差によって、1つのチケットに対して「EAから決済・削除要求を送信した後に、サーバ側のtp/sl決済を検知した」場合に、繰り返し決済・削除要求を行ってしまうことがあった点を修正した。
bugfix: 「複製の削除処理」にて、待ち時間が意図した形より長くなっていた点を修正した。それにあわせて、内部処理としての「待ち時間の挿入方法」を統一した。
bugfix: 「ファイル出力処理」にて、「複製元チケットは取引中のままで、複製先チケットのみを手動で決済した場合」に、履歴ファイルへの出力に異常が発生する問題を修正した。操作を含め、取引そのものには問題はないが、ファイル出力についてのみ問題が発生していて、復旧にはEAの再起動が必要になっていた。
bugfix: 「ファイル出力処理」にて、「StageTable」内のチケット番号記述に決済/取消済のチケット番号が現れることがある点を修正した。これは、複製先単独での手動決済や、ロットサイズ変更等が発生した場合に行われる、複製先の再生成が行われた場合に発生していた。
ver1.45 → 1.46
new: 'Automatic settlement processing by time zone designation (Setting 18)' can be enabled only when 'Time zone control of automatic reorder (Setting 11)' is enabled. Only when the outside of the automatic reorder time zone is designated as the settlement time zone, if there is a ticket in transaction at the time of the designated time, immediate settlement is performed regardless of the profit and loss situation. The settlement target is limited to 'manual order', 'spot order', and 'automatic reorder'. 'order by other EA, service, etc.' is not performed.
new: The minimum number of trigger stages necessary to reverse the trading direction can be set in 'automatic reorder' (Setting 14). If the number of trigger tiers is less than the specified value, it will not be reversed. However, if T/P settlement below the specified value continues, the setting specified in Setting 15 will be followed.
new: Regarding 'the direction and number of trigger tiers at the time when the trading direction was last reversed in the history', which is the starting point of the trading direction derivation in 'automatic reorder', 'the upper limit designation by the replacement of the number of trigger tiers' was implemented (Setting 12 to 13). When the automatic control of the inversion threshold is enabled ('Setting 12' 1 or 2), if the number of trigger tiers at the time of inversion exceeds 'the specified value of Setting 13', the value is replaced with 'the specified value of Setting 13' (however, if a negative value is specified in Setting 13, the value is not replaced (conventional operation)).
new: Only when 'OnTick Monitoring (Setting 97)' is enabled, a process has been added to delete 'unexecuted limit order' when 'unexecuted limit order of the copy destination' occurs due to sudden price fluctuations, etc. If the deletion is successful, it is issued again as 'market order' or 'limit order whose starting price has been derived again' in the subsequent 'process to supplement the missing copy'. After that, the starting price is corrected for the remaining 'unexecuted limit order'.
update: In the 'Automatic Reorder Processing,' the operation at the time of settlement by TrailingStop has been changed from 'always reverse' to 'equivalent to settlement by T/P value.'
update: In the 'target value update process', when a mismatch occurs in the T/P set value or S/L set value between the 'started replication' and the 'replication source', the set value is unified with the set value of the replication source. Conventionally, a deviation less than the allowable fluctuation range (setting 59) has been allowed.
update: In the 'file output process', the output target of the market information is changed. The output target symbol is changed from the 'symbol of the EA operation chart' to the 'symbol with an order' (all of them if there are a plurality of symbols). When there is no current order and there is no order in the search range of the history, the 'symbol of the EA operation chart' is output as before. When the periodic file output of the order content is enabled (the set value is 8 or more) in the 'notification output mode (setting 99)', the market information is also subject to the periodic output (the backup is not created unlike the order content).
bugfix: The point that there was an abnormality in the start operation timing of the 'sell order' in the 'trailing stop processing' has been corrected.
bugfix: In 'Settlement / Deletion Processing,' a problem has been corrected in which the request transmission is repeated when a response is not obtained after the transmission of the settlement / deletion request due to a line failure, etc. With this correction, the retry of the request transmission is terminated when a valid value is confirmed for the settlement / deletion date and time.
bugfix: When a large number of T/P or S/L settlements occur in the 'settlement / deletion processing', a problem has been corrected in which, due to the time difference in the server processing, settlement / deletion requests are repeatedly made when 'settlement / deletion requests are sent from the EA and then settlement on the server side is detected' for one ticket, thereby delaying the subsequent processing.
bugfix: Corrected the wait time that was longer than intended in 'Deletion processing of replication', and unified 'Insertion method of wait time' as an internal processing.
bugfix: In the 'File output processing' section, corrected the problem that an error occurred in the output to the history file in the case where 'the replication source ticket is still in transaction and only the replication ticket is manually settled'. There was no problem with the transaction itself including the operation, but there was a problem only with the file output, and it was necessary to restart the EA for recovery.
bugfix: Corrected the point that the description of the ticket number in 'StageTable' sometimes shows the ticket number of the settlement / cancellation in 'File outputting process'. This occurred when the reproduction destination was regenerated, which is performed when the manual settlement in the replication destination alone or the lot size change occurred.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.44 → 1.45
new: 複製先の事前予約発行数を制限する機能を実装した(設定21)。作成可能段数の範囲内において、取引開始済となっている複製先最大段の後に、設定21指定値の段数だけ予約注文を生成する。これまでは、作成可能段数の全てを事前予約していた。
new: 指値間隔・ロットサイズ増倍率の自動調整機能を実装した。初期値では動作は停止されている。
update: 設定項目の追加にあわせ、設定画面での項目番号を変更した。表示上の番号は変わっているが、保存からの復元操作で適用される設定値自体に変更はない。
update: 「複製の削除処理」にて、実行タイミングを修正した。これまでは、稀に「新たな複製元に対する、複製先の作成」よりも先に「決済済の複製元に対する、使われなかった予約注文の削除」が行われることがあった。また、予約削除の待機時間を変更した(15秒→5秒)
update: 取引現況のファイル出力について、生成済バックアップの破棄タイミングを変更した。「定期的に破棄」から、「EA起動時(EA設定値変更や接続先口座の変更等を含む)、新たな複製元を検知、複製先の取引開始」のいずれかを検知したときに、生成済のバックアップを破棄して新たなバックアップを生成する。
update: 「ファイル出力処理」にて、バックアップの世代数と拡張子を変更した。これにより、バックアップは「1世代のみ(old)」から「1代前(001)~3代前(003)」に変更される。
bugfix: 「目標値計算処理」にて、ロットサイズの変動が発生していない「取引が始まっていない複製先」に対して、削除と再生成が行われてしまうことがあった点を修正した。
bugfix: 「目標値更新処理」にて、決済または取消済の注文に対する更新要求が繰り返される場合がある点を修正した。更新処理にて「エラーコード4108(invalid ticket)」が発生し、「決済・取消時刻」が取得できた場合、更新対象から除外される。
bugfix: 「目標値計算処理」にて、取引手数料を必要とする口座の場合に、取引手数料の累計予測値と決済時の損益集計表示に誤りがあった点を修正した。
bugfix: 各種送信処理にて、サーバへの要求間隔の下限設定が正しく効いていなかった点を修正した。
bugfix: 「ファイル出力処理」にて、ロットサイズ変動等に伴う複製先の一部再生成が行われていた場合、出力ファイルのバックアップが失われてしまっていた点を修正した。
ver1.44 → 1.45
New: A function of restricting the number of pre-reserved orders issued at the replication destination has been implemented (Setting 21). Within the range of the number of stages that can be created, reservation orders corresponding to the number of stages specified by Setting 21 are generated after the replication destination maximum stage whose transaction has been started. Until now, all of the number of stages that can be created have been reserved in advance.
New: The automatic adjustment function of the limit interval and the lot size multiplication factor has been implemented. The operation is stopped by the initial value.
Update: The item number in the setting screen has been changed in accordance with the addition of the setting item. The number on the display has been changed, but the setting value itself applied in the restore operation from saving has not been changed.
Update: The execution timing has been corrected in "Deletion processing of replication". In the past, "Deletion of unused reservation orders to a settled replication source" was performed before "Creation of a replication destination to a new replication source" in rare cases. In addition, the waiting time for deletion of reservation has been changed (15 seconds → 5 seconds).
Update: Regarding the file output of the current transaction status, the timing of destroying the generated backup has been changed. From "periodically destroy", when any of the following is detected, the generated backup is destroyed and a new backup is generated: "when EA is started (including EA setting value change and connection destination account change), a new replication source is detected, and a transaction of the replication destination is started".
Update: In "File output processing", the number of generations and the extension of the backup were changed. As a result, the backup was changed from "1 generation only (old)" to "1 generation before (001) to 3 generations before (003)".
Bugfix: In the "target value calculation process", the point that deletion and regeneration were sometimes performed on the "copy destination where transactions have not started" where the lot size has not changed has been corrected.
Bugfix: In the "target value update process", it was fixed that the update request to the order which has been settled or canceled may be repeated. When "error code 4108 (invalid ticket)" is generated in the update process and the "settlement / cancellation time" can be acquired, it is excluded from the update object.
Bugfix: In the "target value calculation processing", corrected the point that there was an error in the cumulative estimated value of transaction fees and the summary presentation of profit and loss at the time of settlement for account that require transaction fees.
Bugfix: Fixed that the lower limit setting of the request interval to the server was not effective in various transmission processes.
Bugfix: The point that the backup of the output file was lost when a part of the copy destination was regenerated due to the lot size fluctuation in "file output processing" has been corrected.
new: 複製先の事前予約発行数を制限する機能を実装した(設定21)。作成可能段数の範囲内において、取引開始済となっている複製先最大段の後に、設定21指定値の段数だけ予約注文を生成する。これまでは、作成可能段数の全てを事前予約していた。
new: 指値間隔・ロットサイズ増倍率の自動調整機能を実装した。初期値では動作は停止されている。
update: 設定項目の追加にあわせ、設定画面での項目番号を変更した。表示上の番号は変わっているが、保存からの復元操作で適用される設定値自体に変更はない。
update: 「複製の削除処理」にて、実行タイミングを修正した。これまでは、稀に「新たな複製元に対する、複製先の作成」よりも先に「決済済の複製元に対する、使われなかった予約注文の削除」が行われることがあった。また、予約削除の待機時間を変更した(15秒→5秒)
update: 取引現況のファイル出力について、生成済バックアップの破棄タイミングを変更した。「定期的に破棄」から、「EA起動時(EA設定値変更や接続先口座の変更等を含む)、新たな複製元を検知、複製先の取引開始」のいずれかを検知したときに、生成済のバックアップを破棄して新たなバックアップを生成する。
update: 「ファイル出力処理」にて、バックアップの世代数と拡張子を変更した。これにより、バックアップは「1世代のみ(old)」から「1代前(001)~3代前(003)」に変更される。
bugfix: 「目標値計算処理」にて、ロットサイズの変動が発生していない「取引が始まっていない複製先」に対して、削除と再生成が行われてしまうことがあった点を修正した。
bugfix: 「目標値更新処理」にて、決済または取消済の注文に対する更新要求が繰り返される場合がある点を修正した。更新処理にて「エラーコード4108(invalid ticket)」が発生し、「決済・取消時刻」が取得できた場合、更新対象から除外される。
bugfix: 「目標値計算処理」にて、取引手数料を必要とする口座の場合に、取引手数料の累計予測値と決済時の損益集計表示に誤りがあった点を修正した。
bugfix: 各種送信処理にて、サーバへの要求間隔の下限設定が正しく効いていなかった点を修正した。
bugfix: 「ファイル出力処理」にて、ロットサイズ変動等に伴う複製先の一部再生成が行われていた場合、出力ファイルのバックアップが失われてしまっていた点を修正した。
ver1.44 → 1.45
New: A function of restricting the number of pre-reserved orders issued at the replication destination has been implemented (Setting 21). Within the range of the number of stages that can be created, reservation orders corresponding to the number of stages specified by Setting 21 are generated after the replication destination maximum stage whose transaction has been started. Until now, all of the number of stages that can be created have been reserved in advance.
New: The automatic adjustment function of the limit interval and the lot size multiplication factor has been implemented. The operation is stopped by the initial value.
Update: The item number in the setting screen has been changed in accordance with the addition of the setting item. The number on the display has been changed, but the setting value itself applied in the restore operation from saving has not been changed.
Update: The execution timing has been corrected in "Deletion processing of replication". In the past, "Deletion of unused reservation orders to a settled replication source" was performed before "Creation of a replication destination to a new replication source" in rare cases. In addition, the waiting time for deletion of reservation has been changed (15 seconds → 5 seconds).
Update: Regarding the file output of the current transaction status, the timing of destroying the generated backup has been changed. From "periodically destroy", when any of the following is detected, the generated backup is destroyed and a new backup is generated: "when EA is started (including EA setting value change and connection destination account change), a new replication source is detected, and a transaction of the replication destination is started".
Update: In "File output processing", the number of generations and the extension of the backup were changed. As a result, the backup was changed from "1 generation only (old)" to "1 generation before (001) to 3 generations before (003)".
Bugfix: In the "target value calculation process", the point that deletion and regeneration were sometimes performed on the "copy destination where transactions have not started" where the lot size has not changed has been corrected.
Bugfix: In the "target value update process", it was fixed that the update request to the order which has been settled or canceled may be repeated. When "error code 4108 (invalid ticket)" is generated in the update process and the "settlement / cancellation time" can be acquired, it is excluded from the update object.
Bugfix: In the "target value calculation processing", corrected the point that there was an error in the cumulative estimated value of transaction fees and the summary presentation of profit and loss at the time of settlement for account that require transaction fees.
Bugfix: Fixed that the lower limit setting of the request interval to the server was not effective in various transmission processes.
Bugfix: The point that the backup of the output file was lost when a part of the copy destination was regenerated due to the lot size fluctuation in "file output processing" has been corrected.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.43 → 1.44
bugfix:「目標値計算処理」にて、取引手数料を必要とする口座の場合に、取引手数料の累計予測値に誤りがあった点を修正した。
bugfix:「目標値計算処理」にて、口座通貨と注文の基軸通貨が一致していない場合に、T/P値・S/L値が正しく導出されなかった点を修正した。
ver1.43 → 1.44
Bugfix: In the "target value calculation process", corrected the error in the cumulative forecast value of transaction fees in the case of an account that requires transaction fees.
Bugfix: Corrected the point that the T/P value and S/L value were not correctly derived when the account currency and the base currency of the order did not match in the "target value calculation process."
bugfix:「目標値計算処理」にて、取引手数料を必要とする口座の場合に、取引手数料の累計予測値に誤りがあった点を修正した。
bugfix:「目標値計算処理」にて、口座通貨と注文の基軸通貨が一致していない場合に、T/P値・S/L値が正しく導出されなかった点を修正した。
ver1.43 → 1.44
Bugfix: In the "target value calculation process", corrected the error in the cumulative forecast value of transaction fees in the case of an account that requires transaction fees.
Bugfix: Corrected the point that the T/P value and S/L value were not correctly derived when the account currency and the base currency of the order did not match in the "target value calculation process."
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.42 → 1.43
bugfix:「目標値計算処理」にて、導出された作成可能段数が「設定20で指定した上限数」に達すると、S/L値の指定に異常が発生することがある問題を修正した。(設定20の値が10の場合、他の設定値から導出される作成可能段数が9までであれば、この異常は発生しない。同様に、設定20の値が20の場合、導出される作成可能段数が19までであれば発生しない)
bugfix:スワップ価格の更新時にEAが異常終了する可能性があった点を修正した。
bugfix:「自動再発注」にて、「損失によるS/L決済」発生時に再発注待機の「時間経過による待機終了」が失敗していた問題を修正した(待機時間経過後にEAやTerminalの再起動を行うと、異常なく再発注は行われていた)
ver1.42 → 1.43
Bugfix: Fixed a problem in which, in the "target value calculation processing", if the derived number of possible creation stages reaches the "upper limit number specified in setting 20", an error may occur in the specification of the S/L value. (If the value of setting 20 is 10, this error does not occur if the number of possible creation tiers derived from other setting values is up to 9. Similarly, if the value of setting 20 is 20, this error does not occur if the number of possible creation tiers derived is up to 19.)
Bugfix: fixed possible EA crash when updating swap prices.
Bugfix: Fixed an issue in "automatic reorder" where "wait termination due to elapsed time" of the reorder wait failed when "S/L settlement due to loss" occurred (If EA or Terminal was restarted after the wait time elapsed, the reorder was done without error)
bugfix:「目標値計算処理」にて、導出された作成可能段数が「設定20で指定した上限数」に達すると、S/L値の指定に異常が発生することがある問題を修正した。(設定20の値が10の場合、他の設定値から導出される作成可能段数が9までであれば、この異常は発生しない。同様に、設定20の値が20の場合、導出される作成可能段数が19までであれば発生しない)
bugfix:スワップ価格の更新時にEAが異常終了する可能性があった点を修正した。
bugfix:「自動再発注」にて、「損失によるS/L決済」発生時に再発注待機の「時間経過による待機終了」が失敗していた問題を修正した(待機時間経過後にEAやTerminalの再起動を行うと、異常なく再発注は行われていた)
ver1.42 → 1.43
Bugfix: Fixed a problem in which, in the "target value calculation processing", if the derived number of possible creation stages reaches the "upper limit number specified in setting 20", an error may occur in the specification of the S/L value. (If the value of setting 20 is 10, this error does not occur if the number of possible creation tiers derived from other setting values is up to 9. Similarly, if the value of setting 20 is 20, this error does not occur if the number of possible creation tiers derived is up to 19.)
Bugfix: fixed possible EA crash when updating swap prices.
Bugfix: Fixed an issue in "automatic reorder" where "wait termination due to elapsed time" of the reorder wait failed when "S/L settlement due to loss" occurred (If EA or Terminal was restarted after the wait time elapsed, the reorder was done without error)
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.41→1.42
bugfix:「ファイル出力」にて、現行注文ファイルの掲載内容で「取引種別文字列」が正しく出力されていなかった問題を修正した。
bugfix:「ファイル出力」にて、現行注文ファイルの掲載内容に「決済種別コード」と「T/P決済時反転段数下限閾値」を追加した。また、ファイル出力のヘッダ文字列を修正した。
bugfix:「目標値計算処理」にて、「複製元が成行注文」かつ「0段注文の作成あり」の場合に、一時的にS/L計算値がずれる問題を修正した(これまでは、続いて行われる1段以降の予約注文発行、または定期再計算で修正されていた)
bugfix:「ファイル出力」にて、無限ループに陥ってしまう可能性がある条件を修正した。
ver1.41→1.42
Bugfix: Fixed an issue in "file output" where the "transaction type string" was not output correctly in the content of the current order file.
Bugfix: In "File Output", "Settlement Type Code" and "Lower Limit Threshold for Number of Inversion Tiers at T/P Settlement" were added to the content of the current order file, and the header character string of the file output was corrected.
Bugfix: Fixed the problem that the calculated S/L value temporarily deviates when the "Copy source is a market order" and the "Creation of 0th tier order" in the "Target value calculation process". (Previously, it was corrected to the correct value by the following pre-order issue of 1st tier or more or periodical recalculation)
Bugfix: fixed a condition in "file output" that could lead to an infinite loop.
bugfix:「ファイル出力」にて、現行注文ファイルの掲載内容で「取引種別文字列」が正しく出力されていなかった問題を修正した。
bugfix:「ファイル出力」にて、現行注文ファイルの掲載内容に「決済種別コード」と「T/P決済時反転段数下限閾値」を追加した。また、ファイル出力のヘッダ文字列を修正した。
bugfix:「目標値計算処理」にて、「複製元が成行注文」かつ「0段注文の作成あり」の場合に、一時的にS/L計算値がずれる問題を修正した(これまでは、続いて行われる1段以降の予約注文発行、または定期再計算で修正されていた)
bugfix:「ファイル出力」にて、無限ループに陥ってしまう可能性がある条件を修正した。
ver1.41→1.42
Bugfix: Fixed an issue in "file output" where the "transaction type string" was not output correctly in the content of the current order file.
Bugfix: In "File Output", "Settlement Type Code" and "Lower Limit Threshold for Number of Inversion Tiers at T/P Settlement" were added to the content of the current order file, and the header character string of the file output was corrected.
Bugfix: Fixed the problem that the calculated S/L value temporarily deviates when the "Copy source is a market order" and the "Creation of 0th tier order" in the "Target value calculation process". (Previously, it was corrected to the correct value by the following pre-order issue of 1st tier or more or periodical recalculation)
Bugfix: fixed a condition in "file output" that could lead to an infinite loop.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.31→1.40
new:「EA単独での自動再発注動作」にて、「曜日・時間帯による再発注の抑止」を行えるようになりました。「再発注を許可する曜日・時間帯」を、「許可開始時刻~許可終了・抑止開始時刻」という形で、通貨ペア毎に指定できます。「抑止されている間に行われた決済」に対する自動再発注は、抑止時間帯が終わってから自動で処理されます。
new:S/L値の計算モードに「3:口座残高に対する割合(%表記)」を追加しました。
new:「臨時に行う注文」への複製作成機能を追加しました。ターミナルでの注文発行時に「spot」または「臨時」とだけ入力すると、通常時と別の複製段数上限を用いて複製先が生成されます。また、臨時扱いの注文に対しては、EAによる証拠金維持率の監視が行われません。
new:設定項目に対する詳細な説明を、設定値の出力ファイルに追加しました。既定値で説明文を出力しますが、説明文のみを消す設定項目が追加されています。
update:無償版での設定可能項目を複数開放しました。有償版との違いは「このEA単独での自動再発注動作の有無」だけとなります。無償版を使用して自動再発注を行うには、注文を発行する他のツールやサービスを併用してください。発行された注文を「複製元」として、このEAが動作します。
update:複製元の総数制限を変更しました。「手動注文」と「他のツールやサービス起点の注文」、ともに「通貨ペア毎に10」が設定の上限となります(併用可。動作上限値は設定項目で変更可)
update:ターミナルログへの出力内容を見直しました。また、ログ出力の程度を選べるようにしました。
update:取引条件の「証拠金計算モード」と「利益計算モード」が、ともに「FX」となっている取引以外での動作を抑止しました。「FX以外」では、EAからは注文に対して何も干渉せず、複製注文の作成自体が行われなくなります。
update:ソースの見通しの改善を兼ねて、一から書き直しました。注文に対する処理そのものは、ver1.31と概ね同じです。これにあわせて、設定項目と初期設定値が変更されており、ver1.31以前の設定値保存内容は使用できません。継続利用にあたっては、設定値の再確認をお願いします。設定項目の説明は、「設定値の自動出力ファイル」に記載されています。
ver1.31→1.40
New: In the "automatic reorder operation by EA alone", "suppression of reorder by day of week and time zone" can be performed. The "day of week and time zone in which reorder is permitted" can be specified for each currency pair in the form of "permission start time to permission end and suppression start time". Automatic reorder for "settlements made while suppressed" is automatically processed after the suppression time zone.
New: Added "3:% of account balance" to S/L value calculation mode.
New: Added the ability to create duplicates for "spot orders". If you enter only "spot" when placing an order in Terminal, the system generates a duplicate destination with a different limit for the number of copies than normal. Also, the EA does not monitor margin maintenance for ad hoc orders.
New: Added a detailed description of the configuration item to the configuration output file. The description is output by default, but a configuration item that erases only the description has been added.
Update: Several items that can be set in the free version have been released. The only difference between the free version and the paid version is "whether or not this EA will automatically reorder by itself." To automatically reorder using the free version, use other tools and services to place orders. This EA will act with the placed order as the "clone from".
Update: Changed the limit on the total number of replication sources. "10 per currency pair" is set as the upper limit for both "Manual injection" and "Order for other tools and services origin" (can be used together. The upper limit of operation can be changed by setting items).
Update: Output to the terminal log has been reviewed and the level of output can now be selected.
Update: We have suppressed the operation except for the transactions whose "margin calculation mode" and "profit calculation mode" of the transaction terms are "FX". In "non-FX", EA does not interfere with the order and does not create duplicate orders.
Update: To improve the source perspective, I've rewritten it from the ground up. The processing of the order itself is almost the same as that of ver. 1.31. In accordance with this, the setting items and initial setting values have been changed, and the saved setting values of ver. 1.31 or earlier cannot be used. Please reconfirm the setting values before continuing to use. The description of setting items is described in "Automatic output file of setting values".
new:「EA単独での自動再発注動作」にて、「曜日・時間帯による再発注の抑止」を行えるようになりました。「再発注を許可する曜日・時間帯」を、「許可開始時刻~許可終了・抑止開始時刻」という形で、通貨ペア毎に指定できます。「抑止されている間に行われた決済」に対する自動再発注は、抑止時間帯が終わってから自動で処理されます。
new:S/L値の計算モードに「3:口座残高に対する割合(%表記)」を追加しました。
new:「臨時に行う注文」への複製作成機能を追加しました。ターミナルでの注文発行時に「spot」または「臨時」とだけ入力すると、通常時と別の複製段数上限を用いて複製先が生成されます。また、臨時扱いの注文に対しては、EAによる証拠金維持率の監視が行われません。
new:設定項目に対する詳細な説明を、設定値の出力ファイルに追加しました。既定値で説明文を出力しますが、説明文のみを消す設定項目が追加されています。
update:無償版での設定可能項目を複数開放しました。有償版との違いは「このEA単独での自動再発注動作の有無」だけとなります。無償版を使用して自動再発注を行うには、注文を発行する他のツールやサービスを併用してください。発行された注文を「複製元」として、このEAが動作します。
update:複製元の総数制限を変更しました。「手動注文」と「他のツールやサービス起点の注文」、ともに「通貨ペア毎に10」が設定の上限となります(併用可。動作上限値は設定項目で変更可)
update:ターミナルログへの出力内容を見直しました。また、ログ出力の程度を選べるようにしました。
update:取引条件の「証拠金計算モード」と「利益計算モード」が、ともに「FX」となっている取引以外での動作を抑止しました。「FX以外」では、EAからは注文に対して何も干渉せず、複製注文の作成自体が行われなくなります。
update:ソースの見通しの改善を兼ねて、一から書き直しました。注文に対する処理そのものは、ver1.31と概ね同じです。これにあわせて、設定項目と初期設定値が変更されており、ver1.31以前の設定値保存内容は使用できません。継続利用にあたっては、設定値の再確認をお願いします。設定項目の説明は、「設定値の自動出力ファイル」に記載されています。
ver1.31→1.40
New: In the "automatic reorder operation by EA alone", "suppression of reorder by day of week and time zone" can be performed. The "day of week and time zone in which reorder is permitted" can be specified for each currency pair in the form of "permission start time to permission end and suppression start time". Automatic reorder for "settlements made while suppressed" is automatically processed after the suppression time zone.
New: Added "3:% of account balance" to S/L value calculation mode.
New: Added the ability to create duplicates for "spot orders". If you enter only "spot" when placing an order in Terminal, the system generates a duplicate destination with a different limit for the number of copies than normal. Also, the EA does not monitor margin maintenance for ad hoc orders.
New: Added a detailed description of the configuration item to the configuration output file. The description is output by default, but a configuration item that erases only the description has been added.
Update: Several items that can be set in the free version have been released. The only difference between the free version and the paid version is "whether or not this EA will automatically reorder by itself." To automatically reorder using the free version, use other tools and services to place orders. This EA will act with the placed order as the "clone from".
Update: Changed the limit on the total number of replication sources. "10 per currency pair" is set as the upper limit for both "Manual injection" and "Order for other tools and services origin" (can be used together. The upper limit of operation can be changed by setting items).
Update: Output to the terminal log has been reviewed and the level of output can now be selected.
Update: We have suppressed the operation except for the transactions whose "margin calculation mode" and "profit calculation mode" of the transaction terms are "FX". In "non-FX", EA does not interfere with the order and does not create duplicate orders.
Update: To improve the source perspective, I've rewritten it from the ground up. The processing of the order itself is almost the same as that of ver. 1.31. In accordance with this, the setting items and initial setting values have been changed, and the saved setting values of ver. 1.31 or earlier cannot be used. Please reconfirm the setting values before continuing to use. The description of setting items is described in "Automatic output file of setting values".
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.30→1.31
New:全バージョン用の設定可能項目として、複製作成段数の上限に、従来の「S/L下限値(StopLossCalcMode:0)」と「全段階を発注した後の損失許容幅(point)(StopLossCalcMode:1)」の他に、「総損失額(StopLossCalcMode:2)」を新たに追加した。「StopLossCalcMode:2」のとき、「StopLossReserve」の設定値は「口座通貨ベースでの、口座残高からの許容損失額」として扱われ、S/L値設定に反映される。なお、「StopLossCalcMode:2」の場合に限り、複製元の件数は考慮されないため、複製元が複数ある場合に「証拠金維持率不足による強制ロスカット」が発生する可能性がある(複製元1つ毎に、許容損失額が別個に適用されるため)
Update:「証拠金不足による発注失敗」を検知した場合、(件数変動やチケット番号構成の変動に伴う)リスト再生成処理が行われるまでは、ローカルコピーの新規生成・補完処理を行わないようにしました。
Update:OnTickイベントでのチケット情報照会の実行を「件数変動時のみ」から「常時」へ変更しました。
Ver. 1.30 → 1.31
New : In addition to the conventional "S/L lower limit (StopLossCalcMode : 0)" and "Allowable loss range (point) after ordering all stages (StopLossCalcMode : 1)", "Total loss amount (StopLossCalcMode : 2)" has been newly added to the upper limit of the number of duplicate generation stages as settable items for all versions. When "StopLossCalcMode : 2" is set, the setting value of "StopLossReserve" is treated as "Allowable loss amount from account balance based on account currency" and is reflected in the S/L value setting. Only in the case of "StopLossCalcMode : 2", the number of duplicate sources is not considered. Therefore, when there are multiple duplicate sources, "forced loss-cut due to insufficient margin maintenance rate" may occur (because the allowable loss amount is separately applied to each duplicate source).
Update : When an "order failure due to insufficient margin" is detected, the local copy is no longer newly created or complemented until the list is regenerated (due to changes in the number of items or ticket number configuration).
Update : The ability to query ticket information on the OnTick event has been changed from "only when the number of tickets changes" to "always".
New:全バージョン用の設定可能項目として、複製作成段数の上限に、従来の「S/L下限値(StopLossCalcMode:0)」と「全段階を発注した後の損失許容幅(point)(StopLossCalcMode:1)」の他に、「総損失額(StopLossCalcMode:2)」を新たに追加した。「StopLossCalcMode:2」のとき、「StopLossReserve」の設定値は「口座通貨ベースでの、口座残高からの許容損失額」として扱われ、S/L値設定に反映される。なお、「StopLossCalcMode:2」の場合に限り、複製元の件数は考慮されないため、複製元が複数ある場合に「証拠金維持率不足による強制ロスカット」が発生する可能性がある(複製元1つ毎に、許容損失額が別個に適用されるため)
Update:「証拠金不足による発注失敗」を検知した場合、(件数変動やチケット番号構成の変動に伴う)リスト再生成処理が行われるまでは、ローカルコピーの新規生成・補完処理を行わないようにしました。
Update:OnTickイベントでのチケット情報照会の実行を「件数変動時のみ」から「常時」へ変更しました。
Ver. 1.30 → 1.31
New : In addition to the conventional "S/L lower limit (StopLossCalcMode : 0)" and "Allowable loss range (point) after ordering all stages (StopLossCalcMode : 1)", "Total loss amount (StopLossCalcMode : 2)" has been newly added to the upper limit of the number of duplicate generation stages as settable items for all versions. When "StopLossCalcMode : 2" is set, the setting value of "StopLossReserve" is treated as "Allowable loss amount from account balance based on account currency" and is reflected in the S/L value setting. Only in the case of "StopLossCalcMode : 2", the number of duplicate sources is not considered. Therefore, when there are multiple duplicate sources, "forced loss-cut due to insufficient margin maintenance rate" may occur (because the allowable loss amount is separately applied to each duplicate source).
Update : When an "order failure due to insufficient margin" is detected, the local copy is no longer newly created or complemented until the list is regenerated (due to changes in the number of items or ticket number configuration).
Update : The ability to query ticket information on the OnTick event has been changed from "only when the number of tickets changes" to "always".
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.29→1.30
new:有償版の機能として、「損失によるS/L値決済」が発生した場合、自動再発注の処理を30分間、停止するようにしました。手動発注や「他EAやサービス等」による発注に対するローカルコピーの生成は、引き続き行われます。
new:有償版の機能として、自動再発注時に売買方向を反転させる条件として「『0段のみ発動してのtp決済、もしくはローカルコピーの決済なし』が連続して発生した場合」を追加しました。この条件に該当した場合に反転を行うかは、選択できます。
update:有償版の機能として、自動再発注時のローカルコピー発動段数設定値として「マイナス値」を追加しました。マイナス値に設定した場合、EA起動後もしくは手動発注操作後、初回の自動再発注では1段以上の発動で売買方向を反転します。以後の自動再発注では「前回の再発注での発動段数以上の発動で売買方向を反転」します。
update:ローカルコピーの補完処理時、ターミナルログに損益分界点を出力するようにしました。
update:有償版の機能として、「EAによるトレイリングストップ」の開始タイミングを再修正しました。開始時のS/L設定値は「T/P計算値から損失許容幅の2倍を除いた値」となります。
bugfix:ローカルコピーの上限段数よりも余剰証拠金が多い場合に、ローカルコピー自体が作成されない点を修正しました。
bugfix:ローカルコピーが1件もない状態にて、欠落補完が動作しない点を修正しました。
bugfix:日本円が関係する通貨ペアで、ローカルコピーが作成されない点を修正しました。
bugfix:一部のローカルコピーのみが決済されてしまった状態で、ローカルコピーの補完処理中に、無限ループに入ってしまう条件がみつかったため、修正しました。
bugfix:接続先サーバ・アカウント変更時、テキスト出力される発注リストの内容が、一時的に接続先変更前後の情報が入り混じっていた点を修正しました。接続先変更操作直後の出力では、変更前サーバ・アカウントの発注リストが出力されます。(接続先変更操作後、時刻情報取得または市場閉鎖を検出した時点で、変更後サーバ・アカウントの発注リストが出力されるのは、従来通りに行われます)。また、チャートの時間足変更操作でもファイル出力がされてしまっていた動作を、抑止しました。
bugfix:「複製元が消失し、ローカルコピーのみが有効な発注として存在している」状況でEAを起動させた場合、ランタイムエラーが発生することがあった点を修正しました。常時動作させている状況下では発生しませんが、ターミナルを接続していない間にT/P値等による決済が行われると、その後の接続時に発生する可能性がありました。
bugfix:市場閉鎖中にEAを起動させた際、自動削除対象となるチケットが複数存在している場合に、「市場閉鎖中」のメッセージが複数回ログ出力されてしまう点を修正しました。
bugfix:「手動発注の決済後自動再発注」にて、「複製元がT/P値による決済」で、「取消済以外の複製先」が「全てT/P値による決済以外で決済済」もしくは「決済済が存在しない」場合に、自動再発注が行われない点を修正しました。「複製先がT/P値以外で決済」の場合、売買方向を反転して再発注を行います(「複製先がT/P値による決済」の場合よりも優先されます)。「複製先での決済済が存在しない」場合は、ping応答時間に応じた待ち時間を措いてもう一度確認したうえで、同一方向で再発注を行います。
ver1.29→1.30
New : In the Paid Version feature, automatic reorder processing is now suspended for 30 minutes in the event of "Settlement of S/L value due to loss". Generation of local copies for manual orders and "Other EAs, Services, etc." orders continues.
New : In the function of the paid version, as a condition to reverse the buying and selling direction at the time of automatic re-ordering, "when' tp settlement activated only in the 0th column or no settlement of local copy' occurs continuously" has been added. You can choose whether to reverse when this condition is met.
Update : In the function of the paid version, "negative value" has been added as a local copy activation stage setting value at the time of automatic reorder. When it is set to a negative value, after EA activation or manual order operation, in the first automatic reorder, the trading direction is reversed by activation of one or more stages. In the subsequent automatic reorder, "the trading direction is reversed by activation of more than the activation stage in the previous reorder".
Update : Output the break-even point to the terminal log when complementing local copies.
Update : In the paid version of the feature, the starting timing of "Trailing Stop by EA" has been corrected again. The S/L setting value at the starting time is "calculated T/P value minus 2 times of the allowable loss range".
Bugfix : Fix for an issue where the local copy itself is not created when excess margin is greater than the "maximum number of local copies".
Bugfix : Fix an issue where missing completion does not work when there are no local copies.
Bugfix : Fixed an issue that prevented local copies from being created for currency pairs involving Japanese Yen.
Bugfix : Fix for an issue that could lead to an infinite loop when processing to compensate for a missing local copy after "only a portion of the local copy has been settled".
Bugfix : When changing the destination server account, the content of the purchase order list output as text was temporarily mixed with the information before and after the destination change. When the output is output immediately after the destination change operation, the purchase order list of the server account before the change is output. (When the time information is obtained or market closure is detected after the destination change operation, the purchase order list of the server account after the change is output as before.) In addition, the fact that the file output was also performed in the time step change operation of the chart was suppressed.
Bugfix : Fix that a runtime error could occur if EA was started in a situation where "the source has disappeared and only the local copy exists as a valid a valid purchase order". This does not occur under conditions of constant operation. However, if settlement is made by T/P value etc. while the terminal is not connected, it could occur at the time of subsequent connection.
Bugfix : Fix that when an EA is activated during a market shutdown, if there are multiple tickets to be automatically deleted, a "market closed" message is logged multiple times.
Bugfix : In "Automatic Reorder after Settlement of Manual Purchase Order", it was fixed that automatic reorder is not performed when "the replication source is settled by T/P value" and "the replication destination other than cancelled" is "settled by all other than T/P value" or "settled does not exist". When "the replication destination is settled by other than T/P value", the buying and selling direction is reversed and the reorder is performed (it takes precedence over the case of "the replication destination is settled by T/P value"). When "settled does not exist at the replication destination", the waiting time corresponding to the ping response time is removed and check again, and then reorder in the same direction.
new:有償版の機能として、「損失によるS/L値決済」が発生した場合、自動再発注の処理を30分間、停止するようにしました。手動発注や「他EAやサービス等」による発注に対するローカルコピーの生成は、引き続き行われます。
new:有償版の機能として、自動再発注時に売買方向を反転させる条件として「『0段のみ発動してのtp決済、もしくはローカルコピーの決済なし』が連続して発生した場合」を追加しました。この条件に該当した場合に反転を行うかは、選択できます。
update:有償版の機能として、自動再発注時のローカルコピー発動段数設定値として「マイナス値」を追加しました。マイナス値に設定した場合、EA起動後もしくは手動発注操作後、初回の自動再発注では1段以上の発動で売買方向を反転します。以後の自動再発注では「前回の再発注での発動段数以上の発動で売買方向を反転」します。
update:ローカルコピーの補完処理時、ターミナルログに損益分界点を出力するようにしました。
update:有償版の機能として、「EAによるトレイリングストップ」の開始タイミングを再修正しました。開始時のS/L設定値は「T/P計算値から損失許容幅の2倍を除いた値」となります。
bugfix:ローカルコピーの上限段数よりも余剰証拠金が多い場合に、ローカルコピー自体が作成されない点を修正しました。
bugfix:ローカルコピーが1件もない状態にて、欠落補完が動作しない点を修正しました。
bugfix:日本円が関係する通貨ペアで、ローカルコピーが作成されない点を修正しました。
bugfix:一部のローカルコピーのみが決済されてしまった状態で、ローカルコピーの補完処理中に、無限ループに入ってしまう条件がみつかったため、修正しました。
bugfix:接続先サーバ・アカウント変更時、テキスト出力される発注リストの内容が、一時的に接続先変更前後の情報が入り混じっていた点を修正しました。接続先変更操作直後の出力では、変更前サーバ・アカウントの発注リストが出力されます。(接続先変更操作後、時刻情報取得または市場閉鎖を検出した時点で、変更後サーバ・アカウントの発注リストが出力されるのは、従来通りに行われます)。また、チャートの時間足変更操作でもファイル出力がされてしまっていた動作を、抑止しました。
bugfix:「複製元が消失し、ローカルコピーのみが有効な発注として存在している」状況でEAを起動させた場合、ランタイムエラーが発生することがあった点を修正しました。常時動作させている状況下では発生しませんが、ターミナルを接続していない間にT/P値等による決済が行われると、その後の接続時に発生する可能性がありました。
bugfix:市場閉鎖中にEAを起動させた際、自動削除対象となるチケットが複数存在している場合に、「市場閉鎖中」のメッセージが複数回ログ出力されてしまう点を修正しました。
bugfix:「手動発注の決済後自動再発注」にて、「複製元がT/P値による決済」で、「取消済以外の複製先」が「全てT/P値による決済以外で決済済」もしくは「決済済が存在しない」場合に、自動再発注が行われない点を修正しました。「複製先がT/P値以外で決済」の場合、売買方向を反転して再発注を行います(「複製先がT/P値による決済」の場合よりも優先されます)。「複製先での決済済が存在しない」場合は、ping応答時間に応じた待ち時間を措いてもう一度確認したうえで、同一方向で再発注を行います。
ver1.29→1.30
New : In the Paid Version feature, automatic reorder processing is now suspended for 30 minutes in the event of "Settlement of S/L value due to loss". Generation of local copies for manual orders and "Other EAs, Services, etc." orders continues.
New : In the function of the paid version, as a condition to reverse the buying and selling direction at the time of automatic re-ordering, "when' tp settlement activated only in the 0th column or no settlement of local copy' occurs continuously" has been added. You can choose whether to reverse when this condition is met.
Update : In the function of the paid version, "negative value" has been added as a local copy activation stage setting value at the time of automatic reorder. When it is set to a negative value, after EA activation or manual order operation, in the first automatic reorder, the trading direction is reversed by activation of one or more stages. In the subsequent automatic reorder, "the trading direction is reversed by activation of more than the activation stage in the previous reorder".
Update : Output the break-even point to the terminal log when complementing local copies.
Update : In the paid version of the feature, the starting timing of "Trailing Stop by EA" has been corrected again. The S/L setting value at the starting time is "calculated T/P value minus 2 times of the allowable loss range".
Bugfix : Fix for an issue where the local copy itself is not created when excess margin is greater than the "maximum number of local copies".
Bugfix : Fix an issue where missing completion does not work when there are no local copies.
Bugfix : Fixed an issue that prevented local copies from being created for currency pairs involving Japanese Yen.
Bugfix : Fix for an issue that could lead to an infinite loop when processing to compensate for a missing local copy after "only a portion of the local copy has been settled".
Bugfix : When changing the destination server account, the content of the purchase order list output as text was temporarily mixed with the information before and after the destination change. When the output is output immediately after the destination change operation, the purchase order list of the server account before the change is output. (When the time information is obtained or market closure is detected after the destination change operation, the purchase order list of the server account after the change is output as before.) In addition, the fact that the file output was also performed in the time step change operation of the chart was suppressed.
Bugfix : Fix that a runtime error could occur if EA was started in a situation where "the source has disappeared and only the local copy exists as a valid a valid purchase order". This does not occur under conditions of constant operation. However, if settlement is made by T/P value etc. while the terminal is not connected, it could occur at the time of subsequent connection.
Bugfix : Fix that when an EA is activated during a market shutdown, if there are multiple tickets to be automatically deleted, a "market closed" message is logged multiple times.
Bugfix : In "Automatic Reorder after Settlement of Manual Purchase Order", it was fixed that automatic reorder is not performed when "the replication source is settled by T/P value" and "the replication destination other than cancelled" is "settled by all other than T/P value" or "settled does not exist". When "the replication destination is settled by other than T/P value", the buying and selling direction is reversed and the reorder is performed (it takes precedence over the case of "the replication destination is settled by T/P value"). When "settled does not exist at the replication destination", the waiting time corresponding to the ping response time is removed and check again, and then reorder in the same direction.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.28→1.29
bugfix:「手動発注の決済後自動再発注」で、複数の複製元があると、1件の決済に対して繰り返し再発注を行ってしまうことがある点を修正しました。
update:急激な価格変動への対策として、「EAによるトレイリングストップ」を開始する順番を変更し、動作開始タイミングを早くしました。複製元は、ローカルコピーより後に開始するようになり、開始時のS/L設定値は「T/P計算値から損失許容幅の3倍を除いた値」となります。(これまでは、「2倍を除いた値」から開始していました。S/L値をロックする条件に変更はありません)
update:急激な価格変動への対策として、タイマーイベントでの処理順序を見直し、「成り行き発注の生成」と「成り行き発注へのT/P値等の設定」を、「指値発注の生成と値設定」よりも優先させるようにしました。複製元が「成り行き発注」の場合、「0段目の生成がある」設定では「指値発注」は「(15sec間隔で行われる)欠落補完処理」を用いて生成されます。(「複製元が指値発注」の場合、または「0段目の生成がない」設定では、従来どおり5秒間隔で処理されます)
update:急激な価格変動への対策として、「EAによるトレイリングストップ」を開始した「初回の更新処理中にT/P値による決済が発生してしまった場合」の例外処理を追加しました。これにより、T/P値による決済が行われてしまったチケットに対する更新要求が抑止されます。
update:「複製先の欠落補完処理」を処理の本線から分離、個別で呼べるようにしました。これにより、ver1.27以降で行われなくなっていた、「市場価格との不整合により、事前に作れなかったローカルコピーの追加作成」が、作成可能になり次第、実行するようになります。(15sec間隔で監視、実行します)
new:「取引開始済のローカルコピー段数」が作成可能段数を超えている場合、T/P値等の再計算にて検出する処理を追加しました。また、これまでは「作成可能段数」を基準とした値のログへの出力が行われていたために、段数超過時のみにおいて実態に即した値となっていませんでした。この処理により、段数超過の場合は「取引開始済の段数」で出力されるようになります。同時に、追加で警告メッセージがターミナルログに出力されます。
bugfix:ローカルコピー作成後に作成可能段数が増えた場合、S/L値・T/P値の更新時に、ランタイムエラーが発生することがある点を修正しました。
bugfix:「全段発動後の許容損失幅」の値が大きすぎる場合に、「証拠金維持率の下限」を超えたS/L値の設定が行えてしまう点を修正しました。許容損失幅の設定値が大きすぎる場合、S/L設定値は「証拠金維持率の下限」を限度に、修正されます。
bugfix:作成可能段数の算出において、「証拠金維持率の下限値」と「全段発動後の許容損失幅」が過大に評価されていた点を修正しました。(この問題により、作成可能段数が、本来よりも少なくなっていました)
bugfix:削除対象のマーキングが重複し、また対象件数を正しく出力できない場合があった点を修正しました。(削除そのものは正常に行われています)
bugfix:「複製元の消失に伴う、自動決済処理」にて、失敗時のみ、ターミナルログ出力での件数表記が異常となる点を修正しました。(自動決済が正常に行われていれば発生しません。S/L値やT/P値によるサーバ側での自動決済処理結果をEAが認識する前に、EAから決済リクエストを行った場合に発生していました)
bugfix:「各ローカルコピーのロットサイズ」が変動するような設定変更が行われた場合、自動削除されるはずの古いチケットが、削除されない問題を修正しました。
update:決済済の複製元に対する欠落補完が行われてしまうことがある事象について、頻度を軽減しました。ですが、完全には解消できていません。(発生頻度は、サーバとターミナルとの通信時間にも依存します。発生すると、「発生した余計なチケット」は速やかに決済または削除されます)
ver1.28→1.29
Bugfix : In "Automatic reorder after settlement of manual order", it is fixed that if there are multiple sources of replication, repeated reorders may be performed for one settlement.
Update : As a countermeasure against sudden price fluctuations, we changed the starting order of "Trailing Stop by EA" to start the operation earlier. The replication source starts after the local copy, and the S/L setting value at the start is "Calculated value of T/P minus 3 times of the loss tolerance". (Previously, we started from "Calculated value minus 2 times". The condition to lock the S/L value does not change.)
Update : As a countermeasure against sudden price fluctuations, we revised the processing order in the timer event so that "generation of streaming order" and "setting of T/P value etc. to streaming order" take precedence over "generation of limit order and setting of value". If the source is "streaming order" and the "generation of 0th stage" is set, the limit order is generated using "missing complement processing (performed every 15 sec)". (If the source is "limit order" or if there is no "generation of 0th stage", the limit order is processed every 5 sec as before.)
Update : As a countermeasure against sudden price fluctuations, we added an exception handling for the case where the T/P value settlement occurred during the initial update process when the Trailing Stop by EA is effective and the Trailing Stop is started. This suppresses update requests for tickets that have already been settled by the T/P value.
Update : We have separated the "missing completion processing of replication destination" from the main line of processing and made it possible to call it separately. This means that the "creation of additional local copies that could not be created in advance due to inconsistency with market prices", which has been stopped since version 1.27, will be executed as soon as it becomes possible. (Monitoring and executing every 15 sec.)
New : A process has been added to detect by recalculating the T/P value, etc., when the "number of already opened local copy number of stages" exceeds the number of stages that can be created. In addition, since the value was output to the log based on the "number of stages that can be created" until now, the value did not correspond to the actual condition only when the number of stages is exceeded. With this process, when the number of stages is exceeded, the value is output based on the "number of stages that have started trading". At the same time, an additional warning message is output to the terminal log.
Bugfix : Fix that a runtime error may occur when updating the S/L and T/P values if the number of stages that can be created after creating a local copy increases.
Bugfix : Fix that the S/L value exceeding the "minimum margin maintenance rate" can be set if the value of the "allowable loss range after full activation" is too large. If the setting value of the allowable loss range is too large, the S/L setting value will be corrected up to the "minimum margin maintenance rate".
Bugfix : Correction of overestimation of "minimum margin maintenance rate" and "allowable loss range after activating all stages" in the calculation of the number of stages that can be created (due to this issue, the number of stages that can be created was less than expected).
Bugfix : Fix duplicated marks for deletion and incorrect output of the number of items (the deletion itself was successful)
Bugfix : In "Automatic payment processing associated with' disappearance from the list of valid tickets' of the replication source", we fixed an error in the number of items displayed in the terminal log output. (This does not occur if automatic payment is performed normally. When EA made a payment request before EA recognized the result of automatic payment processing on the server side based on S/L value or T/P value, it occurred along with the failure of the payment request.)
Bugfix : Fixed an issue where old tickets that were supposed to be automatically deleted were not deleted when a configuration change was made that changed the "size of the lot of each local copy".
Update : We have reduced the frequency of missing completion for the source of replication immediately after the payment is made on the server side, but we have not completely eliminated it. (The frequency of occurrence also depends on communication time between the server and time between the server and the terminal. When it occurs, "extra tickets that have occurred" are quickly settled or deleted.)
bugfix:「手動発注の決済後自動再発注」で、複数の複製元があると、1件の決済に対して繰り返し再発注を行ってしまうことがある点を修正しました。
update:急激な価格変動への対策として、「EAによるトレイリングストップ」を開始する順番を変更し、動作開始タイミングを早くしました。複製元は、ローカルコピーより後に開始するようになり、開始時のS/L設定値は「T/P計算値から損失許容幅の3倍を除いた値」となります。(これまでは、「2倍を除いた値」から開始していました。S/L値をロックする条件に変更はありません)
update:急激な価格変動への対策として、タイマーイベントでの処理順序を見直し、「成り行き発注の生成」と「成り行き発注へのT/P値等の設定」を、「指値発注の生成と値設定」よりも優先させるようにしました。複製元が「成り行き発注」の場合、「0段目の生成がある」設定では「指値発注」は「(15sec間隔で行われる)欠落補完処理」を用いて生成されます。(「複製元が指値発注」の場合、または「0段目の生成がない」設定では、従来どおり5秒間隔で処理されます)
update:急激な価格変動への対策として、「EAによるトレイリングストップ」を開始した「初回の更新処理中にT/P値による決済が発生してしまった場合」の例外処理を追加しました。これにより、T/P値による決済が行われてしまったチケットに対する更新要求が抑止されます。
update:「複製先の欠落補完処理」を処理の本線から分離、個別で呼べるようにしました。これにより、ver1.27以降で行われなくなっていた、「市場価格との不整合により、事前に作れなかったローカルコピーの追加作成」が、作成可能になり次第、実行するようになります。(15sec間隔で監視、実行します)
new:「取引開始済のローカルコピー段数」が作成可能段数を超えている場合、T/P値等の再計算にて検出する処理を追加しました。また、これまでは「作成可能段数」を基準とした値のログへの出力が行われていたために、段数超過時のみにおいて実態に即した値となっていませんでした。この処理により、段数超過の場合は「取引開始済の段数」で出力されるようになります。同時に、追加で警告メッセージがターミナルログに出力されます。
bugfix:ローカルコピー作成後に作成可能段数が増えた場合、S/L値・T/P値の更新時に、ランタイムエラーが発生することがある点を修正しました。
bugfix:「全段発動後の許容損失幅」の値が大きすぎる場合に、「証拠金維持率の下限」を超えたS/L値の設定が行えてしまう点を修正しました。許容損失幅の設定値が大きすぎる場合、S/L設定値は「証拠金維持率の下限」を限度に、修正されます。
bugfix:作成可能段数の算出において、「証拠金維持率の下限値」と「全段発動後の許容損失幅」が過大に評価されていた点を修正しました。(この問題により、作成可能段数が、本来よりも少なくなっていました)
bugfix:削除対象のマーキングが重複し、また対象件数を正しく出力できない場合があった点を修正しました。(削除そのものは正常に行われています)
bugfix:「複製元の消失に伴う、自動決済処理」にて、失敗時のみ、ターミナルログ出力での件数表記が異常となる点を修正しました。(自動決済が正常に行われていれば発生しません。S/L値やT/P値によるサーバ側での自動決済処理結果をEAが認識する前に、EAから決済リクエストを行った場合に発生していました)
bugfix:「各ローカルコピーのロットサイズ」が変動するような設定変更が行われた場合、自動削除されるはずの古いチケットが、削除されない問題を修正しました。
update:決済済の複製元に対する欠落補完が行われてしまうことがある事象について、頻度を軽減しました。ですが、完全には解消できていません。(発生頻度は、サーバとターミナルとの通信時間にも依存します。発生すると、「発生した余計なチケット」は速やかに決済または削除されます)
ver1.28→1.29
Bugfix : In "Automatic reorder after settlement of manual order", it is fixed that if there are multiple sources of replication, repeated reorders may be performed for one settlement.
Update : As a countermeasure against sudden price fluctuations, we changed the starting order of "Trailing Stop by EA" to start the operation earlier. The replication source starts after the local copy, and the S/L setting value at the start is "Calculated value of T/P minus 3 times of the loss tolerance". (Previously, we started from "Calculated value minus 2 times". The condition to lock the S/L value does not change.)
Update : As a countermeasure against sudden price fluctuations, we revised the processing order in the timer event so that "generation of streaming order" and "setting of T/P value etc. to streaming order" take precedence over "generation of limit order and setting of value". If the source is "streaming order" and the "generation of 0th stage" is set, the limit order is generated using "missing complement processing (performed every 15 sec)". (If the source is "limit order" or if there is no "generation of 0th stage", the limit order is processed every 5 sec as before.)
Update : As a countermeasure against sudden price fluctuations, we added an exception handling for the case where the T/P value settlement occurred during the initial update process when the Trailing Stop by EA is effective and the Trailing Stop is started. This suppresses update requests for tickets that have already been settled by the T/P value.
Update : We have separated the "missing completion processing of replication destination" from the main line of processing and made it possible to call it separately. This means that the "creation of additional local copies that could not be created in advance due to inconsistency with market prices", which has been stopped since version 1.27, will be executed as soon as it becomes possible. (Monitoring and executing every 15 sec.)
New : A process has been added to detect by recalculating the T/P value, etc., when the "number of already opened local copy number of stages" exceeds the number of stages that can be created. In addition, since the value was output to the log based on the "number of stages that can be created" until now, the value did not correspond to the actual condition only when the number of stages is exceeded. With this process, when the number of stages is exceeded, the value is output based on the "number of stages that have started trading". At the same time, an additional warning message is output to the terminal log.
Bugfix : Fix that a runtime error may occur when updating the S/L and T/P values if the number of stages that can be created after creating a local copy increases.
Bugfix : Fix that the S/L value exceeding the "minimum margin maintenance rate" can be set if the value of the "allowable loss range after full activation" is too large. If the setting value of the allowable loss range is too large, the S/L setting value will be corrected up to the "minimum margin maintenance rate".
Bugfix : Correction of overestimation of "minimum margin maintenance rate" and "allowable loss range after activating all stages" in the calculation of the number of stages that can be created (due to this issue, the number of stages that can be created was less than expected).
Bugfix : Fix duplicated marks for deletion and incorrect output of the number of items (the deletion itself was successful)
Bugfix : In "Automatic payment processing associated with' disappearance from the list of valid tickets' of the replication source", we fixed an error in the number of items displayed in the terminal log output. (This does not occur if automatic payment is performed normally. When EA made a payment request before EA recognized the result of automatic payment processing on the server side based on S/L value or T/P value, it occurred along with the failure of the payment request.)
Bugfix : Fixed an issue where old tickets that were supposed to be automatically deleted were not deleted when a configuration change was made that changed the "size of the lot of each local copy".
Update : We have reduced the frequency of missing completion for the source of replication immediately after the payment is made on the server side, but we have not completely eliminated it. (The frequency of occurrence also depends on communication time between the server and time between the server and the terminal. When it occurs, "extra tickets that have occurred" are quickly settled or deleted.)
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
「Auto DoublePush」について (last update:2022/06/29) (ver1.28準拠)
1.前書き
2.動作概要
3.必要な環境
4.導入手順
5.動作設定
6.通常時の操作
7.自動で行われる動作
8.ストップロスの設定値
9.目標利幅の設定値
10.その他の設定
11.その他
1.前書き
この文章は、表題にあるエキスパートアドバイザ(EA)「Auto DoublePush」について、動作や設定、挙動等を詳細に記したものです。作者として、導入を検討する一助になれば幸いです。
内容については、記述時点の最新版である「ver1.28」に準拠しています。不明な点、不審な挙動等がありましたら、遠慮なくお知らせください。
2.動作概要
このEA単体では、取引そのものについては、一切何も行いません。このEAを「任意に選択した、空いているチャート」で稼働させた状態にすると、以後、ユーザからの手動操作による発注、または他EAやサービス等による自動発注操作の完了をトリガーとして自動動作します(トリガーの通貨ペアは問いません)。ですので、相場の分析や判断支援の機能は一切持っていません。このEAは「『倍プッシュ』操作の自動化」に特化しています。分析や判断支援、それに伴う自動売買そのものが必要な方は、他のEAやサービスを併用してください。
基本動作としては、「トリガーとなる発注(複製元)に対し、損失方向の値動きが拡大した場合に備えて、予め指値発注を行う(ローカルコピー)。複製元の発注が(手動操作もしくは他EA等による自動処理で)決済もしくは取り消されると、ローカルコピーも決済・取消が行われる」というものです。これにより、見込損失が発生したときに、より大きな発注を行うことで「利益を得るための、戻る値動きの要求量を下げる」操作を自動化します。
この手法は、見込損失の拡大に伴って取引額が増大する、いわゆる「マーチンゲール方式」の一つです。予想された値動きの範囲内であれば、比較的安定した利益を得ることができます。ですが、一度その範囲から逸脱すると、「損切り」で一旦仕切りなおすか、おとなしく相場が戻るのを待つしかありません。ですので、残高が小さいうちから大きな勝負を行うのは、避けたほうが無難です。小さく気長に稼ぐのに向いた手法ですので、その点は十分に理解したうえでご利用ください。
3.必要な環境
動作には、「MetaQuotes Ltd. MetaTrader 4 build 600以降」が必要です。MetaTrader 4(以後、「ターミナル」と称します)が正常動作する環境でさえあれば、言語は問いません。ですが、現時点では「英語と日本語」のみがログ出力されるメッセージとして組み込まれています(MetaTraderの言語設定で「日本語or日本語以外」を判定しています。他の言語での出力を希望される方は、申し出ていただければ検討します)
動作確認をしているのは「build 1355」ですが、600以降ならおそらく問題なく動作すると思います。なお、「MetaTrader 5」では動作確認をしていません。処理に対するエラー値の違いによる問題で、正常動作しない可能性が高いです。
また、私個人が、検証できる環境を持ち合わせていません。動作検証をしてくださる方はいつでも歓迎します。
4.導入手順
「Auto-DoublePush(*).ex4」を入手したら、ターミナルのインストール先配下のフォルダ「MQL4\Experts」に置いてください。MetaQuotes社のサイトから入手したのであれば、自動配置されるはずです。
その後、ターミナルを起動すると、EA自体は認識されます。あとは、どの通貨ペアでも構いません。ナビゲータウィンドウから、EAを動作させていないチャートに、「エキスパートアドバイザ\Auto-DoublePush」をドラッグ&ドロップし、現れる情報画面を閉じた時点から動作を開始します。
なお、動作するためには、EAに対する「自動売買の許可」(設定箇所は情報画面にあります)と、ターミナル側での「自動売買の有効化」が必要です。
5.動作設定
殆どの項目は、有償版でのみ変更可能となっています。無償版では、「大きな問題はなさそうだ」と私が考えた値で固定となっており、取引の安定化のために最低限可変としなければならないと思われた2項目のみが変更可能です。
プログラム自体は、有償版と無償版で違いはありません。違いは「設定値が変更可能な項目数」のみです。そのため、「どんなものかを実際に動かして知る」場合や「使い勝手や他EAやサービスとの相性問題」の確認には、無償版をご利用ください。有償版の導入は、実際に使ってみて、「継続して使いたいが、そのために設定値を弄りたくなった」場合のみで十分かと思います。
以後、設定項目毎に初期値(これは、殆どの項目で無償版での設定値でもあります)、無償版で可変となっている項目は「全ユーザ」と記して、設定項目とその動作を詳述します。
なお、「1行説明」は、無償版・有償版を問わず、EAを起動すると「設定値」とその説明としてテキスト出力されるようになっています。
5-1.CreateOrderEnable (true) 全ユーザ
ローカルコピーの作成許可です。通常時は「true」のままで使用してください。
true:「Auto-DoublePush」によるローカルコピーの新規発注を行い、また既に生成されているローカルコピーの監視と決済、削除も行います。
false:ローカルコピーの新たな発注(補完を含みます)は許可せず、既に生成されているローカルコピーの監視と決済、削除のみを行います。
5-2.CreateOrderMaxVal (10)
『倍プッシュ』は、見込損失が発生したときに、より大きな発注を行うことで「戻る値動きの要求量を下げる」操作ですが、ここではその自動操作間隔を「段数」と呼んでいます。「段数」は、複製元と同一価格帯を「0段目」、損失方向に離れる都度「1段目」、「2段目」と増えていきます。この設定値は、ローカルコピーの作成段数上限を明示的に指定します。
初期値では「最大で10段作成する」ことになりますが、「口座の残高」および他の設定項目によりさらに制限を受けます(優先順位は、残高>StopLossReserve(5-11)>口座種別と通貨ペア、ロットサイズで定まる「発注に必要な証拠金」>MinFreeMargin(5-9)>CreateOrderMaxVal(5-2)となります)
「段数」毎の間隔は、別項目で設定します。
5-3.CreatePriceWidthVal (140)
ローカルコピーの、各段数毎の間隔をpoint単位で指定します。起点となる価格は「複製元の開始価格と売買方向」となります。
初期値では140pointずつ、複製元から損失方向に離れた指値発注が生成されます。この値を小さく(狭く)すると、「要求する戻り幅」が小さくなり、利益が拾いやすくなりますが、大きな下落に対応するためにはより大きな残高が必要になります。値を大きくすると、「要求する戻り幅」が大きくなり、利益が拾いにくくなりますが、その分、資金の投入量も減少します。
5-4.TargetProfit (1.0)
1つの複製元に対する、ローカルコピー全体を合計しての、「最少ロットサイズ(通常は0.01)毎の目標利幅」を、口座の通貨で指定します。口座の通貨が「JPY(日本円)」の場合のみ、設定値を100倍で換算して扱います(つまり、100円を設定値の「1」として設定します)。この値が、T/P自動設定値に直接影響します。
初期値は1.0口座通貨(もしくは100円)です。この値を大きくすると、損益分界点とT/P設定値の間が広くなり、利益を確定しにくくなります。ですが、それを上回る「利益方向の値動き」があれば、一度の取引で得られる利益も大きくなります。値を小さくすると、損益分界点とT/P設定値の間が狭くなり、一度の取引で得られる利益が下がりますが、その分、利益の確定もしやすくなります。
ちなみに、行うとしても一時的な操作とはなるでしょうが、一応はマイナス値の設定も可能です。この場合は、「損切りを行う目標価格」を決めるための、「最小ロットサイズ毎の損失額」となります。また、「0」を設定すると、手数料が発生しない口座の場合には開始価格で決済を、手数料が発生する場合は手数料分だけ稼いで決済をするべく、T/P値が算出されます。
ロットサイズ等は他の設定値の影響を受けますが、すべて初期値の場合で、手動発注した複製元ロットサイズが0.01、『倍プッシュ』が4段(560point以上)進行した後に値が戻る時には、「合計0.09ロット、約11.0口座通貨(13.5口座通貨の約81.5%)の利益が得られる点」を、T/P値として自動設定するようになります。実際に要求する戻り幅は、ここの設定値を基に、口座通貨種別や取引する通貨ペア、進行段数によって変動します。(初期設定のままでは、口座通貨「JPY」、取引通貨ペア「EURUSD」の場合で、最大で約200point程度になりますが、口座通貨が「GBP」の場合、他が同一でも最大で300point以上要求されます)
この計算には、「複製元」の発注を含んでおり、「複製元」と「0段目」のみは「TargetProfitMultiplier(5-5)」の影響を受けません。
ver1.27から、初期設定値が「1.5口座通貨→1.0口座通貨」に変更されました。
5-5.TargetProfitMultiplier (95)
段数の進行毎に、目標利幅を減らす割合です。パーセント表記で指定します。
初期値は95で、「損失方向の値動き」が進行して『倍プッシュ』が発動すると、1段毎に「最小ロットサイズ毎の目標利幅(TargetProfit(5-4))」にこの値を掛けていきます。
『倍プッシュ』が発動していなければ、T/P値はTargetProfitの設定値がそのまま用いられますが、発動すると1段発動で0.5倍、2段発動で0.903倍、3段発動で0.857倍とTargetProfitの値が減らされていきます。設定値を「100」にするとこの機能は無効化され、また「100を超える」値を設定することも可能ですが、その分、胃の痛みは増えることになるかと思います。
ver1.27から、初期設定値が「90%→95%」に変更されました。
5-6.MinLotCount (2)
「ロットサイズを変更しないまま」で維持する段数を、指定します。
初期値は2で、「1段目」と「2段目」は「CreateOrderLotMultiplier(5-8)」の影響を受けず、「LotSizeMultiplier(5-7)」の影響のみを受けます。「3段目」からは「CreateOrderLotMultiplier(5-8)」の設定値に従って、ロットサイズが増えていきます。
これらが初期値のままの場合、複製元のロットサイズは無視して「1段目と2段目のロットサイズは0.01、3段目は0.02、4段目以降は前の段階の2倍」となり、10段目は2.56ロット(全段合計で5.12ロット)となります。
値を小さくすると、その分だけ小さい進行段数からロットサイズが大きくなるため、大きな残高が要求されますが、「利益を得るための戻り幅」も小さくなります。値を大きくすると、全体でのロットサイズが小さくなり、その分だけ「利益を得るための戻り幅」の要求値も大きくなります。
5-7.LotSizeMultiplier (0)
ローカルコピーの「1段目」のロットサイズを定める項目です。「0」、「1以下」、「1を超える」の3種類で動作が変わります。2段目以降のサイズは、ここで定まった「1段目のロットサイズ」を基準に、「MinLotCount(5-6)」と「CreateOrderLotMultiplier(5-8)」により算出されます。
値が大きくなると、それだけロットサイズが大きくなり、要求されるのが「大きな残高と小さな戻り幅」となるのは、「MinLotCount(5-6)」や「CreateOrderLotMultiplier(5-8)」と同様です。
なお、設定値が「1を超える」場合のみ、「0段目」のロットサイズ(EntryLotSize(5-15))にも影響を与えます。
0:(初期値)複製元のロットサイズを無視し、最小ロットサイズ(通常は0.01)で1段目を生成します。
1以下:複製元と同一のロットサイズで、1段目を生成します。
1を超える:複製元のロットサイズにここの設定値を乗算した値で、1段目を生成します。
仮に「1.5」を指定した場合、複製元のロットサイズが0.2では、1段目は0.3で生成されることになります。これが、設定値が「1」では0.2ロット、「0」では0.01ロットとなります。
5-8.CreateOrderLotMultiplier (2)
『倍プッシュ』の名称の根幹となる項目で、段階の進行毎に、ロットサイズをどれだけ大きくするか、1段毎の倍率で指定します。この設定値は、「MinLotCount(5-6)」の段数が経過した後に適用されます。値が大きくなると、それだけロットサイズが大きくなり、要求されるのが「大きな残高と小さな戻り幅」となるのは、「MinLotCount(5-6)」や「LotSizeMultiplier(5-7)」と同様です。
初期値は2で、「MinLotCount(5-6)」と「CreateOrderLotMultiplier(5-8)」が初期値のままの場合、2段目までは0.01だったロットサイズが、3段目では0.02、4段目では0.04、5段目では0.08と増えていきます。
大きくすると、それが小さな差でも生成されるロットサイズはかなり大きくなりますので、注意して設定してください。(10段目が初期値では「2の8乗=256倍」、それが3では「3の8乗=6561倍」となってしまいます)
小数値でも設定可能で、仮に設定値を「1.5」にすると、3段目は1.5倍、4段目は2.25倍と、大分穏やかな伸びになります。「CreatePriceWidthVal(5-3)」と同時に「両方とも小さくする」ことで、「投入する資金量を抑えつつ、利益を多少なりとも拾いやすく」という調整が可能になります。ですが、段数が増えることにより、手数料も多少増えることになります。この辺りは、好みのバランスで設定してください。
5-9.MinFreeMargin (150)
全段階が今の決済レートで発注された時点で、残す有効保証金の下限値です。パーセント表記で指定します。
初期値では150、つまり「全段階発注した時点で、150%の保証金維持率を確保でき、さらに許容損失幅(5-11)を確保できる」ように、生成する段数の上限を制限します。これは、「CreateOrderMaxVal(5-2)」でも記したように、ここの値がより優先されます。そのため、口座の残高が少ないと、10段すべてが生成されないこともあります。
最低値は100で、100に満たない値を設定した場合、内部で100に読み替えられます。また、通常は「受理すると証拠金維持率が100%を下回る発注」はサーバ側で弾かれるかと思います。
なお、複数の複製元に対する複製先が存在する場合(有償版で可能となります)、複製元や複製先の損失や決済状況等の相互干渉はしません。ですが、暫定的に「複製元1つ」毎に設定値の準備率(初期値で150%)を要求するようにしています(複製元が2つで300%、3つでは450%を要求され、その分、それぞれの複製元に対するローカルコピーの生成段数が低下します)
5-10.StopLossTarget (50)
S/L値の設定にも用いられる、証拠金維持率です。パーセント表記で指定します。
初期値は50で、自動算出されたS/L値で決済されてしまった場合、設定値が「0」で全損、100では「発注済の証拠金必要額と同額」が残高として残ることになります。
また、ここの設定値はローカルコピーの維持可能数にも影響します。「MinFreeMargin(5-9)と同様に、複製元毎に設定値の数だけ要求される」ということに加え、別の要因で残高が減った場合(口座間資金移動や出金等)、「段階毎の発注時点で、証拠金維持率がこの設定値を下回る」場合、そのローカルコピーは、取引開始済であろうとも即時決済・削除されます。ですが、この設定値を満たしているなら、発注時にサーバ側の要求証拠金が残ってさえいれば取引は開始できますし、削除はされません。とはいえ、取引開始前であれば、仮にローカルコピーが維持されていたとしても「発注時の証拠金不足」で弾かれることはあります。この場合、その発注予約は消滅し、その後の補完機能による再生成は「MinFreeMargin(5-9)」等の設定値により弾かれることになります。
なお、サーバ側で設定されている「ストップアウトレベル」がパーセンテージ比率指定の場合、サーバ側設定値に満たない値指定は、内部でサーバ側設定値に読み替えられます。サーバ側の設定値は、EAを対象通貨ペアで動作させることで、ターミナルのインストール先内に出力される「.\MQL4\Files\MarketInfo_(通貨ペア名).txt」で確認できます。
5-11.StopLossReserve (500) 全ユーザ
ver1.26で新規実装された項目で、「全段階が発注された時点で、S/L値との間隔を維持する下限値」です。point単位で設定します。これは、ローカルコピー生成段数の導出で、「口座の残高」の次に優先される設定となります。
初期値は500で、最大の段階の発注価格と、自動設定されるS/L値との間に最低500pointの間隔を確保します。これにより、最大の段階が発動してしまった後に許容する「更なる下落幅」を指定できます。この幅を確保できないローカルコピーは生成されず、実際のS/L値は、常にその「許容幅」の先にあります。
この設定値もまた、「MinFreeMargin(5-9)と同様に、複製元毎に設定値の数だけ要求される」ことになります。
ver1.27から、発注毎のS/L設定値はここの値が用いられるように変更されました(従来の設定も選択可能です)
5-12.ManualEntryDuplicateCount (0)
手動発注を行った際、同一価格帯でのローカルコピー(0段目)の発注を生成する個数です。
初期値は0で、同一価格帯のローカルコピーは作成されず、ローカルコピーは1段目以降のみの生成となります。1以上を設定した場合、「EntryLotSize(5-14)」で設定したロットサイズで、ここの設定値の数だけ「0段目のローカルコピー」が生成されます。
なお、複製元が指値発注の場合は「同一価格・売買方向での指値発注」が、成り行き発注の場合は「AutoEntrySlippingMax(5-15)」を損失方向に加えた範囲内での成り行き発注が行われます。
手動発注かそうでないかは、「複製元のコメント記述の有無」で判別しています。(「コメントなし」が手動発注)
5-13.AutoEntryDuplicateCount (1)
他EAやサービス等が発注を行った際、同一価格帯でのローカルコピー(0段目)の発注を生成する個数です。
初期値は1で、同一価格帯のローカルコピーが1個、「EntryLotSize(5-14)」で設定したロットサイズで、「0段目」として生成されます。「0」にすると、「0段目」は生成されません。
なお、複製元が指値発注か成り行き発注かは問わず、「AutoEntrySlippingMax(5-15)」を損失方向に加えた範囲内での成り行き発注が行われます。
手動発注かそうでないかは、「複製元のコメント記述の有無」で判別しています。(「何らかのコメントがある」のが他EA等による発注)
5-14.EntryLotSize (0.01)
「0段目」のロットサイズを指定します。「0」か「0より大きい」かで、動作が変わります。
初期値は0.01で、「Manual/AutoEntryDuplicateCount(5-12~13)」で「1以上」が設定されている場合、複製元のロットサイズを問わず0.01ロットで「0段目」の発注が生成されます。「0」では、通常は複製元のロットサイズがそのまま複製されますが、「LotSizeMultiplier(5-7)」に「1を超える」値が設定されている場合に限り、複製元のロットサイズにLotSizeMultiplierの設定値を掛けた値で「0段目」が生成されます。
5-15.AutoEntrySlippingMax (50)
「0段目」を成り行き発注する場合の、複製元に対する「損失方向での価格差許容幅」です。point単位で設定します。
初期値は50で、複製元の発生を検知してから「0段目」の発注要求を行うまでに、最大50pointの価格悪化を許容します。発注要求を行うまでに50point以上の価格悪化が確認された場合は、「0段目」の発注要求を行いません。
ここで指定するのは「0段目の発注を行うタイミング」であり、実際に約定される価格は「サーバに受理されたとき」に定まるため、ここの設定幅を超える場合もあります。
ver1.27から、新規発注や決済、取消等の理由で「現在有効な発注」の件数が変動した場合、または「指値発注が取引を開始した」タイミングを除き、再度の発注を行わなくなりました。通常はこのままでも動作に問題はないはずですが、こちらについては、次版以降で監視処理を再実装する予定です。
5-16.LimitEntryDisableWidth (20)
「ローカルコピーの指値発注」を行わない、市場価格と指値価格の価格差です。point単位で指定します。
手動で指値発注を行う際にターミナル画面に表示される、「現在の価格から10point圏内の注文は発注できません」という注意書きと同じです。市場価格から利益方向に「ここの設定値」以内の注文は、要求を行いません。最低値は設定していませんが、10未満にすると、実際に市場価格が圏内に入ってきていたときに限り、エラーが返されて生成が遅れることになります。
5-17.LimitSlippingMax (5)
ローカルコピーと「手動発注の複製元」の指値価格、S/L値、T/P値に対する、決済レートの変動に伴う再設定を「行わない許容幅」です。point単位で設定します。
EAが、複製元の通貨ペアについて、決済レートの変動を定期的に監視しています。変動の都度、内部で再計算を行った結果が、ここの設定値を「超えたとき」に、「予約を含めたすべての複製先」と「手動発注の複製元」の設定値を更新します。
例外として、タイミングの問題等で「手動発注の複製元」と「取引開始済のローカルコピー」との間で「S/L値」または「T/P値」にずれが発生した場合は、ここの設定値に関係なく「手動発注の複製元」に統一されます。
「取引開始済のローカルコピー同士でのずれ」は、「新たな段数の発動」時を除いて、手動操作等の何らかの介入がない限りは発生しませんが、ずれが発生した場合は、この許容幅を超えた場合に限り、監視のタイミングで「取引開始済の手動発注の複製元」を含めた「取引開始済のすべてのローカルコピー」が、再計算の結果の値に修正されます。
なお、再計算の間隔は初期値で30秒(「TimerSeparateVal0(5-29)」の6倍)となっていますが、S/L値の変動が発生した場合に限り、5秒毎に再計算と更新を行います。
5-18.ParentReservePriceWidth (5)
複数の複製元候補に対し、「複製元の発注が決済、または取り消された」場合に、ローカルコピーを自動決済せず、そのまま維持するための、複製元同士の「代替先とする複製元」としての許容価格差です。point単位で設定しますが、これは複製元候補が「他EAやサービス等」で行われた発注である場合にのみ適用されます。
初期値は5で、複製元が決済、または取り消されたことを検知した場合、同一の売買方向で、かつ5point以内の価格差で「他の複製元候補」が見つかっている場合、その複製元候補を「代替先の複製元」として扱い、代替先が決済、または取り消されるまでローカルコピーを維持します。
例として、複製元に対して4point差と8point差の2つの「複製されていない別個の発注」があった場合、複製元が消えると4point差のほうを代替先としてみなしますが、その後に4point差のほうも消えた場合、8point差のほうは無視し、ローカルコピーの決済・削除処理が発動します。代替先の選出は、あくまで「複製元の価格と売買方向」が基準となります。
5-19.FixedCommission (有償版:false、無償版:true)
取引口座に関する、手数料の定額設定です。「1取引毎に固定(0を含む)」か「ロットサイズに正比例する」かを選択します。
初期値は、有償版では「false」で、「1ロットあたりの手数料(CommissionPerLot(5-20))」にロットサイズを掛けた価格が適用されます。
無償版では「true」となっており、同じく「CommissionPerLot(5-20)」の設定値が、ロットサイズに関係なく適用されます。ですが、無償版では設定値が「0」固定のため、結果として「手数料なし」となります。
5-20.CommissionPerLot (有償版:9.75、無償版:0)
取引口座に関する、取引毎の手数料の価格設定です。「FixedCommission(5-19)」の設定値により意味が変わります。また、値は口座通貨単位で設定しますが、口座の通貨が「JPY(日本円)」の場合のみ、「TargetProfit(5-4)」と同様に、設定値を100倍で換算して扱います。
初期値は、有償版では「9.75口座通貨もしくは975円」となっており、「FixedCommission(5-19)」が「false」のため、ここの設定値は「1ロットあたりの手数料額」として扱われます。
無償版では「0」で、「FixedCommission(5-19)」が「true」のため、結果として「1取引毎に0口座通貨もしくは0円」となります。
実際に運用する口座の契約にあわせて、ここの値は設定してください。これにより、手数料が発生する口座の場合、損益分界点およびT/P値の導出に、手数料額が損失として組み込まれます。
5-21.RemoteToLocalSTOverride (true)
複製元が「他EAやサービス等」で行われた発注である場合に限り、S/L値とT/P値を複製元に依存するかを選択します。判定は、S/L値とT/P値を個別に行います。
初期値は「true」で、複製元にS/L値やT/P値が設定されている場合、このEA側で算出されたS/L値やT/P値を無視し、複製元の発注に設定されている値に同期させます。
「false」にすると、S/L値やT/P値はこのEA側で算出された値で設定されますが、複製元が決済等で「取引中」のリストから消失すると、S/L値やT/P値の設定にかかわらず、速やかに決済や削除が行われます。(「ParentReservePriceWidth(5-18)」の設定により、代替先が選定された場合を除きます)
5-22.ForceJapanese (false)
ターミナルログ「エキスパート」へ出力される、EAの動作ログについて、「ターミナル側の言語設定を無視して日本語出力を行うか」を選択します。
初期値は「false」で、ターミナルの言語設定が「日本語」の場合にのみ、日本語出力を行います。日本語以外の設定の場合は、英語で出力を行います。
また、EA使用時にテキストファイルとして出力される「EAの設定値」(ターミナルのインストール先内に出力される「.\MQL4\Files\Config_DoublePush.txt」)についても、同様に判定が行われます。
5-23.CreateCopyPermission (1)
ローカルコピーを生成する動作の、複製元となる対象の設定です。「2~-2」の整数で設定します。
2:複製元として「他EAやサービス等」で行われた発注のみ、最大1発注に限定してローカルコピーを生成します。手動発注に対しては、ローカルコピーは生成されません。
1:(初期値)複製元として「他EAやサービス等」で行われた発注か、手動発注かの、いずれか1発注に限定して、ローカルコピーを生成します。既にローカルコピーが生成済の場合、ローカルコピーがすべて決済、または削除されるまで、新たなローカルコピーは生成されません。なお、「同時に発生した」場合(「他EA等の発注と手動発注の両方が既にある状態でEAを起動した場合等)は、「他EAやサービス等」で行われた発注が優先されます。
0:複製元として「他EAやサービス等」で行われた発注(最大1発注)と、手動発注(数量制限なし)に対して、ローカルコピーを生成します。「どちらか1つ」ではないため、優先順位はありません。この場合、証拠金維持率関連(主に5-9~11。間接的にはロットサイズ関連等も含む)の要求値が、複製元の数だけ掛けた値で制限を受けます。また、「CreateOrderMaxVal(5-2)」は同じ値が複製元毎に適用されます。
-1:複製元として「手動発注」のみ(数量制限なし)に対して、ローカルコピーを生成します。証拠金維持率関連等の影響は、設定値「0」と同様です。
-2:基本的に、設定値「-1」と同じです。ですが、「他EAやサービス等」で行われた発注を検知すると、通貨ペアや取引内容が何であれ、問答無用で決済して除外します。その意味では、通常は用いない、テストモードに近いものです。
5-24.MinLotDigit (2)
最小ロットサイズの小数点以下桁数です。整数で設定します。
初期値は2で、最小ロットサイズが「0.01」であることを示します。通常は変更の必要はありません。
5-25.CroseErrorRetryInterval (100)
このEAで「S/L値やT/P値によらない、複製元の消失に伴う自動決済処理」を行う際、サーバとの間でエラーが発生した場合の再送信待ち時間です。msec(ミリ秒)単位で設定します。
初期値は100で、エラーが発生した場合、サーバとの接続が維持されている限りは0.1秒毎に再送信します。サーバとの接続が途絶えている場合は、「ターミナル側の自動処理としての再接続」の後に行います。
通常は変更の必要はありません。
5-26.ErrorRetryInterval (1000)
自動決済処理以外において、サーバとの間でのエラーが発生した場合の再送信待ち時間です。msec(ミリ秒)単位で設定します。
初期値は1000で、エラーが発生した場合、サーバとの接続が維持されている限りは1秒毎に再送信します。サーバとの接続が途絶えている場合は、「ターミナル側の自動処理としての再接続」の後に行います。
通常は変更の必要はありません。
5-27.SlippingMax (20)
EAによる成り行き発注を行う際の、開始価格の許容変動幅です。0.1pips単位で設定します。
初期値は20で、EA側で発注要求直前に取得した市場価格から2pointまでのずれが許容されます。
通常は、変更の必要はありません。
5-28.OnTickEnable (true)
EAによる「ターミナル側が認識している、予約を含む、有効な発注」の数量変動の監視を、Tick情報を受信する毎に行うかを選択します。
初期値は「true」で、ターミナルがサーバから市場価格情報を受け取る都度、「前回のリスト更新時から、件数の変動があったか」だけ調べます。件数の変動が検知された場合は、即座に「EAが内部保持している発注内容のリスト」の更新を始めます。
通常は、変更の必要はありません。ターミナルを動作させているPC環境があまりにも非力で、Tick受信毎の照合は負荷がつらい場合にのみ、「false」に変更してください。
ver1.28より、「チケット番号の構成変動」と「S/L値の変動」の監視も行うようになりました。
5-29.TimerSeparateVal0 (5)
EAによる「ターミナル側が認識している、予約を含む、有効な発注」と「EAが内部保持しているリスト」との照合を行う間隔です。秒単位で設定します。
初期値は5秒で、5秒毎に「有効な発注の件数、チケット毎の行番号(チケット番号の若い順に並んでいる。監視毎の間にチケットが決済~再発注等で入れ替わった場合、検知できる)、取引種別(指値発注が取引開始した場合等に変動する)」をチェックします。いずれかに変動があった場合、「EAが内部保持している発注内容のリスト」の更新を始めます。
「OnTickEnable(5-28)」との違いは、「取引種別の変動」も見ているかどうか、です。
通常は、変更の必要はありません。PCの性能にも左右されますが、内部リスト更新の要否判定と、更新を要すると判定した場合の更新処理、それに伴う「サーバへのリクエスト送信の要否判定」で数秒を要します。(初代core i7という古い私の環境で、複製元1つの状況で、EAの初期化から内部リスト更新を含めた「サーバへのリクエスト送信がなかった場合の、全処理1回の完了」まで5秒程度かかっています)
なお、一旦定常状態に入ると、「件数変動の認識~複製の新規生成リクエスト発行」までは1秒程度です。
また、ここの設定値を基準として、他の処理の実行間隔が決められています(「リストの強制更新間隔(3倍)」、「T/P値等変動の再計算(6倍)」等)
5-30.AutoReentryOrderEnable (false)
ver1.28から実装された、「手動発注の決済後に、自動で再発注を行うか」を選択します。
初期値は「false」で、自動での再発注は行われません。「true」に変更すると、「AutoReentryReverseStage(5-31)」の設定に沿って、「コメントなしの成り行き発注」を1件のみ、自動で生成します。
生成される内容は、「通貨ペアとロットサイズは、決済された手動発注と同一」ですが、売買方向だけが変動します。複製元の決済方法が「手動決済」と「S/L値による決済(トレイリングストップによるものを含みます)」の場合は、売買方向が常に反転します。「T/P値による決済」の場合は、ローカルコピーによる『倍プッシュ』の進行段数が『AutoReentryReverseStage(5-31)』での設定値『以上』で、ローカルコピー自身もT/P値による決済が行われた場合」に反転し、『未満』の場合は同一方向となります(「ローカルコピー自身でのT/P値決済がない」場合を含みます)
5-31.AutoReentryReverseStage (1)
ver1.28から実装された、「手動発注のT/P値による決済後に、自動再発注で売買方向を反転させる条件」としての、「ローカルコピー自身がT/P値による決済された段数」の下限値です。正の整数で指定します。
初期値は「1」で、「手動発注がT/P値による決済」かつ「ローカルコピーのT/P値による決済が『ない』もしくは『0段目のみ存在する』」場合、同一方向での自動生成となります。「2」以上に設定すると、指定した段数以上のローカルコピーがT/P値決済されるまで、T/P値決済では方向が反転しなくなります。また「0」に設定し、「ManualEntryDuplicateCount(5-12)」に「1以上」を設定すると、「0段目のT/P値決済」が見つかった結果として、常に反転するようになります。 また、この設定値は「TrailingStopEnable(5-32)」とも共有しています。
5-32.TrailingStopEnable (true)
ver1.28から実装された、「EAによるトレイリングストップの有効化」を選択します。「AutoReentryOrderEnable(5-30)」が有効化されている場合にのみ、機能します。
初期値は「true」で、「AutoReentryReverseStage(5-31)」の設定値により「複製元の決済後の、売買方向が反転する場合」に限り、「TargetProfit(5-4)」と「TargetProfitMultiplier(5-5)」、『倍プッシュ』の進行段数から定まる「目標価格(T/P計算値)」を基準とした、トレイリングストップ(S/L値の逐次変更による、利益の確保)」が自動で行われます。
ターミナル側のトレイリングストップ機能との違いは、「チケット毎の操作が不要である」ことと、「複製元とローカルコピーをあわせた形の、T/P計算値」が動作下限値となることです。(ターミナル側の機能は「単一のチケットの、損益分界点より最小通貨単位だけ利益側の価格」から「指定したポイント数だけ利益側にずらした値」が下限値となります)。注意としては、EAによるトレイリングストップでは、「少しでも利益があれば」ではなく「目標となる利益があれば」という点です。この機能が動作した場合、S/L値は「T/P計算値から『TrailingStopWidth(5-33)』だけ損失側にずれた値」が下限となります。
5-33.TrailingStopWidth (15)
ver1.28から実装された、「EAによるトレイリングストップ」の「許容損失幅」です。point単位で設定します。
「EAによるトレイリングストップ」の動作は、市場価格が、『倍プッシュ』の進行段数に応じた目標価格(T/P計算値)から、ここの設定値だけ損失側に離れた範囲に収まった時点から開始します。対象となるチケットは「手動発注である複製元」と「その複製元に属する、取引開始済のローカルコピーすべて」で、開始した時点で、チケットのT/P設定値は解除されます。
その後、市場価格が変動する都度、ここの設定値だけ市場価格から損失側にずらした値をS/L値に設定し続けます。この点は、ターミナル側のトレイリングストップによる「一旦設定したS/L値は、損失側には動かない」と同様です。ですが、「市場価格が目標価格に到達しないまま、再度下落した」場合、このEAによるS/L値設定は自動で解除され、動作開始前のS/L値とT/P値が再設定されます。これは、このEAでのトレイリングストップによる決済が、「目標価格への到達」を最低条件にしているためです。
もっとも、急でかつ大幅な変動により、更新が行われるよりも前にS/L値やT/P値に抵触した場合は、その限りではありません。これはターミナル側での機能でも同様です。
6.通常時の操作
適当なチャートにこのEAを導入し、自動売買を有効化させた後は、普通に取引してください。他のEAや分析ツール類は、このEAとは別のチャートで動作させてください。
このEAは、実際にはチャートは見ていません。ターミナルの持っている発注状況だけを見て、ローカルコピーの新規作成対象となる発注が受理されたのを見つけると、EAの設定値に沿って、自動でローカルコピーの発注を行います。ですので、他のEAや分析ツール類を、目的のチャートで動かすことを優先して問題ありません。
注意点として、S/L値やT/P値の変更は、ローカルコピー、また複製元となった手動発注に対しては無効です(変更を行っても、EAの設定値に従って、定期的に上書きします)。「他EAやサービス等」で行われた「複製元となった発注」や、それ以外の「複製元ではない発注」に対しては、このEAからは一切干渉しません。
ただし、ターミナル側の機能としての「トレイリングストップ」とは真っ向からぶつかる場合があります。EAが定期的に計算値で上書きしますが、それをターミナル側がトレイリングストップで再度上書きする、そのような流れが繰り返される可能性があります。
「トレイリングストップ」自体は、「設定した単一の発注が利益側にある場合に限り、現在の市場価格からトレイリングストップ設定値を引いた値をS/L値に設定する」というターミナル側の機能です。そのため、「チケットに設定されているS/L値が、EAが算出した損益分界点よりも利益側にある」場合は、「EAでのトレイリングストップ」を有効化している場合を除き、「EAによるS/L値の上書き」を無効化することで、トレイリングストップ機能の動作に対する上書きは行わないようになっています。
「EAでのトレイリングストップ」を無効化している場合、複製元、ローカルコピーを問わず、「ターミナルによるトレイリングストップ」が優先されることになります。その結果として「ローカルコピーの一部欠損」が発生することもありえますが、その場合は、後から自動動作の一環として「欠損の補完」は行われます。また、一度「トレイリングストップ機能によるS/L値の更新」が行われると、トレイリングストップを解除してもS/L値はそのまま残ります(このEAによるS/L値の更新対象から外れたままになります)。EAによるS/L値の更新を再開するには、「EAでのトレイリングストップ」を有効化するか、そのチケットに対して、S/L値を「損益分界点より損失方向」の適当な値に手動で設定してください。その後、設定値照合のタイミングで更新が再開されます。
7.ストップロスの設定値
このEAで算出される「S/L値」は、算出時点での「口座通貨に対する決済通貨の為替レート」と「口座の残高」を基に、「複製元と、作成するローカルコピー全段階の手数料合計」、通貨ペアの価格変動に伴う「全段階発動時点での累積損失」を口座通貨ベースで積み上げ、残った有効証拠金推計値から「複製元とローカルコピーの合計ロットでの、1point毎の損益変動額」を除いて、「ロットサイズに基づく、全段階発動時の必要証拠金額推計」(実際の取引では、チケット毎の取引開始時の為替レートから導出されるため、多少ずれることがあります)と比べています。
この結果がS/L目標値(証拠金維持率のパーセント表記)に合致する点を、複製元通貨ペアの決済通貨ベースの価格として変換、出力しています。また、「StopLossReserve(5-11)」の設定値も、この出力と「全段発動時の開始価格」との差が設定値よりも大きいかを見ています。そして、初期設定値では「証拠金維持率50%」としています。
そのため、「トレイリングストップではないS/L値設定による決済」は、事実上の取引破綻と言えます。「StopLossTarget(5-10)」の設定値を予め変更しない限り、残るのは、「全段発動時に必要だった証拠金の半額」でしかありません。たとえ、元が何千、何万通貨用意しようが、です。
対策として、ver1.27から、S/L設定値が「StopLossReserve(5-11)」を優先させるようになっています。動作自体は、残高と「StopLossTarget(5-10)」で定まる維持証拠金額に「StopLossReserve(5-11)」の設定値を足した値が全段発動時でも確保されているか、という点では従来と違いはありませんが、実際にS/L値に設定されるのは「全段発動時の開始価格から、StopLossReserve(5-11)の設定値を除いたもの」となっています。また、S/L設定値で決済されてしまった場合の予想残高を、ターミナルログへ出力するようになっています(複数の複製元がある場合は、ずれが生じます)
いずれにしても、くれぐれも、このEAでの「トレイリングストップではないS/L値設定による決済」は発動させないように、十分理解し、注意して目標値等を設定し、取引を開始してください。
8.目標利幅の設定値
基準となるのは、『倍プッシュ』各段階での合計ロットサイズに基づいた、段階進行毎の損失累計、段階進行毎の手数料累計、これと段階毎に算出される「1point毎の損益変動額」を比べて、「損失累計+手数料累計+スワップ損益」と「発動した一番大きい段階の、1point毎の損益変動額」が、発動した一番大きい段階の開始価格から見て釣り合う点です。これを「損益分界点」として算出しています。「1個の複製元と、それに連なるローカルコピーしかない状態」では、普段はターミナル表示の「損益」表示がマイナスからプラスに転じる点と合致するはずです。
この「決済通貨ベースの損益分界点」を基準値として、「TargetProfit(5-4)」と「TargetProfitMultiplier(5-5)」で設定した値と『倍プッシュ』進行段階から得られる「最小ロット毎の目標利幅」を、「進行段階に応じた、1point毎の損益変動額」とあわせて「口座通貨に対する、通貨ペアの決済通貨との最新の為替レート」で決済通貨ベースの要求point数に変換し、損益分界点から積み上げたものです。そのため、口座通貨と決済通貨が違う場合、その為替レート変動によって随時T/P値は変更されます。ですが、無事にT/P値での決済となった場合は、「口座通貨ベースで指定した最小ロット毎の目標利幅に複製元を含めた総ロットサイズを掛けたもの」が残高に加算されるはずです(ロットサイズに応じて「1point毎の損益変動額」が増えていくため、ぴったりの数字になることは、あまりありませんが)
目標利幅が「口座通貨」ベースのため、ユーザ側での設定はイメージもしやすく、比較的楽かと思います。
ただ、無償版の場合、「140point毎の段階進行で、最小ロット毎に1口座通貨」が設定値で固定になっています。そのため、口座通貨と通貨ペアの種類によって、要求される「T/P値と損益分界点の差」、および得られる利益が変わることになります。例えばEURUSDで取引を行った場合、、口座通貨が「NZD」や「AUD」では概ね0.7USD、「JPY」では0.8USDくらいが、最小ロット毎の目標利幅となります。ですが、口座通貨がGPBの場合は、1.3USDくらいの利益を求めるようになってしまいます。当然、その分だけ「T/P値と損益分界点の差」は大きくなり、利益を確定しにくくなります。
有償版では、5項で記した設定値の「TargetProfit(5-4)」を下げることで、このあたりを調整可能となります。「無償版で、動作自体には特に問題はないが、設定されるT/P値が高すぎてつらい」という場合は、有償版の導入を検討してください。
なお、ver1.27から、初期値が「1.5口座通貨→1口座通貨」へ変更されました。
ちなみに、「複製元が他EAやサービス等によるもの」で、「複製元の決済実行利幅」よりも「このEAでの目標利幅」が小さい状態で、このEAでのT/P値付近で相場が小さな動きをしていると、『倍プッシュ』の進行段階が0もしくは1の頃に「T/P決済実行~0段目再発注」を繰り返すことがあります。この場合、利益は確定しているため、笑って見ていても問題はありませんが、気になるようであればこのEAでの目標利幅を調整することで解消されます。
9.その他の設定
通常、手数料関連の設定を除けば、特に設定を変更する必要はありません。「エラー発生に伴う再送信間隔」は短すぎるとサーバに弾かれることがあります。「CreateCopyPermission(5-23)」は、このEAの導入の際に口座の使い方は決めていると思いますので、それにあわせてください。
「LimitEntryDisableWidth(5-16)」は、動作の安定側に振った値になっていますので、好みで小さくして問題ありません。ただし、10未満の設定値は、サーバに弾かれますので、無意味です。
「LimitSlippingMax(5-17)」は、小さくしすぎると、相場変動への追従性が上がる代わりに、ターミナルログが埋まります。ここも好みで変更してください。
10.自動で行われる動作
この項では、このEAが行っている処理全体を、処理別に詳述しています。一見単純な動作に見えるこのEAが、実際にはどのような処理を行っているのかを記してみました。
実行ファイルを作るためのソースとしては7000行を超えており、意外と大きいものです。
10-1.全体の動作の実行順序と動作毎の処理内容
10-1-1.初回処理
EA起動時に、内部処理用の変数の領域確保のほかに、口座の通貨種別とターミナルの言語設定、既にターミナルが認識している「有効な発注と発注予約」の総数、チケット番号、コメント記述を取得します。
10-1-2.定常動作中の監視
Tick情報受信時(通常は1秒未満の頻度)に、「ターミナルが認識している、有効なチケット数とその構成」の変動だけチェックします。変動があれば、内部リストの更新へ移行します。また、「EAでのトレイリングストップ」を有効化している場合、このタイミングでS/L値と市場価格の比較、それに伴うS/L値の更新も行っています。
また、5秒毎に、「有効なチケット番号の構成と取引開始状態」をチェックします。これもまた、変動があれば、内部リストの更新へ移行します。
30秒毎に、最新の相場情報からS/L値とT/P値の再計算を行います。その結果、EA内部で保持している「複製元である手動発注」と「ローカルコピー」の設定値に対して、値に差があれば値更新処理(10-1-8)に移行します。
それと、5秒毎に「滞留情報の状態確認と消去(10-1-11)」を行っています。
10-1-3.内部リストの更新と処理要否判定
「定常動作中の監視(10-1-2)」で「更新を要する」と判定された場合、内部リストの再取得・更新を行います。発注状況から取得する内容は、「有効なチケット番号、チケット毎の売買方向と取引開始状態、開始価格、ロットサイズ、チケットのコメント記述内容、発注時に設定したマジックナンバー(段数として用いています)、対象通貨ペア、手数料、S/L値、T/P値」です。ここから、コメント記述内容を用いてローカルコピーとそれ以外、手動発注とそれ以外、ローカルコピーなら複製元のチケット番号を収集して、複製チケットと複製元の関連付けを行います。その結果に基づき、複製元の消失の有無確認と代替先選出、「ローカルコピーの新規生成」のための複製元の選出も行います。
この時点で、他の要因で件数変動が発生していた場合、再取得処理を最初からもう一度やり直します。
件数変動がなかった場合はそのまま、代替先がない場合の最優先の処理として、「取引開始済のローカルコピーに対する自動決済(10-1-4)」への移行と「取引開始前のローカルコピーに対する『削除対象マーク』付加」を行います。
10-1-4.ローカルコピーの自動決済
複製元が「他EAやサービス等」によるもので、独自に決済等を行った場合、または手動発注でT/P値設定によらず手動決済した場合等、「複製元が有効な発注リストから消えた場合」に、他の「サーバへのリクエスト発行」よりも優先して行われる処理です。「T/P値設定による自動決済」はサーバ側で行われますので、ここでは扱われません。
処理要否判定(10-1-3)で「代替先なし」と判定されたローカルコピーのセットのうち、取引開始済の全てに対して、OrderCloseコマンドによる「決済処理のリクエスト」をサーバに送ります。この処理だけは急ぎますので、エラーが発生した場合の再送信間隔も短くしています。
この処理は、「件数変動を伴う処理」として扱われます。
この処理が終了した後(対象がなかった場合を含みます)、続いてローカルコピーの自動生成(10-1-5)に移行します。
10-1-5.ローカルコピーの自動生成
ローカルコピーの自動決済(10-1-4)が行われた状態では、「複製元」の作成枠が空いている状態です。そのため、他に複製元となりうるチケットが存在する場合は、ローカルコピーの新規生成が行われます。この時、ローカルコピーの売買方向と基準点となる開始価格には複製元の情報が用いられ、EAの設定値に沿ってローカルコピーのロットサイズ、開始価格、S/L値、T/P値が算出され、複製元のチケット番号をコメントに入れた形で、OrderSendコマンドによる発注リクエストがサーバに連続送信されます。また、サーバに受理されたことをターミナルが認識し、表示内容に反映するまでに時間差があるため、発注リクエストを行った複製元チケット番号を、別に一時保管することで、「同じ複製元に対する、重複した発注リクエストの発行」を抑止しています。
この処理は、「件数変動を伴う処理」として扱われます。
この処理が終了した後(該当がなかった場合を含む)、欠落補完と余剰コピーの削除判定(10-1-6)に移行します。
10-1-6.ローカルコピーの欠落補完と余剰コピーの削除判定
既にローカルコピーを作成済の複製元に対し、「ローカルコピーの生成可能段数」と「維持可能段数」の再導出を行い、その結果と「有効な発注として存在するローカルコピーの有無」を段数毎に照合し、欠落(何らかの操作で決済または削除済、もしくはT/P値による決済による消失)があった場合、生成可能段数が許す範囲で補完するための発注リクエストをサーバに送信します。この時、市場価格との差が許す範囲内で、「0段目」については成り行き発注が、1段目以降は指値発注が行われます。
この処理は、補完発注リクエストを行った場合のみ、「件数変動を伴う処理」として扱われます。
続いて、残高の変動等で「維持可能段数から外れてしまったローカルコピー」への「削除対象マーク」付加、「作成可能段数から外れてしまった、取引開始をしていないローカルコピー」への「削除対象マーク」付加も行います。
EAの設定値変更により「ローカルコピーの段数毎のロットサイズに変更が発生」した場合、この処理の一部として、「取引を開始していないローカルコピーへの『削除マーク』の付加」や「新たなロットサイズでのローカルコピーの生成」が行われます。
10-1-7.件数変動を伴う処理が実行された後の、リスト再取得
10-1-3から続く処理のリクエスト実行中に、他の外的要因での件数変動があった場合、またこのEAが行ったリクエストの結果として件数変動が発生すると確定している場合、リストの再取得(10-1-3)を再度行います。これは、「件数変動が発生しなくなった」と判定されるか、10回連続で実行されるまで繰り返し続きます。
リスト再取得の実行(10-1-7)が一度でも行われた場合、再取得が不要となった後速やかに、S/L値とT/P値の更新(10-1-8)へ移行します。これは、発注タイミングのずれによってT/P値等に小さなずれが発生することがあり、そのずれを解消するために、定期的な照合・更新とは別に行われます。
10-1-8.S/L値とT/P値、指値価格の照合と更新
定常状態での監視(10-1-2)の一環として、また件数変動を伴う処理が実行された(10-1-7)後の最新化処理の一環として、複製元1件毎にS/L値とT/P値、指値価格の算出と照合を行います。算出処理自体は、「ローカルコピーの新規生成(10-1-5)」とは違い、「欠落補完処理(10-1-6)」と同様に「既存のローカルコピーのロットサイズや開始価格」を取り込んでおり、取引開始済のものはロットサイズと開始価格をそのままに、取引開始前のものはロットサイズのみそのままに、OrderModifyコマンドで変更できる範囲内(指値価格、S/L値、T/P値)で更新を行います。
ロットサイズ変更を伴う場合と、ローカルコピーの総段数変更を伴う場合は、「欠落補完処理(10-1-6)」の一部として別に行われます。
値の更新が行われた場合に限り、直後の「定常監視(10-1-2)」のタイミングで、リスト再取得(10-1-3)が強制的に行われます。更新が行われなかった場合は、定常監視(10-1-2)に戻ります。
10-1-9.削除判定が出たローカルコピーの削除
リスト再取得(10-1-3)から始まる一連の処理(10-1-8まで)が終わった後、「件数変動に伴う再取得(10-1-7)」から15秒以上の経過を待って、取引開始をしていないローカルコピーのうち「削除マーク」対象となったものについて、OrderDeleteコマンドによる削除リクエストをサーバに送信します。
時間を空けているのは、より優先されるべき「他のリクエスト」の送信と受理、ターミナル側への反映が一通り終わるのを待つためです。ターミナル画面を見ていると、「一通り作成や更新が行われた後、数秒程度待たされてから」順次削除されていくのが分かります。
通常は指値価格と市場価格の差があるため、まず発生しませんが、もしこの待ち時間の間に「削除予定のローカルコピーが、設定済の指値価格で取引開始してしまった」場合は、「取引状態の変動」によってリスト再取得(10-1-3)が引き起こされ、改めて「複製元が既に消えたローカルコピー」として、自動決済対象となります。
この処理が終了した後、ローカルコピーのEAによる自動決済(10-1-4)が行われていたのなら「損益出力(10-1-10)」へ移行します。また、自動決済対象の有無とは無関係に、削除リクエストが送信された場合は、直後の「定常監視(10-1-2)」のタイミングで、リスト再取得(10-1-3)が強制的に行われ、その後は、改めて定常監視(10-1-2)に戻ります。
10-1-10.ローカルコピーのみについての、自動決済の損益出力
「T/P値設定によらない、EAによる自動決済」が行われた場合に限り、そのチケット番号を別途保管して、ターミナルの履歴から損益情報を取得します。そして、値を積み上げて「自動決済による損益」としてターミナルログに出力します。ログへの出力後、EA内部で別途保管していたチケット番号は消去されます。
ログ出力後、定常監視(10-1-2)に戻ります。
10-1-11.滞留情報の除去
「ローカルコピーの新規作成リクエストを行った複製元のチケット番号」(補完作成は含みません)は最大15秒程度、「有効な発注リストから消えたチケット番号」は、最大15分程度の間、内部で保持しています。
通常は「新規作成リクエスト」については、ローカルコピーの作成結果がターミナルに反映された時点で消去しています。また、「有効な発注リストから消えたチケット番号」は、「手動発注の決済後の、自動再発注」での判定処理に使った後、その都度消去しています。ですが、作成と決済・削除が輻輳すると、これらが残ってしまうことがあり、特に「新規作成リクエストの発行、その直後に発生した複製元の消失」が入り乱れると、「新規作成リクエストの発行結果をEAが認識できない」という事象が発生し、結果として新たなローカルコピーの生成が抑止されてしまうことがありました。
定常監視の一部として、これらの強制的な削除が行われます。
10-1-12.発注状況と設定値、市場情報の出力
EA起動後、最初の1回の「全処理の完了後」と、EAの終了または「属するチャートへの時間足変更等」で発生するOnDeinitイベントにて、ターミナルのインストール先内にテキストファイル出力を行っています。ですが、出力したファイルそのものに対しては、参照等は何も行いません。単に「上書きで出力」するだけです。
出力されるファイルは3つあります。出力先はすべて「.\MQL4\Files」となります。ターミナルログにもそのことは表示されます。
A.「MarketInfo_(通貨ペア名).txt」
TerminalInfomationとして、「接続している証券会社名とターミナルの基本情報の一部、AccountInfomationとして「口座のあるサーバ名と残高、通貨種別、証拠金残量と計算モードやストップアウトレベル等」、MarketInfomationとして「EAを動作させたチャートの、通貨ペアのサーバ設定値(現在価格や、最小/最大ロットサイズ、1ロットあたり必要証拠金等」といった情報が列挙されています。
B.「Config_DoublePush.txt」
このEAの、有償版で設定可能となる設定項目について、有償版と無償版であるかを問わず、その時点で適用されている設定値すべて」が簡単な説明とともに列挙されています。
C.「OrderList_サーバ名.txt」
「その時点で有効な発注内容」が、チケット番号をはじめとして列挙されています。ここには、このEAが内部で識別した「複製元の種別」や「複製先の有無」も追記されています。ここを見ると、後から更新できない「ターミナルに表示されている、発注毎のコメント記述」に依存しない、「実際にEAがどのチケットを複製元として認識しているか」がターミナルログ以外でもはっきり判るようになっています。
10-2.イベント毎の列挙
10-2-1.OnInitイベント(EAの起動時、またはEAの属するチャートへの時間足変更等)
一部を除いた変数の初期化と、ターミナルの言語設定および口座の通貨種別の取得を行います(10-1-1)
10-2-2.OnTickイベント(ターミナル側の、市場価格情報の受信毎)
「有効な発注」の件数変動とチケット番号構成のチェック。変動があれば「リスト再取得処理(10-1-3)」を呼び出します(10-1-2)
また、「手動発注の決済後の、自動再発注」および「EAでのトレイリングストップ」有効時、複製元となっている手動発注とそのローカルコピーに対し、損益分界点と市場価格、チケット毎のS/L値を照合、変動があれば更新を行います。
10-2-3.OnTimerイベント(時間経過毎)
同一項目では、Aから順番に行っています。
10-2-3-1.高頻度処理(5秒毎)
A.「有効な発注」の件数変動・チケット番号の構成変動・取引状態の「予約→開始」変動のチェック(10-1-2)。変動があれば「リスト再取得処理(10-1-3)」を呼び出します。
B.「リスト再取得処理(10-1-3)」。再取得に続いて判定を行い、その結果に応じて「ローカルコピーの自動決済(10-1-4)」、「ローカルコピーの新規作成(10-1-5)」、ローカルコピーの欠落補完(10-1-6)」を順次実行します。また、件数変動が発生しなくなるまでこの処理を反復します((10-1-7)最大10回)
C.Bで「反復処理」が1回以上行われた場合、S/L値、T/P値、指値価格の照合と更新(10-1-8)を呼び出します。1件以上更新が行われた場合、次のOnTimerイベントで、件数変動等の有無を確認せずに、リスト再取得処理を行います。
D.Bで生成された「削除対象リスト」に基づいて、取引開始前チケットの削除を行います(10-1-9)。1件以上削除された場合、次のOnTimerイベントで、件数変動等の有無を確認せずに、リスト再取得処理を行います。
E.このEAにより自動決済されたチケットの、ターミナルログへの損益出力を行います(10-1-10)
F.ローカルコピーの新規作成リクエストが行われた記録が、15秒を過ぎても残っている場合、「異常な残存」とみなし、抹消します(「10-1-11」のうち、新規作成リクエストについて)
10-2-3-2.中高頻度処理(15秒毎)
ver1.27から、このタイミングでの処理は廃止されました。
10-2-3-3.中頻度処理(30秒毎)
定常監視(10-1-2)の一部として、S/L値、T/P値等の再算出と照合・更新を行います(10-1-8)
10-2-3-4.中低頻度処理(15分毎)
「有効な発注」から消えたチケット番号と、それがローカルコピーであれば「複製元のチケット番号と売買方向、複製元が手動発注かそれ以外か」の情報を抹消します(「10-1-11」のうち、消えたチケット番号について)
10-2-3-5.低頻度処理(3時間毎)
口座の通貨建文字列の取得と、それに基づく「口座通貨の小数点以下桁数」の判定を行います。また、次のタイマーイベントで「リスト再取得処理(10-1-3)」を呼び出します。
10-2-3-6.EA起動後、OnTimerイベントでの全処理1回完了後に1度のみ
取引サーバの時差(GMT基準)をTick受信時刻とPCローカル時刻の差から推測します。現時点では、テキスト出力される「発注リスト」の末尾に付記するだけにしか使われていません。
起動時の情報として、テキスト出力する3ファイルの出力処理を行います(10-1-12)
10-2-4.OnDeinitイベント(EAの終了時、またはEAの属するチャートへの時間足変更等で、OnInitイベントの前に)
テキスト出力する3ファイルの出力処理(10-1-12)を行った後、「EA終了時」でない場合は、改めて「初回処理(10-1-1)」から一連の処理がまた行われます。
11.その他
ver1.26に至るまでに、「バグ対応中に損失が膨らんだ」とか、「コピートレードサービス」を「他EAやサービス等による複製元」として動作試験をしている間に、コピー元の損切り処理に巻き込まれて大損をこうむったりとかはありました。(ちなみに、その時の損失は、今もまだ回復しきれてはいません)。ですが、ver1.26の動作試験を始めてから1週間ほど経過しましたが、その間には「設定した『倍プッシュ』の対応価格帯」から外れたことがなかったこともあり、損失は発生していません。少しずつですが利益は上がっています。
「ユーザが選んだ対応価格帯」から一旦外れると、値を戻すまでは胃の痛みが友達となりますが、それはFX取引で発生するリスクの一部でもあります。故に、このEAも、操作の簡易化・省力化には寄与しても、利益を約束するものではありません。とはいえ、「完全手動操作」とは雲泥の差があることは、EAを作った本人である私が実感しています。
ただ、EAが常時監視を行うことから、「PCを点けっぱなし」にできる環境が望ましいです。仮想サーバにEAを投入でき、PCからその都度操作できるのなら、それも選択肢に入りますが…。
以上、長くなりましたが、EA「Auto-DoublePush」の詳細説明となります。
1.前書き
2.動作概要
3.必要な環境
4.導入手順
5.動作設定
6.通常時の操作
7.自動で行われる動作
8.ストップロスの設定値
9.目標利幅の設定値
10.その他の設定
11.その他
1.前書き
この文章は、表題にあるエキスパートアドバイザ(EA)「Auto DoublePush」について、動作や設定、挙動等を詳細に記したものです。作者として、導入を検討する一助になれば幸いです。
内容については、記述時点の最新版である「ver1.28」に準拠しています。不明な点、不審な挙動等がありましたら、遠慮なくお知らせください。
2.動作概要
このEA単体では、取引そのものについては、一切何も行いません。このEAを「任意に選択した、空いているチャート」で稼働させた状態にすると、以後、ユーザからの手動操作による発注、または他EAやサービス等による自動発注操作の完了をトリガーとして自動動作します(トリガーの通貨ペアは問いません)。ですので、相場の分析や判断支援の機能は一切持っていません。このEAは「『倍プッシュ』操作の自動化」に特化しています。分析や判断支援、それに伴う自動売買そのものが必要な方は、他のEAやサービスを併用してください。
基本動作としては、「トリガーとなる発注(複製元)に対し、損失方向の値動きが拡大した場合に備えて、予め指値発注を行う(ローカルコピー)。複製元の発注が(手動操作もしくは他EA等による自動処理で)決済もしくは取り消されると、ローカルコピーも決済・取消が行われる」というものです。これにより、見込損失が発生したときに、より大きな発注を行うことで「利益を得るための、戻る値動きの要求量を下げる」操作を自動化します。
この手法は、見込損失の拡大に伴って取引額が増大する、いわゆる「マーチンゲール方式」の一つです。予想された値動きの範囲内であれば、比較的安定した利益を得ることができます。ですが、一度その範囲から逸脱すると、「損切り」で一旦仕切りなおすか、おとなしく相場が戻るのを待つしかありません。ですので、残高が小さいうちから大きな勝負を行うのは、避けたほうが無難です。小さく気長に稼ぐのに向いた手法ですので、その点は十分に理解したうえでご利用ください。
3.必要な環境
動作には、「MetaQuotes Ltd. MetaTrader 4 build 600以降」が必要です。MetaTrader 4(以後、「ターミナル」と称します)が正常動作する環境でさえあれば、言語は問いません。ですが、現時点では「英語と日本語」のみがログ出力されるメッセージとして組み込まれています(MetaTraderの言語設定で「日本語or日本語以外」を判定しています。他の言語での出力を希望される方は、申し出ていただければ検討します)
動作確認をしているのは「build 1355」ですが、600以降ならおそらく問題なく動作すると思います。なお、「MetaTrader 5」では動作確認をしていません。処理に対するエラー値の違いによる問題で、正常動作しない可能性が高いです。
また、私個人が、検証できる環境を持ち合わせていません。動作検証をしてくださる方はいつでも歓迎します。
4.導入手順
「Auto-DoublePush(*).ex4」を入手したら、ターミナルのインストール先配下のフォルダ「MQL4\Experts」に置いてください。MetaQuotes社のサイトから入手したのであれば、自動配置されるはずです。
その後、ターミナルを起動すると、EA自体は認識されます。あとは、どの通貨ペアでも構いません。ナビゲータウィンドウから、EAを動作させていないチャートに、「エキスパートアドバイザ\Auto-DoublePush」をドラッグ&ドロップし、現れる情報画面を閉じた時点から動作を開始します。
なお、動作するためには、EAに対する「自動売買の許可」(設定箇所は情報画面にあります)と、ターミナル側での「自動売買の有効化」が必要です。
5.動作設定
殆どの項目は、有償版でのみ変更可能となっています。無償版では、「大きな問題はなさそうだ」と私が考えた値で固定となっており、取引の安定化のために最低限可変としなければならないと思われた2項目のみが変更可能です。
プログラム自体は、有償版と無償版で違いはありません。違いは「設定値が変更可能な項目数」のみです。そのため、「どんなものかを実際に動かして知る」場合や「使い勝手や他EAやサービスとの相性問題」の確認には、無償版をご利用ください。有償版の導入は、実際に使ってみて、「継続して使いたいが、そのために設定値を弄りたくなった」場合のみで十分かと思います。
以後、設定項目毎に初期値(これは、殆どの項目で無償版での設定値でもあります)、無償版で可変となっている項目は「全ユーザ」と記して、設定項目とその動作を詳述します。
なお、「1行説明」は、無償版・有償版を問わず、EAを起動すると「設定値」とその説明としてテキスト出力されるようになっています。
5-1.CreateOrderEnable (true) 全ユーザ
ローカルコピーの作成許可です。通常時は「true」のままで使用してください。
true:「Auto-DoublePush」によるローカルコピーの新規発注を行い、また既に生成されているローカルコピーの監視と決済、削除も行います。
false:ローカルコピーの新たな発注(補完を含みます)は許可せず、既に生成されているローカルコピーの監視と決済、削除のみを行います。
5-2.CreateOrderMaxVal (10)
『倍プッシュ』は、見込損失が発生したときに、より大きな発注を行うことで「戻る値動きの要求量を下げる」操作ですが、ここではその自動操作間隔を「段数」と呼んでいます。「段数」は、複製元と同一価格帯を「0段目」、損失方向に離れる都度「1段目」、「2段目」と増えていきます。この設定値は、ローカルコピーの作成段数上限を明示的に指定します。
初期値では「最大で10段作成する」ことになりますが、「口座の残高」および他の設定項目によりさらに制限を受けます(優先順位は、残高>StopLossReserve(5-11)>口座種別と通貨ペア、ロットサイズで定まる「発注に必要な証拠金」>MinFreeMargin(5-9)>CreateOrderMaxVal(5-2)となります)
「段数」毎の間隔は、別項目で設定します。
5-3.CreatePriceWidthVal (140)
ローカルコピーの、各段数毎の間隔をpoint単位で指定します。起点となる価格は「複製元の開始価格と売買方向」となります。
初期値では140pointずつ、複製元から損失方向に離れた指値発注が生成されます。この値を小さく(狭く)すると、「要求する戻り幅」が小さくなり、利益が拾いやすくなりますが、大きな下落に対応するためにはより大きな残高が必要になります。値を大きくすると、「要求する戻り幅」が大きくなり、利益が拾いにくくなりますが、その分、資金の投入量も減少します。
5-4.TargetProfit (1.0)
1つの複製元に対する、ローカルコピー全体を合計しての、「最少ロットサイズ(通常は0.01)毎の目標利幅」を、口座の通貨で指定します。口座の通貨が「JPY(日本円)」の場合のみ、設定値を100倍で換算して扱います(つまり、100円を設定値の「1」として設定します)。この値が、T/P自動設定値に直接影響します。
初期値は1.0口座通貨(もしくは100円)です。この値を大きくすると、損益分界点とT/P設定値の間が広くなり、利益を確定しにくくなります。ですが、それを上回る「利益方向の値動き」があれば、一度の取引で得られる利益も大きくなります。値を小さくすると、損益分界点とT/P設定値の間が狭くなり、一度の取引で得られる利益が下がりますが、その分、利益の確定もしやすくなります。
ちなみに、行うとしても一時的な操作とはなるでしょうが、一応はマイナス値の設定も可能です。この場合は、「損切りを行う目標価格」を決めるための、「最小ロットサイズ毎の損失額」となります。また、「0」を設定すると、手数料が発生しない口座の場合には開始価格で決済を、手数料が発生する場合は手数料分だけ稼いで決済をするべく、T/P値が算出されます。
ロットサイズ等は他の設定値の影響を受けますが、すべて初期値の場合で、手動発注した複製元ロットサイズが0.01、『倍プッシュ』が4段(560point以上)進行した後に値が戻る時には、「合計0.09ロット、約11.0口座通貨(13.5口座通貨の約81.5%)の利益が得られる点」を、T/P値として自動設定するようになります。実際に要求する戻り幅は、ここの設定値を基に、口座通貨種別や取引する通貨ペア、進行段数によって変動します。(初期設定のままでは、口座通貨「JPY」、取引通貨ペア「EURUSD」の場合で、最大で約200point程度になりますが、口座通貨が「GBP」の場合、他が同一でも最大で300point以上要求されます)
この計算には、「複製元」の発注を含んでおり、「複製元」と「0段目」のみは「TargetProfitMultiplier(5-5)」の影響を受けません。
ver1.27から、初期設定値が「1.5口座通貨→1.0口座通貨」に変更されました。
5-5.TargetProfitMultiplier (95)
段数の進行毎に、目標利幅を減らす割合です。パーセント表記で指定します。
初期値は95で、「損失方向の値動き」が進行して『倍プッシュ』が発動すると、1段毎に「最小ロットサイズ毎の目標利幅(TargetProfit(5-4))」にこの値を掛けていきます。
『倍プッシュ』が発動していなければ、T/P値はTargetProfitの設定値がそのまま用いられますが、発動すると1段発動で0.5倍、2段発動で0.903倍、3段発動で0.857倍とTargetProfitの値が減らされていきます。設定値を「100」にするとこの機能は無効化され、また「100を超える」値を設定することも可能ですが、その分、胃の痛みは増えることになるかと思います。
ver1.27から、初期設定値が「90%→95%」に変更されました。
5-6.MinLotCount (2)
「ロットサイズを変更しないまま」で維持する段数を、指定します。
初期値は2で、「1段目」と「2段目」は「CreateOrderLotMultiplier(5-8)」の影響を受けず、「LotSizeMultiplier(5-7)」の影響のみを受けます。「3段目」からは「CreateOrderLotMultiplier(5-8)」の設定値に従って、ロットサイズが増えていきます。
これらが初期値のままの場合、複製元のロットサイズは無視して「1段目と2段目のロットサイズは0.01、3段目は0.02、4段目以降は前の段階の2倍」となり、10段目は2.56ロット(全段合計で5.12ロット)となります。
値を小さくすると、その分だけ小さい進行段数からロットサイズが大きくなるため、大きな残高が要求されますが、「利益を得るための戻り幅」も小さくなります。値を大きくすると、全体でのロットサイズが小さくなり、その分だけ「利益を得るための戻り幅」の要求値も大きくなります。
5-7.LotSizeMultiplier (0)
ローカルコピーの「1段目」のロットサイズを定める項目です。「0」、「1以下」、「1を超える」の3種類で動作が変わります。2段目以降のサイズは、ここで定まった「1段目のロットサイズ」を基準に、「MinLotCount(5-6)」と「CreateOrderLotMultiplier(5-8)」により算出されます。
値が大きくなると、それだけロットサイズが大きくなり、要求されるのが「大きな残高と小さな戻り幅」となるのは、「MinLotCount(5-6)」や「CreateOrderLotMultiplier(5-8)」と同様です。
なお、設定値が「1を超える」場合のみ、「0段目」のロットサイズ(EntryLotSize(5-15))にも影響を与えます。
0:(初期値)複製元のロットサイズを無視し、最小ロットサイズ(通常は0.01)で1段目を生成します。
1以下:複製元と同一のロットサイズで、1段目を生成します。
1を超える:複製元のロットサイズにここの設定値を乗算した値で、1段目を生成します。
仮に「1.5」を指定した場合、複製元のロットサイズが0.2では、1段目は0.3で生成されることになります。これが、設定値が「1」では0.2ロット、「0」では0.01ロットとなります。
5-8.CreateOrderLotMultiplier (2)
『倍プッシュ』の名称の根幹となる項目で、段階の進行毎に、ロットサイズをどれだけ大きくするか、1段毎の倍率で指定します。この設定値は、「MinLotCount(5-6)」の段数が経過した後に適用されます。値が大きくなると、それだけロットサイズが大きくなり、要求されるのが「大きな残高と小さな戻り幅」となるのは、「MinLotCount(5-6)」や「LotSizeMultiplier(5-7)」と同様です。
初期値は2で、「MinLotCount(5-6)」と「CreateOrderLotMultiplier(5-8)」が初期値のままの場合、2段目までは0.01だったロットサイズが、3段目では0.02、4段目では0.04、5段目では0.08と増えていきます。
大きくすると、それが小さな差でも生成されるロットサイズはかなり大きくなりますので、注意して設定してください。(10段目が初期値では「2の8乗=256倍」、それが3では「3の8乗=6561倍」となってしまいます)
小数値でも設定可能で、仮に設定値を「1.5」にすると、3段目は1.5倍、4段目は2.25倍と、大分穏やかな伸びになります。「CreatePriceWidthVal(5-3)」と同時に「両方とも小さくする」ことで、「投入する資金量を抑えつつ、利益を多少なりとも拾いやすく」という調整が可能になります。ですが、段数が増えることにより、手数料も多少増えることになります。この辺りは、好みのバランスで設定してください。
5-9.MinFreeMargin (150)
全段階が今の決済レートで発注された時点で、残す有効保証金の下限値です。パーセント表記で指定します。
初期値では150、つまり「全段階発注した時点で、150%の保証金維持率を確保でき、さらに許容損失幅(5-11)を確保できる」ように、生成する段数の上限を制限します。これは、「CreateOrderMaxVal(5-2)」でも記したように、ここの値がより優先されます。そのため、口座の残高が少ないと、10段すべてが生成されないこともあります。
最低値は100で、100に満たない値を設定した場合、内部で100に読み替えられます。また、通常は「受理すると証拠金維持率が100%を下回る発注」はサーバ側で弾かれるかと思います。
なお、複数の複製元に対する複製先が存在する場合(有償版で可能となります)、複製元や複製先の損失や決済状況等の相互干渉はしません。ですが、暫定的に「複製元1つ」毎に設定値の準備率(初期値で150%)を要求するようにしています(複製元が2つで300%、3つでは450%を要求され、その分、それぞれの複製元に対するローカルコピーの生成段数が低下します)
5-10.StopLossTarget (50)
S/L値の設定にも用いられる、証拠金維持率です。パーセント表記で指定します。
初期値は50で、自動算出されたS/L値で決済されてしまった場合、設定値が「0」で全損、100では「発注済の証拠金必要額と同額」が残高として残ることになります。
また、ここの設定値はローカルコピーの維持可能数にも影響します。「MinFreeMargin(5-9)と同様に、複製元毎に設定値の数だけ要求される」ということに加え、別の要因で残高が減った場合(口座間資金移動や出金等)、「段階毎の発注時点で、証拠金維持率がこの設定値を下回る」場合、そのローカルコピーは、取引開始済であろうとも即時決済・削除されます。ですが、この設定値を満たしているなら、発注時にサーバ側の要求証拠金が残ってさえいれば取引は開始できますし、削除はされません。とはいえ、取引開始前であれば、仮にローカルコピーが維持されていたとしても「発注時の証拠金不足」で弾かれることはあります。この場合、その発注予約は消滅し、その後の補完機能による再生成は「MinFreeMargin(5-9)」等の設定値により弾かれることになります。
なお、サーバ側で設定されている「ストップアウトレベル」がパーセンテージ比率指定の場合、サーバ側設定値に満たない値指定は、内部でサーバ側設定値に読み替えられます。サーバ側の設定値は、EAを対象通貨ペアで動作させることで、ターミナルのインストール先内に出力される「.\MQL4\Files\MarketInfo_(通貨ペア名).txt」で確認できます。
5-11.StopLossReserve (500) 全ユーザ
ver1.26で新規実装された項目で、「全段階が発注された時点で、S/L値との間隔を維持する下限値」です。point単位で設定します。これは、ローカルコピー生成段数の導出で、「口座の残高」の次に優先される設定となります。
初期値は500で、最大の段階の発注価格と、自動設定されるS/L値との間に最低500pointの間隔を確保します。これにより、最大の段階が発動してしまった後に許容する「更なる下落幅」を指定できます。この幅を確保できないローカルコピーは生成されず、実際のS/L値は、常にその「許容幅」の先にあります。
この設定値もまた、「MinFreeMargin(5-9)と同様に、複製元毎に設定値の数だけ要求される」ことになります。
ver1.27から、発注毎のS/L設定値はここの値が用いられるように変更されました(従来の設定も選択可能です)
5-12.ManualEntryDuplicateCount (0)
手動発注を行った際、同一価格帯でのローカルコピー(0段目)の発注を生成する個数です。
初期値は0で、同一価格帯のローカルコピーは作成されず、ローカルコピーは1段目以降のみの生成となります。1以上を設定した場合、「EntryLotSize(5-14)」で設定したロットサイズで、ここの設定値の数だけ「0段目のローカルコピー」が生成されます。
なお、複製元が指値発注の場合は「同一価格・売買方向での指値発注」が、成り行き発注の場合は「AutoEntrySlippingMax(5-15)」を損失方向に加えた範囲内での成り行き発注が行われます。
手動発注かそうでないかは、「複製元のコメント記述の有無」で判別しています。(「コメントなし」が手動発注)
5-13.AutoEntryDuplicateCount (1)
他EAやサービス等が発注を行った際、同一価格帯でのローカルコピー(0段目)の発注を生成する個数です。
初期値は1で、同一価格帯のローカルコピーが1個、「EntryLotSize(5-14)」で設定したロットサイズで、「0段目」として生成されます。「0」にすると、「0段目」は生成されません。
なお、複製元が指値発注か成り行き発注かは問わず、「AutoEntrySlippingMax(5-15)」を損失方向に加えた範囲内での成り行き発注が行われます。
手動発注かそうでないかは、「複製元のコメント記述の有無」で判別しています。(「何らかのコメントがある」のが他EA等による発注)
5-14.EntryLotSize (0.01)
「0段目」のロットサイズを指定します。「0」か「0より大きい」かで、動作が変わります。
初期値は0.01で、「Manual/AutoEntryDuplicateCount(5-12~13)」で「1以上」が設定されている場合、複製元のロットサイズを問わず0.01ロットで「0段目」の発注が生成されます。「0」では、通常は複製元のロットサイズがそのまま複製されますが、「LotSizeMultiplier(5-7)」に「1を超える」値が設定されている場合に限り、複製元のロットサイズにLotSizeMultiplierの設定値を掛けた値で「0段目」が生成されます。
5-15.AutoEntrySlippingMax (50)
「0段目」を成り行き発注する場合の、複製元に対する「損失方向での価格差許容幅」です。point単位で設定します。
初期値は50で、複製元の発生を検知してから「0段目」の発注要求を行うまでに、最大50pointの価格悪化を許容します。発注要求を行うまでに50point以上の価格悪化が確認された場合は、「0段目」の発注要求を行いません。
ここで指定するのは「0段目の発注を行うタイミング」であり、実際に約定される価格は「サーバに受理されたとき」に定まるため、ここの設定幅を超える場合もあります。
ver1.27から、新規発注や決済、取消等の理由で「現在有効な発注」の件数が変動した場合、または「指値発注が取引を開始した」タイミングを除き、再度の発注を行わなくなりました。通常はこのままでも動作に問題はないはずですが、こちらについては、次版以降で監視処理を再実装する予定です。
5-16.LimitEntryDisableWidth (20)
「ローカルコピーの指値発注」を行わない、市場価格と指値価格の価格差です。point単位で指定します。
手動で指値発注を行う際にターミナル画面に表示される、「現在の価格から10point圏内の注文は発注できません」という注意書きと同じです。市場価格から利益方向に「ここの設定値」以内の注文は、要求を行いません。最低値は設定していませんが、10未満にすると、実際に市場価格が圏内に入ってきていたときに限り、エラーが返されて生成が遅れることになります。
5-17.LimitSlippingMax (5)
ローカルコピーと「手動発注の複製元」の指値価格、S/L値、T/P値に対する、決済レートの変動に伴う再設定を「行わない許容幅」です。point単位で設定します。
EAが、複製元の通貨ペアについて、決済レートの変動を定期的に監視しています。変動の都度、内部で再計算を行った結果が、ここの設定値を「超えたとき」に、「予約を含めたすべての複製先」と「手動発注の複製元」の設定値を更新します。
例外として、タイミングの問題等で「手動発注の複製元」と「取引開始済のローカルコピー」との間で「S/L値」または「T/P値」にずれが発生した場合は、ここの設定値に関係なく「手動発注の複製元」に統一されます。
「取引開始済のローカルコピー同士でのずれ」は、「新たな段数の発動」時を除いて、手動操作等の何らかの介入がない限りは発生しませんが、ずれが発生した場合は、この許容幅を超えた場合に限り、監視のタイミングで「取引開始済の手動発注の複製元」を含めた「取引開始済のすべてのローカルコピー」が、再計算の結果の値に修正されます。
なお、再計算の間隔は初期値で30秒(「TimerSeparateVal0(5-29)」の6倍)となっていますが、S/L値の変動が発生した場合に限り、5秒毎に再計算と更新を行います。
5-18.ParentReservePriceWidth (5)
複数の複製元候補に対し、「複製元の発注が決済、または取り消された」場合に、ローカルコピーを自動決済せず、そのまま維持するための、複製元同士の「代替先とする複製元」としての許容価格差です。point単位で設定しますが、これは複製元候補が「他EAやサービス等」で行われた発注である場合にのみ適用されます。
初期値は5で、複製元が決済、または取り消されたことを検知した場合、同一の売買方向で、かつ5point以内の価格差で「他の複製元候補」が見つかっている場合、その複製元候補を「代替先の複製元」として扱い、代替先が決済、または取り消されるまでローカルコピーを維持します。
例として、複製元に対して4point差と8point差の2つの「複製されていない別個の発注」があった場合、複製元が消えると4point差のほうを代替先としてみなしますが、その後に4point差のほうも消えた場合、8point差のほうは無視し、ローカルコピーの決済・削除処理が発動します。代替先の選出は、あくまで「複製元の価格と売買方向」が基準となります。
5-19.FixedCommission (有償版:false、無償版:true)
取引口座に関する、手数料の定額設定です。「1取引毎に固定(0を含む)」か「ロットサイズに正比例する」かを選択します。
初期値は、有償版では「false」で、「1ロットあたりの手数料(CommissionPerLot(5-20))」にロットサイズを掛けた価格が適用されます。
無償版では「true」となっており、同じく「CommissionPerLot(5-20)」の設定値が、ロットサイズに関係なく適用されます。ですが、無償版では設定値が「0」固定のため、結果として「手数料なし」となります。
5-20.CommissionPerLot (有償版:9.75、無償版:0)
取引口座に関する、取引毎の手数料の価格設定です。「FixedCommission(5-19)」の設定値により意味が変わります。また、値は口座通貨単位で設定しますが、口座の通貨が「JPY(日本円)」の場合のみ、「TargetProfit(5-4)」と同様に、設定値を100倍で換算して扱います。
初期値は、有償版では「9.75口座通貨もしくは975円」となっており、「FixedCommission(5-19)」が「false」のため、ここの設定値は「1ロットあたりの手数料額」として扱われます。
無償版では「0」で、「FixedCommission(5-19)」が「true」のため、結果として「1取引毎に0口座通貨もしくは0円」となります。
実際に運用する口座の契約にあわせて、ここの値は設定してください。これにより、手数料が発生する口座の場合、損益分界点およびT/P値の導出に、手数料額が損失として組み込まれます。
5-21.RemoteToLocalSTOverride (true)
複製元が「他EAやサービス等」で行われた発注である場合に限り、S/L値とT/P値を複製元に依存するかを選択します。判定は、S/L値とT/P値を個別に行います。
初期値は「true」で、複製元にS/L値やT/P値が設定されている場合、このEA側で算出されたS/L値やT/P値を無視し、複製元の発注に設定されている値に同期させます。
「false」にすると、S/L値やT/P値はこのEA側で算出された値で設定されますが、複製元が決済等で「取引中」のリストから消失すると、S/L値やT/P値の設定にかかわらず、速やかに決済や削除が行われます。(「ParentReservePriceWidth(5-18)」の設定により、代替先が選定された場合を除きます)
5-22.ForceJapanese (false)
ターミナルログ「エキスパート」へ出力される、EAの動作ログについて、「ターミナル側の言語設定を無視して日本語出力を行うか」を選択します。
初期値は「false」で、ターミナルの言語設定が「日本語」の場合にのみ、日本語出力を行います。日本語以外の設定の場合は、英語で出力を行います。
また、EA使用時にテキストファイルとして出力される「EAの設定値」(ターミナルのインストール先内に出力される「.\MQL4\Files\Config_DoublePush.txt」)についても、同様に判定が行われます。
5-23.CreateCopyPermission (1)
ローカルコピーを生成する動作の、複製元となる対象の設定です。「2~-2」の整数で設定します。
2:複製元として「他EAやサービス等」で行われた発注のみ、最大1発注に限定してローカルコピーを生成します。手動発注に対しては、ローカルコピーは生成されません。
1:(初期値)複製元として「他EAやサービス等」で行われた発注か、手動発注かの、いずれか1発注に限定して、ローカルコピーを生成します。既にローカルコピーが生成済の場合、ローカルコピーがすべて決済、または削除されるまで、新たなローカルコピーは生成されません。なお、「同時に発生した」場合(「他EA等の発注と手動発注の両方が既にある状態でEAを起動した場合等)は、「他EAやサービス等」で行われた発注が優先されます。
0:複製元として「他EAやサービス等」で行われた発注(最大1発注)と、手動発注(数量制限なし)に対して、ローカルコピーを生成します。「どちらか1つ」ではないため、優先順位はありません。この場合、証拠金維持率関連(主に5-9~11。間接的にはロットサイズ関連等も含む)の要求値が、複製元の数だけ掛けた値で制限を受けます。また、「CreateOrderMaxVal(5-2)」は同じ値が複製元毎に適用されます。
-1:複製元として「手動発注」のみ(数量制限なし)に対して、ローカルコピーを生成します。証拠金維持率関連等の影響は、設定値「0」と同様です。
-2:基本的に、設定値「-1」と同じです。ですが、「他EAやサービス等」で行われた発注を検知すると、通貨ペアや取引内容が何であれ、問答無用で決済して除外します。その意味では、通常は用いない、テストモードに近いものです。
5-24.MinLotDigit (2)
最小ロットサイズの小数点以下桁数です。整数で設定します。
初期値は2で、最小ロットサイズが「0.01」であることを示します。通常は変更の必要はありません。
5-25.CroseErrorRetryInterval (100)
このEAで「S/L値やT/P値によらない、複製元の消失に伴う自動決済処理」を行う際、サーバとの間でエラーが発生した場合の再送信待ち時間です。msec(ミリ秒)単位で設定します。
初期値は100で、エラーが発生した場合、サーバとの接続が維持されている限りは0.1秒毎に再送信します。サーバとの接続が途絶えている場合は、「ターミナル側の自動処理としての再接続」の後に行います。
通常は変更の必要はありません。
5-26.ErrorRetryInterval (1000)
自動決済処理以外において、サーバとの間でのエラーが発生した場合の再送信待ち時間です。msec(ミリ秒)単位で設定します。
初期値は1000で、エラーが発生した場合、サーバとの接続が維持されている限りは1秒毎に再送信します。サーバとの接続が途絶えている場合は、「ターミナル側の自動処理としての再接続」の後に行います。
通常は変更の必要はありません。
5-27.SlippingMax (20)
EAによる成り行き発注を行う際の、開始価格の許容変動幅です。0.1pips単位で設定します。
初期値は20で、EA側で発注要求直前に取得した市場価格から2pointまでのずれが許容されます。
通常は、変更の必要はありません。
5-28.OnTickEnable (true)
EAによる「ターミナル側が認識している、予約を含む、有効な発注」の数量変動の監視を、Tick情報を受信する毎に行うかを選択します。
初期値は「true」で、ターミナルがサーバから市場価格情報を受け取る都度、「前回のリスト更新時から、件数の変動があったか」だけ調べます。件数の変動が検知された場合は、即座に「EAが内部保持している発注内容のリスト」の更新を始めます。
通常は、変更の必要はありません。ターミナルを動作させているPC環境があまりにも非力で、Tick受信毎の照合は負荷がつらい場合にのみ、「false」に変更してください。
ver1.28より、「チケット番号の構成変動」と「S/L値の変動」の監視も行うようになりました。
5-29.TimerSeparateVal0 (5)
EAによる「ターミナル側が認識している、予約を含む、有効な発注」と「EAが内部保持しているリスト」との照合を行う間隔です。秒単位で設定します。
初期値は5秒で、5秒毎に「有効な発注の件数、チケット毎の行番号(チケット番号の若い順に並んでいる。監視毎の間にチケットが決済~再発注等で入れ替わった場合、検知できる)、取引種別(指値発注が取引開始した場合等に変動する)」をチェックします。いずれかに変動があった場合、「EAが内部保持している発注内容のリスト」の更新を始めます。
「OnTickEnable(5-28)」との違いは、「取引種別の変動」も見ているかどうか、です。
通常は、変更の必要はありません。PCの性能にも左右されますが、内部リスト更新の要否判定と、更新を要すると判定した場合の更新処理、それに伴う「サーバへのリクエスト送信の要否判定」で数秒を要します。(初代core i7という古い私の環境で、複製元1つの状況で、EAの初期化から内部リスト更新を含めた「サーバへのリクエスト送信がなかった場合の、全処理1回の完了」まで5秒程度かかっています)
なお、一旦定常状態に入ると、「件数変動の認識~複製の新規生成リクエスト発行」までは1秒程度です。
また、ここの設定値を基準として、他の処理の実行間隔が決められています(「リストの強制更新間隔(3倍)」、「T/P値等変動の再計算(6倍)」等)
5-30.AutoReentryOrderEnable (false)
ver1.28から実装された、「手動発注の決済後に、自動で再発注を行うか」を選択します。
初期値は「false」で、自動での再発注は行われません。「true」に変更すると、「AutoReentryReverseStage(5-31)」の設定に沿って、「コメントなしの成り行き発注」を1件のみ、自動で生成します。
生成される内容は、「通貨ペアとロットサイズは、決済された手動発注と同一」ですが、売買方向だけが変動します。複製元の決済方法が「手動決済」と「S/L値による決済(トレイリングストップによるものを含みます)」の場合は、売買方向が常に反転します。「T/P値による決済」の場合は、ローカルコピーによる『倍プッシュ』の進行段数が『AutoReentryReverseStage(5-31)』での設定値『以上』で、ローカルコピー自身もT/P値による決済が行われた場合」に反転し、『未満』の場合は同一方向となります(「ローカルコピー自身でのT/P値決済がない」場合を含みます)
5-31.AutoReentryReverseStage (1)
ver1.28から実装された、「手動発注のT/P値による決済後に、自動再発注で売買方向を反転させる条件」としての、「ローカルコピー自身がT/P値による決済された段数」の下限値です。正の整数で指定します。
初期値は「1」で、「手動発注がT/P値による決済」かつ「ローカルコピーのT/P値による決済が『ない』もしくは『0段目のみ存在する』」場合、同一方向での自動生成となります。「2」以上に設定すると、指定した段数以上のローカルコピーがT/P値決済されるまで、T/P値決済では方向が反転しなくなります。また「0」に設定し、「ManualEntryDuplicateCount(5-12)」に「1以上」を設定すると、「0段目のT/P値決済」が見つかった結果として、常に反転するようになります。 また、この設定値は「TrailingStopEnable(5-32)」とも共有しています。
5-32.TrailingStopEnable (true)
ver1.28から実装された、「EAによるトレイリングストップの有効化」を選択します。「AutoReentryOrderEnable(5-30)」が有効化されている場合にのみ、機能します。
初期値は「true」で、「AutoReentryReverseStage(5-31)」の設定値により「複製元の決済後の、売買方向が反転する場合」に限り、「TargetProfit(5-4)」と「TargetProfitMultiplier(5-5)」、『倍プッシュ』の進行段数から定まる「目標価格(T/P計算値)」を基準とした、トレイリングストップ(S/L値の逐次変更による、利益の確保)」が自動で行われます。
ターミナル側のトレイリングストップ機能との違いは、「チケット毎の操作が不要である」ことと、「複製元とローカルコピーをあわせた形の、T/P計算値」が動作下限値となることです。(ターミナル側の機能は「単一のチケットの、損益分界点より最小通貨単位だけ利益側の価格」から「指定したポイント数だけ利益側にずらした値」が下限値となります)。注意としては、EAによるトレイリングストップでは、「少しでも利益があれば」ではなく「目標となる利益があれば」という点です。この機能が動作した場合、S/L値は「T/P計算値から『TrailingStopWidth(5-33)』だけ損失側にずれた値」が下限となります。
5-33.TrailingStopWidth (15)
ver1.28から実装された、「EAによるトレイリングストップ」の「許容損失幅」です。point単位で設定します。
「EAによるトレイリングストップ」の動作は、市場価格が、『倍プッシュ』の進行段数に応じた目標価格(T/P計算値)から、ここの設定値だけ損失側に離れた範囲に収まった時点から開始します。対象となるチケットは「手動発注である複製元」と「その複製元に属する、取引開始済のローカルコピーすべて」で、開始した時点で、チケットのT/P設定値は解除されます。
その後、市場価格が変動する都度、ここの設定値だけ市場価格から損失側にずらした値をS/L値に設定し続けます。この点は、ターミナル側のトレイリングストップによる「一旦設定したS/L値は、損失側には動かない」と同様です。ですが、「市場価格が目標価格に到達しないまま、再度下落した」場合、このEAによるS/L値設定は自動で解除され、動作開始前のS/L値とT/P値が再設定されます。これは、このEAでのトレイリングストップによる決済が、「目標価格への到達」を最低条件にしているためです。
もっとも、急でかつ大幅な変動により、更新が行われるよりも前にS/L値やT/P値に抵触した場合は、その限りではありません。これはターミナル側での機能でも同様です。
6.通常時の操作
適当なチャートにこのEAを導入し、自動売買を有効化させた後は、普通に取引してください。他のEAや分析ツール類は、このEAとは別のチャートで動作させてください。
このEAは、実際にはチャートは見ていません。ターミナルの持っている発注状況だけを見て、ローカルコピーの新規作成対象となる発注が受理されたのを見つけると、EAの設定値に沿って、自動でローカルコピーの発注を行います。ですので、他のEAや分析ツール類を、目的のチャートで動かすことを優先して問題ありません。
注意点として、S/L値やT/P値の変更は、ローカルコピー、また複製元となった手動発注に対しては無効です(変更を行っても、EAの設定値に従って、定期的に上書きします)。「他EAやサービス等」で行われた「複製元となった発注」や、それ以外の「複製元ではない発注」に対しては、このEAからは一切干渉しません。
ただし、ターミナル側の機能としての「トレイリングストップ」とは真っ向からぶつかる場合があります。EAが定期的に計算値で上書きしますが、それをターミナル側がトレイリングストップで再度上書きする、そのような流れが繰り返される可能性があります。
「トレイリングストップ」自体は、「設定した単一の発注が利益側にある場合に限り、現在の市場価格からトレイリングストップ設定値を引いた値をS/L値に設定する」というターミナル側の機能です。そのため、「チケットに設定されているS/L値が、EAが算出した損益分界点よりも利益側にある」場合は、「EAでのトレイリングストップ」を有効化している場合を除き、「EAによるS/L値の上書き」を無効化することで、トレイリングストップ機能の動作に対する上書きは行わないようになっています。
「EAでのトレイリングストップ」を無効化している場合、複製元、ローカルコピーを問わず、「ターミナルによるトレイリングストップ」が優先されることになります。その結果として「ローカルコピーの一部欠損」が発生することもありえますが、その場合は、後から自動動作の一環として「欠損の補完」は行われます。また、一度「トレイリングストップ機能によるS/L値の更新」が行われると、トレイリングストップを解除してもS/L値はそのまま残ります(このEAによるS/L値の更新対象から外れたままになります)。EAによるS/L値の更新を再開するには、「EAでのトレイリングストップ」を有効化するか、そのチケットに対して、S/L値を「損益分界点より損失方向」の適当な値に手動で設定してください。その後、設定値照合のタイミングで更新が再開されます。
7.ストップロスの設定値
このEAで算出される「S/L値」は、算出時点での「口座通貨に対する決済通貨の為替レート」と「口座の残高」を基に、「複製元と、作成するローカルコピー全段階の手数料合計」、通貨ペアの価格変動に伴う「全段階発動時点での累積損失」を口座通貨ベースで積み上げ、残った有効証拠金推計値から「複製元とローカルコピーの合計ロットでの、1point毎の損益変動額」を除いて、「ロットサイズに基づく、全段階発動時の必要証拠金額推計」(実際の取引では、チケット毎の取引開始時の為替レートから導出されるため、多少ずれることがあります)と比べています。
この結果がS/L目標値(証拠金維持率のパーセント表記)に合致する点を、複製元通貨ペアの決済通貨ベースの価格として変換、出力しています。また、「StopLossReserve(5-11)」の設定値も、この出力と「全段発動時の開始価格」との差が設定値よりも大きいかを見ています。そして、初期設定値では「証拠金維持率50%」としています。
そのため、「トレイリングストップではないS/L値設定による決済」は、事実上の取引破綻と言えます。「StopLossTarget(5-10)」の設定値を予め変更しない限り、残るのは、「全段発動時に必要だった証拠金の半額」でしかありません。たとえ、元が何千、何万通貨用意しようが、です。
対策として、ver1.27から、S/L設定値が「StopLossReserve(5-11)」を優先させるようになっています。動作自体は、残高と「StopLossTarget(5-10)」で定まる維持証拠金額に「StopLossReserve(5-11)」の設定値を足した値が全段発動時でも確保されているか、という点では従来と違いはありませんが、実際にS/L値に設定されるのは「全段発動時の開始価格から、StopLossReserve(5-11)の設定値を除いたもの」となっています。また、S/L設定値で決済されてしまった場合の予想残高を、ターミナルログへ出力するようになっています(複数の複製元がある場合は、ずれが生じます)
いずれにしても、くれぐれも、このEAでの「トレイリングストップではないS/L値設定による決済」は発動させないように、十分理解し、注意して目標値等を設定し、取引を開始してください。
8.目標利幅の設定値
基準となるのは、『倍プッシュ』各段階での合計ロットサイズに基づいた、段階進行毎の損失累計、段階進行毎の手数料累計、これと段階毎に算出される「1point毎の損益変動額」を比べて、「損失累計+手数料累計+スワップ損益」と「発動した一番大きい段階の、1point毎の損益変動額」が、発動した一番大きい段階の開始価格から見て釣り合う点です。これを「損益分界点」として算出しています。「1個の複製元と、それに連なるローカルコピーしかない状態」では、普段はターミナル表示の「損益」表示がマイナスからプラスに転じる点と合致するはずです。
この「決済通貨ベースの損益分界点」を基準値として、「TargetProfit(5-4)」と「TargetProfitMultiplier(5-5)」で設定した値と『倍プッシュ』進行段階から得られる「最小ロット毎の目標利幅」を、「進行段階に応じた、1point毎の損益変動額」とあわせて「口座通貨に対する、通貨ペアの決済通貨との最新の為替レート」で決済通貨ベースの要求point数に変換し、損益分界点から積み上げたものです。そのため、口座通貨と決済通貨が違う場合、その為替レート変動によって随時T/P値は変更されます。ですが、無事にT/P値での決済となった場合は、「口座通貨ベースで指定した最小ロット毎の目標利幅に複製元を含めた総ロットサイズを掛けたもの」が残高に加算されるはずです(ロットサイズに応じて「1point毎の損益変動額」が増えていくため、ぴったりの数字になることは、あまりありませんが)
目標利幅が「口座通貨」ベースのため、ユーザ側での設定はイメージもしやすく、比較的楽かと思います。
ただ、無償版の場合、「140point毎の段階進行で、最小ロット毎に1口座通貨」が設定値で固定になっています。そのため、口座通貨と通貨ペアの種類によって、要求される「T/P値と損益分界点の差」、および得られる利益が変わることになります。例えばEURUSDで取引を行った場合、、口座通貨が「NZD」や「AUD」では概ね0.7USD、「JPY」では0.8USDくらいが、最小ロット毎の目標利幅となります。ですが、口座通貨がGPBの場合は、1.3USDくらいの利益を求めるようになってしまいます。当然、その分だけ「T/P値と損益分界点の差」は大きくなり、利益を確定しにくくなります。
有償版では、5項で記した設定値の「TargetProfit(5-4)」を下げることで、このあたりを調整可能となります。「無償版で、動作自体には特に問題はないが、設定されるT/P値が高すぎてつらい」という場合は、有償版の導入を検討してください。
なお、ver1.27から、初期値が「1.5口座通貨→1口座通貨」へ変更されました。
ちなみに、「複製元が他EAやサービス等によるもの」で、「複製元の決済実行利幅」よりも「このEAでの目標利幅」が小さい状態で、このEAでのT/P値付近で相場が小さな動きをしていると、『倍プッシュ』の進行段階が0もしくは1の頃に「T/P決済実行~0段目再発注」を繰り返すことがあります。この場合、利益は確定しているため、笑って見ていても問題はありませんが、気になるようであればこのEAでの目標利幅を調整することで解消されます。
9.その他の設定
通常、手数料関連の設定を除けば、特に設定を変更する必要はありません。「エラー発生に伴う再送信間隔」は短すぎるとサーバに弾かれることがあります。「CreateCopyPermission(5-23)」は、このEAの導入の際に口座の使い方は決めていると思いますので、それにあわせてください。
「LimitEntryDisableWidth(5-16)」は、動作の安定側に振った値になっていますので、好みで小さくして問題ありません。ただし、10未満の設定値は、サーバに弾かれますので、無意味です。
「LimitSlippingMax(5-17)」は、小さくしすぎると、相場変動への追従性が上がる代わりに、ターミナルログが埋まります。ここも好みで変更してください。
10.自動で行われる動作
この項では、このEAが行っている処理全体を、処理別に詳述しています。一見単純な動作に見えるこのEAが、実際にはどのような処理を行っているのかを記してみました。
実行ファイルを作るためのソースとしては7000行を超えており、意外と大きいものです。
10-1.全体の動作の実行順序と動作毎の処理内容
10-1-1.初回処理
EA起動時に、内部処理用の変数の領域確保のほかに、口座の通貨種別とターミナルの言語設定、既にターミナルが認識している「有効な発注と発注予約」の総数、チケット番号、コメント記述を取得します。
10-1-2.定常動作中の監視
Tick情報受信時(通常は1秒未満の頻度)に、「ターミナルが認識している、有効なチケット数とその構成」の変動だけチェックします。変動があれば、内部リストの更新へ移行します。また、「EAでのトレイリングストップ」を有効化している場合、このタイミングでS/L値と市場価格の比較、それに伴うS/L値の更新も行っています。
また、5秒毎に、「有効なチケット番号の構成と取引開始状態」をチェックします。これもまた、変動があれば、内部リストの更新へ移行します。
30秒毎に、最新の相場情報からS/L値とT/P値の再計算を行います。その結果、EA内部で保持している「複製元である手動発注」と「ローカルコピー」の設定値に対して、値に差があれば値更新処理(10-1-8)に移行します。
それと、5秒毎に「滞留情報の状態確認と消去(10-1-11)」を行っています。
10-1-3.内部リストの更新と処理要否判定
「定常動作中の監視(10-1-2)」で「更新を要する」と判定された場合、内部リストの再取得・更新を行います。発注状況から取得する内容は、「有効なチケット番号、チケット毎の売買方向と取引開始状態、開始価格、ロットサイズ、チケットのコメント記述内容、発注時に設定したマジックナンバー(段数として用いています)、対象通貨ペア、手数料、S/L値、T/P値」です。ここから、コメント記述内容を用いてローカルコピーとそれ以外、手動発注とそれ以外、ローカルコピーなら複製元のチケット番号を収集して、複製チケットと複製元の関連付けを行います。その結果に基づき、複製元の消失の有無確認と代替先選出、「ローカルコピーの新規生成」のための複製元の選出も行います。
この時点で、他の要因で件数変動が発生していた場合、再取得処理を最初からもう一度やり直します。
件数変動がなかった場合はそのまま、代替先がない場合の最優先の処理として、「取引開始済のローカルコピーに対する自動決済(10-1-4)」への移行と「取引開始前のローカルコピーに対する『削除対象マーク』付加」を行います。
10-1-4.ローカルコピーの自動決済
複製元が「他EAやサービス等」によるもので、独自に決済等を行った場合、または手動発注でT/P値設定によらず手動決済した場合等、「複製元が有効な発注リストから消えた場合」に、他の「サーバへのリクエスト発行」よりも優先して行われる処理です。「T/P値設定による自動決済」はサーバ側で行われますので、ここでは扱われません。
処理要否判定(10-1-3)で「代替先なし」と判定されたローカルコピーのセットのうち、取引開始済の全てに対して、OrderCloseコマンドによる「決済処理のリクエスト」をサーバに送ります。この処理だけは急ぎますので、エラーが発生した場合の再送信間隔も短くしています。
この処理は、「件数変動を伴う処理」として扱われます。
この処理が終了した後(対象がなかった場合を含みます)、続いてローカルコピーの自動生成(10-1-5)に移行します。
10-1-5.ローカルコピーの自動生成
ローカルコピーの自動決済(10-1-4)が行われた状態では、「複製元」の作成枠が空いている状態です。そのため、他に複製元となりうるチケットが存在する場合は、ローカルコピーの新規生成が行われます。この時、ローカルコピーの売買方向と基準点となる開始価格には複製元の情報が用いられ、EAの設定値に沿ってローカルコピーのロットサイズ、開始価格、S/L値、T/P値が算出され、複製元のチケット番号をコメントに入れた形で、OrderSendコマンドによる発注リクエストがサーバに連続送信されます。また、サーバに受理されたことをターミナルが認識し、表示内容に反映するまでに時間差があるため、発注リクエストを行った複製元チケット番号を、別に一時保管することで、「同じ複製元に対する、重複した発注リクエストの発行」を抑止しています。
この処理は、「件数変動を伴う処理」として扱われます。
この処理が終了した後(該当がなかった場合を含む)、欠落補完と余剰コピーの削除判定(10-1-6)に移行します。
10-1-6.ローカルコピーの欠落補完と余剰コピーの削除判定
既にローカルコピーを作成済の複製元に対し、「ローカルコピーの生成可能段数」と「維持可能段数」の再導出を行い、その結果と「有効な発注として存在するローカルコピーの有無」を段数毎に照合し、欠落(何らかの操作で決済または削除済、もしくはT/P値による決済による消失)があった場合、生成可能段数が許す範囲で補完するための発注リクエストをサーバに送信します。この時、市場価格との差が許す範囲内で、「0段目」については成り行き発注が、1段目以降は指値発注が行われます。
この処理は、補完発注リクエストを行った場合のみ、「件数変動を伴う処理」として扱われます。
続いて、残高の変動等で「維持可能段数から外れてしまったローカルコピー」への「削除対象マーク」付加、「作成可能段数から外れてしまった、取引開始をしていないローカルコピー」への「削除対象マーク」付加も行います。
EAの設定値変更により「ローカルコピーの段数毎のロットサイズに変更が発生」した場合、この処理の一部として、「取引を開始していないローカルコピーへの『削除マーク』の付加」や「新たなロットサイズでのローカルコピーの生成」が行われます。
10-1-7.件数変動を伴う処理が実行された後の、リスト再取得
10-1-3から続く処理のリクエスト実行中に、他の外的要因での件数変動があった場合、またこのEAが行ったリクエストの結果として件数変動が発生すると確定している場合、リストの再取得(10-1-3)を再度行います。これは、「件数変動が発生しなくなった」と判定されるか、10回連続で実行されるまで繰り返し続きます。
リスト再取得の実行(10-1-7)が一度でも行われた場合、再取得が不要となった後速やかに、S/L値とT/P値の更新(10-1-8)へ移行します。これは、発注タイミングのずれによってT/P値等に小さなずれが発生することがあり、そのずれを解消するために、定期的な照合・更新とは別に行われます。
10-1-8.S/L値とT/P値、指値価格の照合と更新
定常状態での監視(10-1-2)の一環として、また件数変動を伴う処理が実行された(10-1-7)後の最新化処理の一環として、複製元1件毎にS/L値とT/P値、指値価格の算出と照合を行います。算出処理自体は、「ローカルコピーの新規生成(10-1-5)」とは違い、「欠落補完処理(10-1-6)」と同様に「既存のローカルコピーのロットサイズや開始価格」を取り込んでおり、取引開始済のものはロットサイズと開始価格をそのままに、取引開始前のものはロットサイズのみそのままに、OrderModifyコマンドで変更できる範囲内(指値価格、S/L値、T/P値)で更新を行います。
ロットサイズ変更を伴う場合と、ローカルコピーの総段数変更を伴う場合は、「欠落補完処理(10-1-6)」の一部として別に行われます。
値の更新が行われた場合に限り、直後の「定常監視(10-1-2)」のタイミングで、リスト再取得(10-1-3)が強制的に行われます。更新が行われなかった場合は、定常監視(10-1-2)に戻ります。
10-1-9.削除判定が出たローカルコピーの削除
リスト再取得(10-1-3)から始まる一連の処理(10-1-8まで)が終わった後、「件数変動に伴う再取得(10-1-7)」から15秒以上の経過を待って、取引開始をしていないローカルコピーのうち「削除マーク」対象となったものについて、OrderDeleteコマンドによる削除リクエストをサーバに送信します。
時間を空けているのは、より優先されるべき「他のリクエスト」の送信と受理、ターミナル側への反映が一通り終わるのを待つためです。ターミナル画面を見ていると、「一通り作成や更新が行われた後、数秒程度待たされてから」順次削除されていくのが分かります。
通常は指値価格と市場価格の差があるため、まず発生しませんが、もしこの待ち時間の間に「削除予定のローカルコピーが、設定済の指値価格で取引開始してしまった」場合は、「取引状態の変動」によってリスト再取得(10-1-3)が引き起こされ、改めて「複製元が既に消えたローカルコピー」として、自動決済対象となります。
この処理が終了した後、ローカルコピーのEAによる自動決済(10-1-4)が行われていたのなら「損益出力(10-1-10)」へ移行します。また、自動決済対象の有無とは無関係に、削除リクエストが送信された場合は、直後の「定常監視(10-1-2)」のタイミングで、リスト再取得(10-1-3)が強制的に行われ、その後は、改めて定常監視(10-1-2)に戻ります。
10-1-10.ローカルコピーのみについての、自動決済の損益出力
「T/P値設定によらない、EAによる自動決済」が行われた場合に限り、そのチケット番号を別途保管して、ターミナルの履歴から損益情報を取得します。そして、値を積み上げて「自動決済による損益」としてターミナルログに出力します。ログへの出力後、EA内部で別途保管していたチケット番号は消去されます。
ログ出力後、定常監視(10-1-2)に戻ります。
10-1-11.滞留情報の除去
「ローカルコピーの新規作成リクエストを行った複製元のチケット番号」(補完作成は含みません)は最大15秒程度、「有効な発注リストから消えたチケット番号」は、最大15分程度の間、内部で保持しています。
通常は「新規作成リクエスト」については、ローカルコピーの作成結果がターミナルに反映された時点で消去しています。また、「有効な発注リストから消えたチケット番号」は、「手動発注の決済後の、自動再発注」での判定処理に使った後、その都度消去しています。ですが、作成と決済・削除が輻輳すると、これらが残ってしまうことがあり、特に「新規作成リクエストの発行、その直後に発生した複製元の消失」が入り乱れると、「新規作成リクエストの発行結果をEAが認識できない」という事象が発生し、結果として新たなローカルコピーの生成が抑止されてしまうことがありました。
定常監視の一部として、これらの強制的な削除が行われます。
10-1-12.発注状況と設定値、市場情報の出力
EA起動後、最初の1回の「全処理の完了後」と、EAの終了または「属するチャートへの時間足変更等」で発生するOnDeinitイベントにて、ターミナルのインストール先内にテキストファイル出力を行っています。ですが、出力したファイルそのものに対しては、参照等は何も行いません。単に「上書きで出力」するだけです。
出力されるファイルは3つあります。出力先はすべて「.\MQL4\Files」となります。ターミナルログにもそのことは表示されます。
A.「MarketInfo_(通貨ペア名).txt」
TerminalInfomationとして、「接続している証券会社名とターミナルの基本情報の一部、AccountInfomationとして「口座のあるサーバ名と残高、通貨種別、証拠金残量と計算モードやストップアウトレベル等」、MarketInfomationとして「EAを動作させたチャートの、通貨ペアのサーバ設定値(現在価格や、最小/最大ロットサイズ、1ロットあたり必要証拠金等」といった情報が列挙されています。
B.「Config_DoublePush.txt」
このEAの、有償版で設定可能となる設定項目について、有償版と無償版であるかを問わず、その時点で適用されている設定値すべて」が簡単な説明とともに列挙されています。
C.「OrderList_サーバ名.txt」
「その時点で有効な発注内容」が、チケット番号をはじめとして列挙されています。ここには、このEAが内部で識別した「複製元の種別」や「複製先の有無」も追記されています。ここを見ると、後から更新できない「ターミナルに表示されている、発注毎のコメント記述」に依存しない、「実際にEAがどのチケットを複製元として認識しているか」がターミナルログ以外でもはっきり判るようになっています。
10-2.イベント毎の列挙
10-2-1.OnInitイベント(EAの起動時、またはEAの属するチャートへの時間足変更等)
一部を除いた変数の初期化と、ターミナルの言語設定および口座の通貨種別の取得を行います(10-1-1)
10-2-2.OnTickイベント(ターミナル側の、市場価格情報の受信毎)
「有効な発注」の件数変動とチケット番号構成のチェック。変動があれば「リスト再取得処理(10-1-3)」を呼び出します(10-1-2)
また、「手動発注の決済後の、自動再発注」および「EAでのトレイリングストップ」有効時、複製元となっている手動発注とそのローカルコピーに対し、損益分界点と市場価格、チケット毎のS/L値を照合、変動があれば更新を行います。
10-2-3.OnTimerイベント(時間経過毎)
同一項目では、Aから順番に行っています。
10-2-3-1.高頻度処理(5秒毎)
A.「有効な発注」の件数変動・チケット番号の構成変動・取引状態の「予約→開始」変動のチェック(10-1-2)。変動があれば「リスト再取得処理(10-1-3)」を呼び出します。
B.「リスト再取得処理(10-1-3)」。再取得に続いて判定を行い、その結果に応じて「ローカルコピーの自動決済(10-1-4)」、「ローカルコピーの新規作成(10-1-5)」、ローカルコピーの欠落補完(10-1-6)」を順次実行します。また、件数変動が発生しなくなるまでこの処理を反復します((10-1-7)最大10回)
C.Bで「反復処理」が1回以上行われた場合、S/L値、T/P値、指値価格の照合と更新(10-1-8)を呼び出します。1件以上更新が行われた場合、次のOnTimerイベントで、件数変動等の有無を確認せずに、リスト再取得処理を行います。
D.Bで生成された「削除対象リスト」に基づいて、取引開始前チケットの削除を行います(10-1-9)。1件以上削除された場合、次のOnTimerイベントで、件数変動等の有無を確認せずに、リスト再取得処理を行います。
E.このEAにより自動決済されたチケットの、ターミナルログへの損益出力を行います(10-1-10)
F.ローカルコピーの新規作成リクエストが行われた記録が、15秒を過ぎても残っている場合、「異常な残存」とみなし、抹消します(「10-1-11」のうち、新規作成リクエストについて)
10-2-3-2.中高頻度処理(15秒毎)
ver1.27から、このタイミングでの処理は廃止されました。
10-2-3-3.中頻度処理(30秒毎)
定常監視(10-1-2)の一部として、S/L値、T/P値等の再算出と照合・更新を行います(10-1-8)
10-2-3-4.中低頻度処理(15分毎)
「有効な発注」から消えたチケット番号と、それがローカルコピーであれば「複製元のチケット番号と売買方向、複製元が手動発注かそれ以外か」の情報を抹消します(「10-1-11」のうち、消えたチケット番号について)
10-2-3-5.低頻度処理(3時間毎)
口座の通貨建文字列の取得と、それに基づく「口座通貨の小数点以下桁数」の判定を行います。また、次のタイマーイベントで「リスト再取得処理(10-1-3)」を呼び出します。
10-2-3-6.EA起動後、OnTimerイベントでの全処理1回完了後に1度のみ
取引サーバの時差(GMT基準)をTick受信時刻とPCローカル時刻の差から推測します。現時点では、テキスト出力される「発注リスト」の末尾に付記するだけにしか使われていません。
起動時の情報として、テキスト出力する3ファイルの出力処理を行います(10-1-12)
10-2-4.OnDeinitイベント(EAの終了時、またはEAの属するチャートへの時間足変更等で、OnInitイベントの前に)
テキスト出力する3ファイルの出力処理(10-1-12)を行った後、「EA終了時」でない場合は、改めて「初回処理(10-1-1)」から一連の処理がまた行われます。
11.その他
ver1.26に至るまでに、「バグ対応中に損失が膨らんだ」とか、「コピートレードサービス」を「他EAやサービス等による複製元」として動作試験をしている間に、コピー元の損切り処理に巻き込まれて大損をこうむったりとかはありました。(ちなみに、その時の損失は、今もまだ回復しきれてはいません)。ですが、ver1.26の動作試験を始めてから1週間ほど経過しましたが、その間には「設定した『倍プッシュ』の対応価格帯」から外れたことがなかったこともあり、損失は発生していません。少しずつですが利益は上がっています。
「ユーザが選んだ対応価格帯」から一旦外れると、値を戻すまでは胃の痛みが友達となりますが、それはFX取引で発生するリスクの一部でもあります。故に、このEAも、操作の簡易化・省力化には寄与しても、利益を約束するものではありません。とはいえ、「完全手動操作」とは雲泥の差があることは、EAを作った本人である私が実感しています。
ただ、EAが常時監視を行うことから、「PCを点けっぱなし」にできる環境が望ましいです。仮想サーバにEAを投入でき、PCからその都度操作できるのなら、それも選択肢に入りますが…。
以上、長くなりましたが、EA「Auto-DoublePush」の詳細説明となります。
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.27→1.28
new:有償版の機能として、新たに「EAによる自動再発注」を実装しました。対象は「複製元として、コメント記述のない発注」に限定され、何らかの形で決済をすると、「複製元がT/P値による決済」で、かつ「ローカルコピーのT/P値による決済が、指定した段数に満たない、または存在しない」場合は同一方向に、同一ロットサイズで成り行き発注を自動生成します。手動決済やS/L値による決済(トレイリングストップによる決済を含みます)、「指定した段数以上が発動した後でのT/P値による決済」の場合は、反対方向に同一ロットサイズで成り行き発注を自動生成します。
new:有償版の機能として、新たに「EAによるトレイリングストップ」を実装しました。対象は手動発注とそのローカルコピーに限定され、「『成り行き再発注』が有効時で、再発注で売買方向が反転する状況」において、「ローカルコピーを含めた目標利幅が得られる点」(T/P計算値)をトレイリングストップが有効化される下限として動作します。これにより、複製元毎に一度有効化されると、S/L値の下限は「T/P計算値から、動作幅を除いた値」となります。
有効化した場合、この機能は「設定した動作幅をT/P計算値から除いた値」よりも市場価格が近づくと、動作を開始します。S/L設定値は「T/P計算値から、設定した動作幅の2倍を除いた値」から始まりますが、市場価格がT/P計算値に届く前に動作範囲から外れた場合、自動的に値を戻して動作を解除します。S/L値がロックされる下限は、「T/P計算値からトレイリングストップ動作幅を除いた値」となっており、これを達成するためには、一度市場価格がT/P計算値に達することが必要となります。また、「急激かつ大きな値動き」でチケットの値更新が間に合わない場合を除き、T/P値による決済が機能せずに目標価格の表示以外の意味を失い、自動再発注は常に方向が反転します。
update:「ローカルコピーの欠落補完」について、複製元の総数による制限を解除しました。
update:「他EAやサービス等」で作成された複製元へのローカルコピーの作成で、複製元の上限数を「1件」から「通貨ペア毎に1件」に緩和しました。この緩和処置は、「CreateCopyPermission」の設定値が「0」の場合にのみ有効となります。(有償版でのみ設定可能です)
update:「コメントありの手動発注」として指値発注を行った場合、または他EAやサービス等から「複製元となる指値発注」が生成された場合に、「0段目」を「AutoEntryDuplicateCount」の設定に沿って指値発注するようにしました。
bugfix:「ローカルコピー」に欠落が発生している状態で、欠落の状況によってランタイムエラーが発生することがあった点を修正しました。
ver1.27→1.28
new: As a function of the paid version, "Automation of reordering by EA" has been newly implemented.
The target is limited to "Orders without comment as a copy source". If you make a payment in some way and the "copy source is a payment based on the T/P value" and "the payment based on the T/P value of the local copy is less than or does not exist in the specified number of steps", in the same direction, Automatically generate market orders with the same lot size. In the case of manual payment, payment by S/L value (including payment by trailing stop), and payment by T/P value after the specified number of stages or more are activated, the same lot size is used in the opposite direction.
new: "Trailing stop by EA" has been newly implemented as a function of the paid version.
The target is limited to manual ordering and its local copy, and in the case of "when'market reordering'is valid and the trading direction is reversed due to reordering", "the point where the target profit margin including local copy can be obtained". (= T/P calculated value) operates as the lower limit for the trailing stop to be enabled. As a result, once it becomes valid for each replication source, the lower limit of the S/L value will be "the value obtained by subtracting the operation width from the T/P calculated value".
When enabled, this feature will start working when the market price is closer than the "T / P calculated value minus the operating width set in ' TrailingStopWidth'". The S / L set value starts from "T/P calculated value minus twice the set operating range", but if the market price goes out of the operating range before reaching the T/P calculated value, The value is automatically returned and the operation is canceled. The lower limit for locking the S / L value is "the value obtained by subtracting the trailing stop operation width from the T/P calculated value", and in order to achieve this, the market price is once the T/P calculated value. It is necessary to reach. In addition, T / P value settlement does not work and loses meaning other than displaying the target price, and automatic reordering always reverses the direction. (Except when the ticket price cannot be updated in time due to "rapid and big price movements")
update: Removed the restriction on the total number of copy sources for the "Complement missing local copy" function.
update: In the creation of local copy to the copy source created by "Other EA, service, etc.", the maximum number of copy sources has been relaxed from "1" to "1 for each currency pair". This mitigation action is effective only when the setting value of "CreateCopyPermission" is "0". (Can be set only in the paid version)
update: When a limit order is placed as a "manual order with comments", or when a "limit order to be a copy source" is generated from another EA or service, etc. Changed to place a limit order for "0th row" according to the setting of "AutoEntryDuplicateCount".
bugfix: Fixed a problem that a run-time error could occur depending on the missing situation when the "local copy" was missing.
new:有償版の機能として、新たに「EAによる自動再発注」を実装しました。対象は「複製元として、コメント記述のない発注」に限定され、何らかの形で決済をすると、「複製元がT/P値による決済」で、かつ「ローカルコピーのT/P値による決済が、指定した段数に満たない、または存在しない」場合は同一方向に、同一ロットサイズで成り行き発注を自動生成します。手動決済やS/L値による決済(トレイリングストップによる決済を含みます)、「指定した段数以上が発動した後でのT/P値による決済」の場合は、反対方向に同一ロットサイズで成り行き発注を自動生成します。
new:有償版の機能として、新たに「EAによるトレイリングストップ」を実装しました。対象は手動発注とそのローカルコピーに限定され、「『成り行き再発注』が有効時で、再発注で売買方向が反転する状況」において、「ローカルコピーを含めた目標利幅が得られる点」(T/P計算値)をトレイリングストップが有効化される下限として動作します。これにより、複製元毎に一度有効化されると、S/L値の下限は「T/P計算値から、動作幅を除いた値」となります。
有効化した場合、この機能は「設定した動作幅をT/P計算値から除いた値」よりも市場価格が近づくと、動作を開始します。S/L設定値は「T/P計算値から、設定した動作幅の2倍を除いた値」から始まりますが、市場価格がT/P計算値に届く前に動作範囲から外れた場合、自動的に値を戻して動作を解除します。S/L値がロックされる下限は、「T/P計算値からトレイリングストップ動作幅を除いた値」となっており、これを達成するためには、一度市場価格がT/P計算値に達することが必要となります。また、「急激かつ大きな値動き」でチケットの値更新が間に合わない場合を除き、T/P値による決済が機能せずに目標価格の表示以外の意味を失い、自動再発注は常に方向が反転します。
update:「ローカルコピーの欠落補完」について、複製元の総数による制限を解除しました。
update:「他EAやサービス等」で作成された複製元へのローカルコピーの作成で、複製元の上限数を「1件」から「通貨ペア毎に1件」に緩和しました。この緩和処置は、「CreateCopyPermission」の設定値が「0」の場合にのみ有効となります。(有償版でのみ設定可能です)
update:「コメントありの手動発注」として指値発注を行った場合、または他EAやサービス等から「複製元となる指値発注」が生成された場合に、「0段目」を「AutoEntryDuplicateCount」の設定に沿って指値発注するようにしました。
bugfix:「ローカルコピー」に欠落が発生している状態で、欠落の状況によってランタイムエラーが発生することがあった点を修正しました。
ver1.27→1.28
new: As a function of the paid version, "Automation of reordering by EA" has been newly implemented.
The target is limited to "Orders without comment as a copy source". If you make a payment in some way and the "copy source is a payment based on the T/P value" and "the payment based on the T/P value of the local copy is less than or does not exist in the specified number of steps", in the same direction, Automatically generate market orders with the same lot size. In the case of manual payment, payment by S/L value (including payment by trailing stop), and payment by T/P value after the specified number of stages or more are activated, the same lot size is used in the opposite direction.
new: "Trailing stop by EA" has been newly implemented as a function of the paid version.
The target is limited to manual ordering and its local copy, and in the case of "when'market reordering'is valid and the trading direction is reversed due to reordering", "the point where the target profit margin including local copy can be obtained". (= T/P calculated value) operates as the lower limit for the trailing stop to be enabled. As a result, once it becomes valid for each replication source, the lower limit of the S/L value will be "the value obtained by subtracting the operation width from the T/P calculated value".
When enabled, this feature will start working when the market price is closer than the "T / P calculated value minus the operating width set in ' TrailingStopWidth'". The S / L set value starts from "T/P calculated value minus twice the set operating range", but if the market price goes out of the operating range before reaching the T/P calculated value, The value is automatically returned and the operation is canceled. The lower limit for locking the S / L value is "the value obtained by subtracting the trailing stop operation width from the T/P calculated value", and in order to achieve this, the market price is once the T/P calculated value. It is necessary to reach. In addition, T / P value settlement does not work and loses meaning other than displaying the target price, and automatic reordering always reverses the direction. (Except when the ticket price cannot be updated in time due to "rapid and big price movements")
update: Removed the restriction on the total number of copy sources for the "Complement missing local copy" function.
update: In the creation of local copy to the copy source created by "Other EA, service, etc.", the maximum number of copy sources has been relaxed from "1" to "1 for each currency pair". This mitigation action is effective only when the setting value of "CreateCopyPermission" is "0". (Can be set only in the paid version)
update: When a limit order is placed as a "manual order with comments", or when a "limit order to be a copy source" is generated from another EA or service, etc. Changed to place a limit order for "0th row" according to the setting of "AutoEntryDuplicateCount".
bugfix: Fixed a problem that a run-time error could occur depending on the missing situation when the "local copy" was missing.
![Yasunao Koyama](https://c.mql5.com/avatar/avatar_na2.png)
Yasunao Koyama
ver1.26→1.27
new:全バージョン用の設定可能項目として、S/L値の自動設定において、従来の「StopLossTarget」基準での設定に加え、「StopLossReserve」基準での設定を新設し、初期値を「StopLossReserve」基準に変更した。(StopLossReserve基準では、全段階発動時の開始価格を起点に、損失方向のpointで指定する。どちらかを選択できる)。これにあわせ、ターミナルログへの出力内容に「全段階発動後のS/L値決済の場合の、予想残高」を追加した。
update:初期値(無償版の固定値)の変更を行った。「最小ロットあたりの目標利幅」が「1.5口座通貨」から「1口座通貨」に変更され、「段階進行毎の利幅減少率」が「90%」から「95%」に変更された。
update:ターミナル側の「トレイリングストップ」機能によるS/L値の上書きに対して、「ローカルコピー全体での損益分界点よりも、S/L値が利益側にある場合」に限り、EAからのS/L値上書きを抑止したうえで、T/P値設定を無効化するようにした。「全体での損益分界点」よりも、損失側にある場合は、EAからS/L値とT/P値を上書きする。
update:内部リストの再取得条件の見直しと、それに伴う「価格等情報のみの更新処理」の分離を行った。また、「15秒毎のリスト再取得」を廃止し、EAの負荷軽減を行った。再取得は、通常時、「(Tick情報受信毎の)有効な発注数の変動」または「(5秒毎照合での)チケット番号の構成の変動」に伴って行われる。
update:S/L値およびT/P値の再計算で、損益分界点の導出にスワップ損益を繰り入れるようにした。
bugfix:自動決済に伴う損益出力で、出力内容に手数料とスワップ損益が含まれていなかった点を修正した。
bugfix:市場閉鎖中にEAを新規に起動した場合、テキスト出力が何度も繰り返してしまう点を修正した。
bugfix:S/L値の導出で、累積損失と取引手数料の扱いにずれがあった点を修正した。(過大評価していた。結果として、S/L値が開始価格に近づき、また生成可能段数が少なくなることがあった)
ver1.26→1.27
new: As a settable item for all versions, in the automatic setting of S/L value, in addition to the setting based on the conventional "Stop Loss Target", a new setting based on "Stop Loss Reserve" has been added, and the initial value is based on "Stop Loss Reserve". Changed to.
In the StopLossReserve standard, the starting price at the time of activation of all stages is specified as the starting point in the loss direction. (You can choose either).
In line with this, "Expected balance in case of S/L value settlement after activation of all stages" was added to the output contents to the terminal log.
update: The initial value (fixed value of the free version) has been changed. "Target profit margin per minimum lot" has been changed from "1.5 account currency" to "1 account currency", and "Profit margin reduction rate for each stage progress" has been changed from "90%" to "95%".
update: For overwriting the S/L value by the "Trailing Stop" function on the terminal side, only "when the S/L value is on the profit side than the profit and loss demarcation point of the entire local copy" from the EA Changed to invalidate the T/P value setting after suppressing the S/L value overwriting.
If it is on the loss side of the "total profit / loss demarcation point", the S/L value and T/P value are overwritten from the EA.
update: The conditions for reacquiring the internal list have been reviewed, and the accompanying "update process for price and other information only" has been separated. In addition, "re-acquisition of list every 15 seconds" was abolished and the load of EA was reduced. The reacquisition is usually performed in accordance with "variation in the number of valid orders (for each Tick information reception)" or "variation in the composition of the ticket number (in collation every 5 seconds)".
update: In the recalculation of S/L value and T/P value, the swap profit / loss is newly included in the derivation of the profit / loss demarcation point.
bugfix: Fixed the problem that the output content did not include commission and swap profit / loss in the profit / loss output associated with automatic settlement.
bugfix: Fixed the problem that the text output repeats many times when the EA is newly started while the market is closed.
bugfix: Fixed a gap in the handling of cumulative losses and transaction fees when deriving S/L values.
(It was overestimated. As a result, the S/L value approached the starting price, and the number of stages that could be generated was reduced.)
new:全バージョン用の設定可能項目として、S/L値の自動設定において、従来の「StopLossTarget」基準での設定に加え、「StopLossReserve」基準での設定を新設し、初期値を「StopLossReserve」基準に変更した。(StopLossReserve基準では、全段階発動時の開始価格を起点に、損失方向のpointで指定する。どちらかを選択できる)。これにあわせ、ターミナルログへの出力内容に「全段階発動後のS/L値決済の場合の、予想残高」を追加した。
update:初期値(無償版の固定値)の変更を行った。「最小ロットあたりの目標利幅」が「1.5口座通貨」から「1口座通貨」に変更され、「段階進行毎の利幅減少率」が「90%」から「95%」に変更された。
update:ターミナル側の「トレイリングストップ」機能によるS/L値の上書きに対して、「ローカルコピー全体での損益分界点よりも、S/L値が利益側にある場合」に限り、EAからのS/L値上書きを抑止したうえで、T/P値設定を無効化するようにした。「全体での損益分界点」よりも、損失側にある場合は、EAからS/L値とT/P値を上書きする。
update:内部リストの再取得条件の見直しと、それに伴う「価格等情報のみの更新処理」の分離を行った。また、「15秒毎のリスト再取得」を廃止し、EAの負荷軽減を行った。再取得は、通常時、「(Tick情報受信毎の)有効な発注数の変動」または「(5秒毎照合での)チケット番号の構成の変動」に伴って行われる。
update:S/L値およびT/P値の再計算で、損益分界点の導出にスワップ損益を繰り入れるようにした。
bugfix:自動決済に伴う損益出力で、出力内容に手数料とスワップ損益が含まれていなかった点を修正した。
bugfix:市場閉鎖中にEAを新規に起動した場合、テキスト出力が何度も繰り返してしまう点を修正した。
bugfix:S/L値の導出で、累積損失と取引手数料の扱いにずれがあった点を修正した。(過大評価していた。結果として、S/L値が開始価格に近づき、また生成可能段数が少なくなることがあった)
ver1.26→1.27
new: As a settable item for all versions, in the automatic setting of S/L value, in addition to the setting based on the conventional "Stop Loss Target", a new setting based on "Stop Loss Reserve" has been added, and the initial value is based on "Stop Loss Reserve". Changed to.
In the StopLossReserve standard, the starting price at the time of activation of all stages is specified as the starting point in the loss direction. (You can choose either).
In line with this, "Expected balance in case of S/L value settlement after activation of all stages" was added to the output contents to the terminal log.
update: The initial value (fixed value of the free version) has been changed. "Target profit margin per minimum lot" has been changed from "1.5 account currency" to "1 account currency", and "Profit margin reduction rate for each stage progress" has been changed from "90%" to "95%".
update: For overwriting the S/L value by the "Trailing Stop" function on the terminal side, only "when the S/L value is on the profit side than the profit and loss demarcation point of the entire local copy" from the EA Changed to invalidate the T/P value setting after suppressing the S/L value overwriting.
If it is on the loss side of the "total profit / loss demarcation point", the S/L value and T/P value are overwritten from the EA.
update: The conditions for reacquiring the internal list have been reviewed, and the accompanying "update process for price and other information only" has been separated. In addition, "re-acquisition of list every 15 seconds" was abolished and the load of EA was reduced. The reacquisition is usually performed in accordance with "variation in the number of valid orders (for each Tick information reception)" or "variation in the composition of the ticket number (in collation every 5 seconds)".
update: In the recalculation of S/L value and T/P value, the swap profit / loss is newly included in the derivation of the profit / loss demarcation point.
bugfix: Fixed the problem that the output content did not include commission and swap profit / loss in the profit / loss output associated with automatic settlement.
bugfix: Fixed the problem that the text output repeats many times when the EA is newly started while the market is closed.
bugfix: Fixed a gap in the handling of cumulative losses and transaction fees when deriving S/L values.
(It was overestimated. As a result, the S/L value approached the starting price, and the number of stages that could be generated was reduced.)
: